summaryrefslogtreecommitdiff
path: root/src/test/test-time-util.c
diff options
context:
space:
mode:
authorFilipe Brandenburger <filbranden@google.com>2019-01-23 19:48:54 -0800
committerFilipe Brandenburger <filbranden@google.com>2019-02-14 11:04:42 -0800
commit7b61ce3c44ef5908e817009ce4f9d2a7a37722be (patch)
treec0e8cdc688bd5904c5743b25364ef2514ad763ae /src/test/test-time-util.c
parent93e4163e912b6895e61c43452a629f30a28eb70c (diff)
downloadsystemd-7b61ce3c44ef5908e817009ce4f9d2a7a37722be.tar.gz
time-util: Introduce parse_sec_def_infinity
This works like parse_sec() but defaults to USEC_INFINITY when passed an empty string or only whitespace. Also introduce config_parse_sec_def_infinity, which can be used to parse config options using this function. This is useful for time options that use "infinity" for default and that can be reset by unsetting them. Introduce a test case to ensure it works as expected.
Diffstat (limited to 'src/test/test-time-util.c')
-rw-r--r--src/test/test-time-util.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/test-time-util.c b/src/test/test-time-util.c
index eb6041c152..633544ff2e 100644
--- a/src/test/test-time-util.c
+++ b/src/test/test-time-util.c
@@ -85,6 +85,26 @@ static void test_parse_sec_fix_0(void) {
assert_se(u == USEC_INFINITY);
}
+static void test_parse_sec_def_infinity(void) {
+ usec_t u;
+
+ log_info("/* %s */", __func__);
+
+ assert_se(parse_sec_def_infinity("5s", &u) >= 0);
+ assert_se(u == 5 * USEC_PER_SEC);
+ assert_se(parse_sec_def_infinity("", &u) >= 0);
+ assert_se(u == USEC_INFINITY);
+ assert_se(parse_sec_def_infinity(" ", &u) >= 0);
+ assert_se(u == USEC_INFINITY);
+ assert_se(parse_sec_def_infinity("0s", &u) >= 0);
+ assert_se(u == 0);
+ assert_se(parse_sec_def_infinity("0", &u) >= 0);
+ assert_se(u == 0);
+ assert_se(parse_sec_def_infinity(" 0", &u) >= 0);
+ assert_se(u == 0);
+ assert_se(parse_sec_def_infinity("-5s", &u) < 0);
+}
+
static void test_parse_time(void) {
usec_t u;
@@ -472,6 +492,7 @@ int main(int argc, char *argv[]) {
test_parse_sec();
test_parse_sec_fix_0();
+ test_parse_sec_def_infinity();
test_parse_time();
test_parse_nsec();
test_format_timespan(1);