Add a basic .clang-tidy file and fix typedef warnings
[lttng-tools.git] / tests / unit / test_utils_parse_time_suffix.cpp
... / ...
CommitLineData
1/*
2 * Copyright (C) 2015 EfficiOS Inc.
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 */
7
8#include <common/utils.hpp>
9
10#include <inttypes.h>
11#include <stdio.h>
12#include <string.h>
13#include <tap/tap.h>
14
15/* For error.h */
16int lttng_opt_quiet = 1;
17int lttng_opt_verbose = 3;
18int lttng_opt_mi;
19
20namespace {
21struct valid_test_input {
22 const char *input;
23 uint64_t expected_result;
24};
25
26/* Valid test cases */
27struct 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 },
35};
36const int num_valid_tests = sizeof(valid_tests_inputs) / sizeof(valid_tests_inputs[0]);
37
38/* Invalid test cases */
39const char *invalid_tests_inputs[] = {
40 "",
41 " ",
42 "-1",
43 "m",
44 "4611686018427387904s",
45 "0x40M",
46 "0x",
47 "x0",
48 "0xx0",
49 "07mm",
50 "0xm",
51 "0Xs",
52 "0x0ss",
53 "0a",
54 "0B",
55 "0x3 s",
56 "0xbs ",
57 "14ns",
58 "0xbs",
59 "14ns",
60 "14ms garbage after value",
61 "0x14s",
62 "0u",
63 "5mS",
64 "5Ms",
65 "12ussr",
66 "67msrp",
67 "14si",
68 "12mo",
69 "53hi",
70};
71const int num_invalid_tests = sizeof(invalid_tests_inputs) / sizeof(invalid_tests_inputs[0]);
72} /* namespace */
73
74static void test_utils_parse_time_suffix(void)
75{
76 uint64_t result;
77 int ret;
78 int i;
79
80 /* Test valid cases */
81 for (i = 0; i < num_valid_tests; i++) {
82 char name[256];
83
84 ret = utils_parse_time_suffix(valid_tests_inputs[i].input, &result);
85 sprintf(name,
86 "valid test case: %s expected %" PRIu64,
87 valid_tests_inputs[i].input,
88 result);
89 ok(ret == 0 && result == valid_tests_inputs[i].expected_result, "%s", name);
90 }
91
92 /* Test invalid cases */
93 for (i = 0; i < num_invalid_tests; i++) {
94 char name[100];
95
96 sprintf(name, "invalid test case: %s", invalid_tests_inputs[i]);
97
98 ret = utils_parse_time_suffix(invalid_tests_inputs[i], &result);
99 ok(ret != 0, "%s", name);
100 }
101}
102
103int main(void)
104{
105 plan_tests(num_valid_tests + num_invalid_tests);
106
107 diag("utils_parse_time_suffix tests");
108
109 test_utils_parse_time_suffix();
110
111 return exit_status();
112}
This page took 0.02289 seconds and 4 git commands to generate.