]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/journal/test-journal-send.c
1 /* SPDX-License-Identifier: LGPL-2.1+ */
7 #include "sd-journal.h"
10 #include "memory-util.h"
12 static void test_journal_print(void) {
13 assert_se(sd_journal_print(LOG_INFO
, "XXX") == 0);
14 assert_se(sd_journal_print(LOG_INFO
, "%s", "YYY") == 0);
15 assert_se(sd_journal_print(LOG_INFO
, "X%4094sY", "ZZZ") == 0);
16 assert_se(sd_journal_print(LOG_INFO
, "X%*sY", LONG_LINE_MAX
- 8 - 3, "ZZZ") == 0);
17 assert_se(sd_journal_print(LOG_INFO
, "X%*sY", LONG_LINE_MAX
- 8 - 2, "ZZZ") == -ENOBUFS
);
20 static void test_journal_send(void) {
21 _cleanup_free_
char *huge
= NULL
;
23 #define HUGE_SIZE (4096*1024)
24 assert_se(huge
= malloc(HUGE_SIZE
));
26 /* utf-8 and non-utf-8, message-less and message-ful iovecs */
27 struct iovec graph1
[] = {
28 {(char*) "GRAPH=graph", STRLEN("GRAPH=graph")}
30 struct iovec graph2
[] = {
31 {(char*) "GRAPH=graph\n", STRLEN("GRAPH=graph\n")}
33 struct iovec message1
[] = {
34 {(char*) "MESSAGE=graph", STRLEN("MESSAGE=graph")}
36 struct iovec message2
[] = {
37 {(char*) "MESSAGE=graph\n", STRLEN("MESSAGE=graph\n")}
40 assert_se(sd_journal_print(LOG_INFO
, "piepapo") == 0);
42 assert_se(sd_journal_send("MESSAGE=foobar",
47 assert_se(sd_journal_perror("Foobar") == 0);
49 assert_se(sd_journal_perror("") == 0);
51 memcpy(huge
, "HUGE=", STRLEN("HUGE="));
52 memset(&huge
[STRLEN("HUGE=")], 'x', HUGE_SIZE
- STRLEN("HUGE=") - 1);
53 huge
[HUGE_SIZE
- 1] = '\0';
55 assert_se(sd_journal_send("MESSAGE=Huge field attached",
59 assert_se(sd_journal_send("MESSAGE=uiui",
66 "WITH_BINARY=this is a binary value \a",
69 syslog(LOG_NOTICE
, "Hello World!");
71 assert_se(sd_journal_print(LOG_NOTICE
, "Hello World") == 0);
73 assert_se(sd_journal_send("MESSAGE=Hello World!",
74 "MESSAGE_ID=52fb62f99e2c49d89cfbf9d6de5e3555",
76 "HOME=%s", getenv("HOME"),
77 "TERM=%s", getenv("TERM"),
78 "PAGE_SIZE=%li", sysconf(_SC_PAGESIZE
),
79 "N_CPUS=%li", sysconf(_SC_NPROCESSORS_ONLN
),
82 assert_se(sd_journal_sendv(graph1
, 1) == 0);
83 assert_se(sd_journal_sendv(graph2
, 1) == 0);
84 assert_se(sd_journal_sendv(message1
, 1) == 0);
85 assert_se(sd_journal_sendv(message2
, 1) == 0);
87 /* test without location fields */
88 #undef sd_journal_sendv
89 assert_se(sd_journal_sendv(graph1
, 1) == 0);
90 assert_se(sd_journal_sendv(graph2
, 1) == 0);
91 assert_se(sd_journal_sendv(message1
, 1) == 0);
92 assert_se(sd_journal_sendv(message2
, 1) == 0);
95 int main(int argc
, char *argv
[]) {
99 /* Sleep a bit to make it easy for journald to collect metadata. */