]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-strxcpyx.c
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 Copyright © 2013 Thomas H.P. Andersen
8 #include "string-util.h"
12 static void test_strpcpy(void) {
17 space_left
= sizeof(target
);
18 space_left
= strpcpy(&s
, space_left
, "12345");
19 space_left
= strpcpy(&s
, space_left
, "hey hey hey");
20 space_left
= strpcpy(&s
, space_left
, "waldo");
21 space_left
= strpcpy(&s
, space_left
, "ba");
22 space_left
= strpcpy(&s
, space_left
, "r");
23 space_left
= strpcpy(&s
, space_left
, "foo");
25 assert_se(streq(target
, "12345hey hey heywaldobar"));
26 assert_se(space_left
== 0);
29 static void test_strpcpyf(void) {
34 space_left
= sizeof(target
);
35 space_left
= strpcpyf(&s
, space_left
, "space left: %zu. ", space_left
);
36 space_left
= strpcpyf(&s
, space_left
, "foo%s", "bar");
38 assert_se(streq(target
, "space left: 25. foobar"));
39 assert_se(space_left
== 3);
43 space_left
= strpcpyf(&s
, 12, "00 left: %i. ", 999);
44 assert_se(streq(target
, "00 left: 99"));
45 assert_se(space_left
== 0);
46 assert_se(target
[12] == '2');
49 static void test_strpcpyl(void) {
54 space_left
= sizeof(target
);
55 space_left
= strpcpyl(&s
, space_left
, "waldo", " test", " waldo. ", NULL
);
56 space_left
= strpcpyl(&s
, space_left
, "Banana", NULL
);
58 assert_se(streq(target
, "waldo test waldo. Banana"));
59 assert_se(space_left
== 1);
62 static void test_strscpy(void) {
66 space_left
= sizeof(target
);
67 space_left
= strscpy(target
, space_left
, "12345");
69 assert_se(streq(target
, "12345"));
70 assert_se(space_left
== 20);
73 static void test_strscpyl(void) {
77 space_left
= sizeof(target
);
78 space_left
= strscpyl(target
, space_left
, "12345", "waldo", "waldo", NULL
);
80 assert_se(streq(target
, "12345waldowaldo"));
81 assert_se(space_left
== 10);
84 int main(int argc
, char *argv
[]) {