1 | // SPDX-License-Identifier: GPL-2.0 |
2 | #include <inttypes.h> |
3 | #include <linux/compiler.h> |
4 | #include <linux/types.h> |
5 | #include <string.h> |
6 | #include "tests.h" |
7 | #include "units.h" |
8 | #include "debug.h" |
9 | |
10 | static int test__unit_number__scnprint(struct test_suite *t __maybe_unused, int subtest __maybe_unused) |
11 | { |
12 | struct { |
13 | u64 n; |
14 | const char *str; |
15 | } test[] = { |
16 | { 1, "1B" }, |
17 | { 10*1024, "10K" }, |
18 | { 20*1024*1024, "20M" }, |
19 | { 30*1024*1024*1024ULL, "30G" }, |
20 | { 0, "0B" }, |
21 | { 0, NULL }, |
22 | }; |
23 | unsigned i = 0; |
24 | |
25 | while (test[i].str) { |
26 | char buf[100]; |
27 | |
28 | unit_number__scnprintf(buf, sizeof(buf), test[i].n); |
29 | |
30 | pr_debug("n %" PRIu64 ", str '%s', buf '%s'\n" , |
31 | test[i].n, test[i].str, buf); |
32 | |
33 | if (strcmp(test[i].str, buf)) |
34 | return TEST_FAIL; |
35 | |
36 | i++; |
37 | } |
38 | |
39 | return TEST_OK; |
40 | } |
41 | |
42 | DEFINE_SUITE("unit_number__scnprintf" , unit_number__scnprint); |
43 | |