]>
Commit | Line | Data |
---|---|---|
049025a4 YW |
1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
2 | ||
3 | #include "format-util.h" | |
4 | #include "macro.h" | |
5 | #include "string-util.h" | |
6 | ||
fd8c6b46 | 7 | static void test_format_bytes_one(uint64_t val, bool trailing_B, const char *iec_with_p, const char *iec_without_p, |
71d7a821 | 8 | const char *si_with_p, const char *si_without_p) { |
049025a4 YW |
9 | char buf[FORMAT_BYTES_MAX]; |
10 | ||
11 | assert_se(streq_ptr(format_bytes_full(buf, sizeof buf, val, FORMAT_BYTES_USE_IEC | FORMAT_BYTES_BELOW_POINT | (trailing_B ? FORMAT_BYTES_TRAILING_B : 0)), iec_with_p)); | |
12 | assert_se(streq_ptr(format_bytes_full(buf, sizeof buf, val, FORMAT_BYTES_USE_IEC | (trailing_B ? FORMAT_BYTES_TRAILING_B : 0)), iec_without_p)); | |
71d7a821 YW |
13 | assert_se(streq_ptr(format_bytes_full(buf, sizeof buf, val, FORMAT_BYTES_BELOW_POINT | (trailing_B ? FORMAT_BYTES_TRAILING_B : 0)), si_with_p)); |
14 | assert_se(streq_ptr(format_bytes_full(buf, sizeof buf, val, trailing_B ? FORMAT_BYTES_TRAILING_B : 0), si_without_p)); | |
049025a4 YW |
15 | } |
16 | ||
17 | static void test_format_bytes(void) { | |
18 | test_format_bytes_one(900, true, "900B", "900B", "900B", "900B"); | |
19 | test_format_bytes_one(900, false, "900", "900", "900", "900"); | |
20 | test_format_bytes_one(1023, true, "1023B", "1023B", "1.0K", "1K"); | |
21 | test_format_bytes_one(1023, false, "1023", "1023", "1.0K", "1K"); | |
22 | test_format_bytes_one(1024, true, "1.0K", "1K", "1.0K", "1K"); | |
23 | test_format_bytes_one(1024, false, "1.0K", "1K", "1.0K", "1K"); | |
24 | test_format_bytes_one(1100, true, "1.0K", "1K", "1.1K", "1K"); | |
25 | test_format_bytes_one(1500, true, "1.4K", "1K", "1.5K", "1K"); | |
fd8c6b46 YW |
26 | test_format_bytes_one(UINT64_C(3)*1024*1024, true, "3.0M", "3M", "3.1M", "3M"); |
27 | test_format_bytes_one(UINT64_C(3)*1024*1024*1024, true, "3.0G", "3G", "3.2G", "3G"); | |
28 | test_format_bytes_one(UINT64_C(3)*1024*1024*1024*1024, true, "3.0T", "3T", "3.2T", "3T"); | |
29 | test_format_bytes_one(UINT64_C(3)*1024*1024*1024*1024*1024, true, "3.0P", "3P", "3.3P", "3P"); | |
30 | test_format_bytes_one(UINT64_C(3)*1024*1024*1024*1024*1024*1024, true, "3.0E", "3E", "3.4E", "3E"); | |
31 | test_format_bytes_one(UINT64_MAX, true, NULL, NULL, NULL, NULL); | |
32 | test_format_bytes_one(UINT64_MAX, false, NULL, NULL, NULL, NULL); | |
049025a4 YW |
33 | } |
34 | ||
35 | int main(void) { | |
36 | test_format_bytes(); | |
37 | ||
38 | return 0; | |
39 | } |