2 * Copyright (C) 2013 EfficiOS Inc.
4 * SPDX-License-Identifier: GPL-2.0-only
8 #include <common/utils.hpp>
15 int lttng_opt_quiet
= 1;
16 int lttng_opt_verbose
= 3;
20 struct valid_test_input
{
22 uint64_t expected_result
;
25 /* Valid test cases */
26 struct valid_test_input valid_tests_inputs
[] = {
33 { "0x1234k", 4771840 },
35 { "1024G", 1099511627776ULL },
58 { "0X40G", 68719476736ULL },
62 { "020G", 17179869184ULL },
65 { "0XA0M", 167772160 },
66 { "0xA0G", 171798691840ULL },
68 const int num_valid_tests
= sizeof(valid_tests_inputs
) / sizeof(valid_tests_inputs
[0]);
70 /* Invalid test cases */
71 const char *invalid_tests_inputs
[] = {
72 "", " ", "-1", "k", "4611686018427387904G",
73 "0x40g", "08", "09", "0x", "x0",
74 "0xx0", "07kK", "0xk", "0XM", "0xG",
75 "0x0MM", "0X0GG", "0a", "0B",
78 const int num_invalid_tests
= sizeof(invalid_tests_inputs
) / sizeof(invalid_tests_inputs
[0]);
81 static void test_utils_parse_size_suffix()
87 /* Test valid cases */
88 for (i
= 0; i
< num_valid_tests
; i
++) {
90 sprintf(name
, "valid test case: %s", valid_tests_inputs
[i
].input
);
92 ret
= utils_parse_size_suffix(valid_tests_inputs
[i
].input
, &result
);
93 ok(ret
== 0 && result
== valid_tests_inputs
[i
].expected_result
, "%s", name
);
96 /* Test invalid cases */
97 for (i
= 0; i
< num_invalid_tests
; i
++) {
99 sprintf(name
, "invalid test case: %s", invalid_tests_inputs
[i
]);
101 ret
= utils_parse_size_suffix(invalid_tests_inputs
[i
], &result
);
102 ok(ret
!= 0, "%s", name
);
108 plan_tests(num_valid_tests
+ num_invalid_tests
);
110 diag("utils_parse_size_suffix tests");
112 test_utils_parse_size_suffix();
114 return exit_status();