]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
049025a4 YW |
2 | |
3 | #include "format-util.h" | |
4f7452a8 | 4 | #include "tests.h" |
d17c93a7 | 5 | #include "uchar.h" |
049025a4 | 6 | |
d3e40294 | 7 | /* Do some basic checks on STRLEN() and DECIMAL_STR_MAX() */ |
d3e40294 | 8 | assert_cc(STRLEN("") == 0); |
d17c93a7 JJ |
9 | assert_cc(STRLEN("a") == 1); |
10 | assert_cc(STRLEN("123") == 3); | |
11 | assert_cc(STRLEN(u8"") == 0); | |
12 | assert_cc(STRLEN(u8"a") == 1); | |
13 | assert_cc(STRLEN(u8"123") == 3); | |
14 | assert_cc(STRLEN(u"") == 0); | |
15 | assert_cc(STRLEN(u"a") == sizeof(char16_t)); | |
16 | assert_cc(STRLEN(u"123") == 3 * sizeof(char16_t)); | |
17 | assert_cc(STRLEN(U"") == 0); | |
18 | assert_cc(STRLEN(U"a") == sizeof(char32_t)); | |
19 | assert_cc(STRLEN(U"123") == 3 * sizeof(char32_t)); | |
f862e847 | 20 | assert_cc(STRLEN(L"") == 0); |
d17c93a7 JJ |
21 | assert_cc(STRLEN(L"a") == sizeof(wchar_t)); |
22 | assert_cc(STRLEN(L"123") == 3 * sizeof(wchar_t)); | |
56da8d5a LP |
23 | assert_cc(DECIMAL_STR_MAX(uint8_t) == STRLEN("255")+1); |
24 | assert_cc(DECIMAL_STR_MAX(int8_t) == STRLEN("-127")+1); | |
25 | assert_cc(DECIMAL_STR_MAX(uint64_t) == STRLEN("18446744073709551615")+1); | |
26 | assert_cc(DECIMAL_STR_MAX(int64_t) == CONST_MAX(STRLEN("-9223372036854775808"), STRLEN("9223372036854775807"))+1); | |
27 | assert_cc(DECIMAL_STR_MAX(signed char) == STRLEN("-127")+1); | |
28 | assert_cc(DECIMAL_STR_MAX(unsigned char) == STRLEN("255")+1); | |
d3e40294 ZJS |
29 | assert_cc(CONST_MAX(DECIMAL_STR_MAX(int8_t), STRLEN("xxx")) == 5); |
30 | ||
fd8c6b46 | 31 | static void test_format_bytes_one(uint64_t val, bool trailing_B, const char *iec_with_p, const char *iec_without_p, |
71d7a821 | 32 | const char *si_with_p, const char *si_without_p) { |
049025a4 YW |
33 | char buf[FORMAT_BYTES_MAX]; |
34 | ||
c79e88b3 IK |
35 | ASSERT_STREQ(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); |
36 | ASSERT_STREQ(format_bytes_full(buf, sizeof buf, val, FORMAT_BYTES_USE_IEC | (trailing_B ? FORMAT_BYTES_TRAILING_B : 0)), iec_without_p); | |
37 | ASSERT_STREQ(format_bytes_full(buf, sizeof buf, val, FORMAT_BYTES_BELOW_POINT | (trailing_B ? FORMAT_BYTES_TRAILING_B : 0)), si_with_p); | |
38 | ASSERT_STREQ(format_bytes_full(buf, sizeof buf, val, trailing_B ? FORMAT_BYTES_TRAILING_B : 0), si_without_p); | |
049025a4 YW |
39 | } |
40 | ||
4f7452a8 | 41 | TEST(format_bytes) { |
049025a4 YW |
42 | test_format_bytes_one(900, true, "900B", "900B", "900B", "900B"); |
43 | test_format_bytes_one(900, false, "900", "900", "900", "900"); | |
11226bf1 ZJS |
44 | test_format_bytes_one(1023, true, "1023B", "1023B", "1K", "1K"); |
45 | test_format_bytes_one(1023, false, "1023", "1023", "1K", "1K"); | |
46 | test_format_bytes_one(1024, true, "1K", "1K", "1K", "1K"); | |
47 | test_format_bytes_one(1024, false, "1K", "1K", "1K", "1K"); | |
48 | test_format_bytes_one(1100, true, "1K", "1K", "1.1K", "1K"); | |
049025a4 | 49 | test_format_bytes_one(1500, true, "1.4K", "1K", "1.5K", "1K"); |
11226bf1 ZJS |
50 | test_format_bytes_one(UINT64_C(3)*1024*1024, true, "3M", "3M", "3.1M", "3M"); |
51 | test_format_bytes_one(UINT64_C(3)*1024*1024*1024, true, "3G", "3G", "3.2G", "3G"); | |
52 | test_format_bytes_one(UINT64_C(3)*1024*1024*1024*1024, true, "3T", "3T", "3.2T", "3T"); | |
53 | test_format_bytes_one(UINT64_C(3)*1024*1024*1024*1024*1024, true, "3P", "3P", "3.3P", "3P"); | |
54 | test_format_bytes_one(UINT64_C(3)*1024*1024*1024*1024*1024*1024, true, "3E", "3E", "3.4E", "3E"); | |
fd8c6b46 YW |
55 | test_format_bytes_one(UINT64_MAX, true, NULL, NULL, NULL, NULL); |
56 | test_format_bytes_one(UINT64_MAX, false, NULL, NULL, NULL, NULL); | |
049025a4 YW |
57 | } |
58 | ||
4f7452a8 | 59 | DEFINE_TEST_MAIN(LOG_INFO); |