]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-format-util.c
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 #include "format-util.h"
5 #include "string-util.h"
7 static void test_format_bytes_one(size_t val
, bool trailing_B
, const char *iec_with_p
, const char *iec_without_p
,
8 const char *non_iec_with_p
, const char *non_iec_without_p
) {
9 char buf
[FORMAT_BYTES_MAX
];
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
));
13 assert_se(streq_ptr(format_bytes_full(buf
, sizeof buf
, val
, FORMAT_BYTES_BELOW_POINT
| (trailing_B
? FORMAT_BYTES_TRAILING_B
: 0)), non_iec_with_p
));
14 assert_se(streq_ptr(format_bytes_full(buf
, sizeof buf
, val
, trailing_B
? FORMAT_BYTES_TRAILING_B
: 0), non_iec_without_p
));
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");
26 test_format_bytes_one((size_t) 3*1024*1024, true, "3.0M", "3M", "3.1M", "3M");
27 test_format_bytes_one((size_t) 3*1024*1024*1024, true, "3.0G", "3G", "3.2G", "3G");
28 test_format_bytes_one((size_t) 3*1024*1024*1024*1024, true, "3.0T", "3T", "3.2T", "3T");
29 test_format_bytes_one((size_t) 3*1024*1024*1024*1024*1024, true, "3.0P", "3P", "3.3P", "3P");
30 test_format_bytes_one((size_t) 3*1024*1024*1024*1024*1024*1024, true, "3.0E", "3E", "3.4E", "3E");
31 test_format_bytes_one(SIZE_MAX
, true, NULL
, NULL
, NULL
, NULL
);