]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/journal/test-journald-config.c
journal: move several tests to libsystemd/sd-journal
[thirdparty/systemd.git] / src / journal / test-journald-config.c
CommitLineData
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 21TEST(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 50DEFINE_TEST_MAIN(LOG_INFO);