]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/journal/test-journal-config.c
tree-wide: drop license boilerplate
[thirdparty/systemd.git] / src / journal / test-journal-config.c
CommitLineData
1b7cf0e5
AG
1/* SPDX-License-Identifier: LGPL-2.1+ */
2/***
3 This file is part of systemd.
4
5 Copyright 2011 Lennart Poettering
1b7cf0e5
AG
6***/
7
8#include <stdbool.h>
9
10#include "journald-server.h"
11
12#define _COMPRESS_PARSE_CHECK(str, enab, thresh, varname) \
13 do { \
14 JournalCompressOptions varname = {true, 111}; \
15 config_parse_compress("", "", 0, "", 0, "", 0, str, \
16 &varname, NULL); \
17 assert_se((enab) == varname.enabled); \
18 if (varname.enabled) \
19 assert_se((thresh) == varname.threshold_bytes); \
20 } while (0)
21
22#define COMPRESS_PARSE_CHECK(str, enabled, threshold) \
23 _COMPRESS_PARSE_CHECK(str, enabled, threshold, conf##__COUNTER__)
24
25static void test_config_compress(void) {
26 COMPRESS_PARSE_CHECK("yes", true, 111);
27 COMPRESS_PARSE_CHECK("no", false, 111);
28 COMPRESS_PARSE_CHECK("y", true, 111);
29 COMPRESS_PARSE_CHECK("n", false, 111);
30 COMPRESS_PARSE_CHECK("true", true, 111);
31 COMPRESS_PARSE_CHECK("false", false, 111);
32 COMPRESS_PARSE_CHECK("t", true, 111);
33 COMPRESS_PARSE_CHECK("f", false, 111);
34 COMPRESS_PARSE_CHECK("on", true, 111);
35 COMPRESS_PARSE_CHECK("off", false, 111);
36
37 /* Weird size/bool overlapping case. We preserve backward compatibility instead of assuming these are byte
38 * counts. */
39 COMPRESS_PARSE_CHECK("1", true, 111);
40 COMPRESS_PARSE_CHECK("0", false, 111);
41
42 /* IEC sizing */
43 COMPRESS_PARSE_CHECK("1B", true, 1);
44 COMPRESS_PARSE_CHECK("1K", true, 1024);
45 COMPRESS_PARSE_CHECK("1M", true, 1024 * 1024);
46 COMPRESS_PARSE_CHECK("1G", true, 1024 * 1024 * 1024);
47
48 /* Invalid Case */
49 COMPRESS_PARSE_CHECK("-1", true, 111);
50 COMPRESS_PARSE_CHECK("blah blah", true, 111);
51 COMPRESS_PARSE_CHECK("", true, (uint64_t)-1);
52}
53
54int main(int argc, char *argv[]) {
55 test_config_compress();
56
57 return 0;
58}