]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/test/test-format-util.c
io.systemd.Unit.List fix context/runtime split (#38172)
[thirdparty/systemd.git] / src / test / test-format-util.c
CommitLineData
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 8assert_cc(STRLEN("") == 0);
d17c93a7
JJ
9assert_cc(STRLEN("a") == 1);
10assert_cc(STRLEN("123") == 3);
11assert_cc(STRLEN(u8"") == 0);
12assert_cc(STRLEN(u8"a") == 1);
13assert_cc(STRLEN(u8"123") == 3);
14assert_cc(STRLEN(u"") == 0);
15assert_cc(STRLEN(u"a") == sizeof(char16_t));
16assert_cc(STRLEN(u"123") == 3 * sizeof(char16_t));
17assert_cc(STRLEN(U"") == 0);
18assert_cc(STRLEN(U"a") == sizeof(char32_t));
19assert_cc(STRLEN(U"123") == 3 * sizeof(char32_t));
f862e847 20assert_cc(STRLEN(L"") == 0);
d17c93a7
JJ
21assert_cc(STRLEN(L"a") == sizeof(wchar_t));
22assert_cc(STRLEN(L"123") == 3 * sizeof(wchar_t));
56da8d5a
LP
23assert_cc(DECIMAL_STR_MAX(uint8_t) == STRLEN("255")+1);
24assert_cc(DECIMAL_STR_MAX(int8_t) == STRLEN("-127")+1);
25assert_cc(DECIMAL_STR_MAX(uint64_t) == STRLEN("18446744073709551615")+1);
26assert_cc(DECIMAL_STR_MAX(int64_t) == CONST_MAX(STRLEN("-9223372036854775808"), STRLEN("9223372036854775807"))+1);
27assert_cc(DECIMAL_STR_MAX(signed char) == STRLEN("-127")+1);
28assert_cc(DECIMAL_STR_MAX(unsigned char) == STRLEN("255")+1);
d3e40294
ZJS
29assert_cc(CONST_MAX(DECIMAL_STR_MAX(int8_t), STRLEN("xxx")) == 5);
30
fd8c6b46 31static 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 41TEST(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 59DEFINE_TEST_MAIN(LOG_INFO);