]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-strxcpyx.c
1ca5ac7c9e07e8a898f186d26a3de56f4136dffb
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
14 space_left
= sizeof(target
);
15 space_left
= strpcpy_full(&s
, space_left
, "12345", &truncated
);
16 assert_se(!truncated
);
17 space_left
= strpcpy_full(&s
, space_left
, "hey hey hey", &truncated
);
18 assert_se(!truncated
);
19 space_left
= strpcpy_full(&s
, space_left
, "waldo", &truncated
);
20 assert_se(!truncated
);
21 space_left
= strpcpy_full(&s
, space_left
, "ba", &truncated
);
22 assert_se(!truncated
);
23 space_left
= strpcpy_full(&s
, space_left
, "r", &truncated
);
24 assert_se(!truncated
);
25 assert_se(space_left
== 1);
26 ASSERT_STREQ(target
, "12345hey hey heywaldobar");
28 space_left
= strpcpy_full(&s
, space_left
, "", &truncated
);
29 assert_se(!truncated
);
30 assert_se(space_left
== 1);
31 ASSERT_STREQ(target
, "12345hey hey heywaldobar");
33 space_left
= strpcpy_full(&s
, space_left
, "f", &truncated
);
35 assert_se(space_left
== 0);
36 ASSERT_STREQ(target
, "12345hey hey heywaldobar");
38 space_left
= strpcpy_full(&s
, space_left
, "", &truncated
);
39 assert_se(!truncated
);
40 assert_se(space_left
== 0);
41 ASSERT_STREQ(target
, "12345hey hey heywaldobar");
43 space_left
= strpcpy_full(&s
, space_left
, "foo", &truncated
);
45 assert_se(space_left
== 0);
46 ASSERT_STREQ(target
, "12345hey hey heywaldobar");
55 space_left
= sizeof(target
);
56 space_left
= strpcpyf_full(&s
, space_left
, &truncated
, "space left: %zu. ", space_left
);
57 assert_se(!truncated
);
58 space_left
= strpcpyf_full(&s
, space_left
, &truncated
, "foo%s", "bar");
59 assert_se(!truncated
);
60 assert_se(space_left
== 3);
61 ASSERT_STREQ(target
, "space left: 25. foobar");
63 space_left
= strpcpyf_full(&s
, space_left
, &truncated
, "%i", 42);
64 assert_se(!truncated
);
65 assert_se(space_left
== 1);
66 ASSERT_STREQ(target
, "space left: 25. foobar42");
68 space_left
= strpcpyf_full(&s
, space_left
, &truncated
, "%s", "");
69 assert_se(!truncated
);
70 assert_se(space_left
== 1);
71 ASSERT_STREQ(target
, "space left: 25. foobar42");
73 space_left
= strpcpyf_full(&s
, space_left
, &truncated
, "%c", 'x');
75 assert_se(space_left
== 0);
76 ASSERT_STREQ(target
, "space left: 25. foobar42");
78 space_left
= strpcpyf_full(&s
, space_left
, &truncated
, "%s", "");
79 assert_se(!truncated
);
80 assert_se(space_left
== 0);
81 ASSERT_STREQ(target
, "space left: 25. foobar42");
83 space_left
= strpcpyf_full(&s
, space_left
, &truncated
, "abc%s", "hoge");
85 assert_se(space_left
== 0);
86 ASSERT_STREQ(target
, "space left: 25. foobar42");
90 space_left
= strpcpyf_full(&s
, 12, &truncated
, "00 left: %i. ", 999);
92 ASSERT_STREQ(target
, "00 left: 99");
93 assert_se(space_left
== 0);
94 assert_se(target
[12] == '2');
103 space_left
= sizeof(target
);
104 space_left
= strpcpyl_full(&s
, space_left
, &truncated
, "waldo", " test", " waldo. ", NULL
);
105 assert_se(!truncated
);
106 space_left
= strpcpyl_full(&s
, space_left
, &truncated
, "Banana", NULL
);
107 assert_se(!truncated
);
108 assert_se(space_left
== 1);
109 ASSERT_STREQ(target
, "waldo test waldo. Banana");
111 space_left
= strpcpyl_full(&s
, space_left
, &truncated
, "", "", "", NULL
);
112 assert_se(!truncated
);
113 assert_se(space_left
== 1);
114 ASSERT_STREQ(target
, "waldo test waldo. Banana");
116 space_left
= strpcpyl_full(&s
, space_left
, &truncated
, "", "x", "", NULL
);
117 assert_se(truncated
);
118 assert_se(space_left
== 0);
119 ASSERT_STREQ(target
, "waldo test waldo. Banana");
121 space_left
= strpcpyl_full(&s
, space_left
, &truncated
, "hoge", NULL
);
122 assert_se(truncated
);
123 assert_se(space_left
== 0);
124 ASSERT_STREQ(target
, "waldo test waldo. Banana");
132 space_left
= sizeof(target
);
133 space_left
= strscpy_full(target
, space_left
, "12345", &truncated
);
134 assert_se(!truncated
);
136 ASSERT_STREQ(target
, "12345");
137 assert_se(space_left
== 20);
145 space_left
= sizeof(target
);
146 space_left
= strscpyl_full(target
, space_left
, &truncated
, "12345", "waldo", "waldo", NULL
);
147 assert_se(!truncated
);
149 ASSERT_STREQ(target
, "12345waldowaldo");
150 assert_se(space_left
== 10);
153 TEST(sd_event_code_migration
) {
154 char b
[100 * DECIMAL_STR_MAX(unsigned) + 1];
155 char c
[100 * DECIMAL_STR_MAX(unsigned) + 1], *p
;
160 for (i
= o
= 0; i
< 100; i
++) {
161 r
= snprintf(&b
[o
], sizeof(b
) - o
, "%u ", i
);
162 assert_se(r
>= 0 && r
< (int) sizeof(b
) - o
);
168 for (i
= 0; i
< 100; i
++)
169 l
= strpcpyf(&p
, l
, "%u ", i
);
174 DEFINE_TEST_MAIN(LOG_INFO
);