]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
1b7cf0e5 AG |
2 | |
3 | #include <stdbool.h> | |
4 | ||
5 | #include "journald-server.h" | |
68da8adf | 6 | #include "tests.h" |
1b7cf0e5 AG |
7 | |
8 | #define _COMPRESS_PARSE_CHECK(str, enab, thresh, varname) \ | |
9 | do { \ | |
10 | JournalCompressOptions varname = {true, 111}; \ | |
11 | config_parse_compress("", "", 0, "", 0, "", 0, str, \ | |
12 | &varname, NULL); \ | |
13 | assert_se((enab) == varname.enabled); \ | |
14 | if (varname.enabled) \ | |
15 | assert_se((thresh) == varname.threshold_bytes); \ | |
16 | } while (0) | |
17 | ||
18 | #define COMPRESS_PARSE_CHECK(str, enabled, threshold) \ | |
19 | _COMPRESS_PARSE_CHECK(str, enabled, threshold, conf##__COUNTER__) | |
20 | ||
68da8adf | 21 | TEST(config_compress) { |
1b7cf0e5 AG |
22 | COMPRESS_PARSE_CHECK("yes", true, 111); |
23 | COMPRESS_PARSE_CHECK("no", false, 111); | |
24 | COMPRESS_PARSE_CHECK("y", true, 111); | |
25 | COMPRESS_PARSE_CHECK("n", false, 111); | |
26 | COMPRESS_PARSE_CHECK("true", true, 111); | |
27 | COMPRESS_PARSE_CHECK("false", false, 111); | |
28 | COMPRESS_PARSE_CHECK("t", true, 111); | |
29 | COMPRESS_PARSE_CHECK("f", false, 111); | |
30 | COMPRESS_PARSE_CHECK("on", true, 111); | |
31 | COMPRESS_PARSE_CHECK("off", false, 111); | |
32 | ||
33 | /* Weird size/bool overlapping case. We preserve backward compatibility instead of assuming these are byte | |
34 | * counts. */ | |
35 | COMPRESS_PARSE_CHECK("1", true, 111); | |
36 | COMPRESS_PARSE_CHECK("0", false, 111); | |
37 | ||
38 | /* IEC sizing */ | |
39 | COMPRESS_PARSE_CHECK("1B", true, 1); | |
40 | COMPRESS_PARSE_CHECK("1K", true, 1024); | |
41 | COMPRESS_PARSE_CHECK("1M", true, 1024 * 1024); | |
42 | COMPRESS_PARSE_CHECK("1G", true, 1024 * 1024 * 1024); | |
43 | ||
44 | /* Invalid Case */ | |
45 | COMPRESS_PARSE_CHECK("-1", true, 111); | |
46 | COMPRESS_PARSE_CHECK("blah blah", true, 111); | |
f5fbe71d | 47 | COMPRESS_PARSE_CHECK("", true, UINT64_MAX); |
1b7cf0e5 AG |
48 | } |
49 | ||
68da8adf | 50 | DEFINE_TEST_MAIN(LOG_INFO); |