2 * Copyright (C) 2015 EfficiOS Inc.
4 * SPDX-License-Identifier: GPL-2.0-only
8 #include <common/utils.hpp>
16 int lttng_opt_quiet
= 1;
17 int lttng_opt_verbose
= 3;
21 struct valid_test_input
{
23 uint64_t expected_result
;
26 /* Valid test cases */
27 struct valid_test_input valid_tests_inputs
[] = {
28 { "0", 0 }, { "1234", 1234 }, { "1234us", 1234 }, { "16ms", 16000 },
29 { "128ms", 128000 }, { "32s", 32000000 }, { "1m", 60000000 }, { "20m", 1200000000 },
30 { "1h", 3600000000 }, { "5h", 18000000000 }, { "00", 0 }, { "0us", 0 },
31 { "0ms", 0 }, { "0s", 0 }, { "0m", 0 }, { "0h", 0 },
32 { "00us", 0 }, { "00ms", 0 }, { "00s", 0 }, { "00m", 0 },
33 { "00h", 0 }, { "12ms", 12000 }, { "3597us", 3597 }, { "+5", 5 },
34 { "08", 8 }, { "0145us", 145 },
36 const int num_valid_tests
= sizeof(valid_tests_inputs
) / sizeof(valid_tests_inputs
[0]);
38 /* Invalid test cases */
39 const char *invalid_tests_inputs
[] = {
44 "4611686018427387904s",
60 "14ms garbage after value",
71 const int num_invalid_tests
= sizeof(invalid_tests_inputs
) / sizeof(invalid_tests_inputs
[0]);
74 static void test_utils_parse_time_suffix()
80 /* Test valid cases */
81 for (i
= 0; i
< num_valid_tests
; i
++) {
84 ret
= utils_parse_time_suffix(valid_tests_inputs
[i
].input
, &result
);
86 "valid test case: %s expected %" PRIu64
,
87 valid_tests_inputs
[i
].input
,
89 ok(ret
== 0 && result
== valid_tests_inputs
[i
].expected_result
, "%s", name
);
92 /* Test invalid cases */
93 for (i
= 0; i
< num_invalid_tests
; i
++) {
96 sprintf(name
, "invalid test case: %s", invalid_tests_inputs
[i
]);
98 ret
= utils_parse_time_suffix(invalid_tests_inputs
[i
], &result
);
99 ok(ret
!= 0, "%s", name
);
105 plan_tests(num_valid_tests
+ num_invalid_tests
);
107 diag("utils_parse_time_suffix tests");
109 test_utils_parse_time_suffix();
111 return exit_status();