chiark / gitweb /
debugging for thing that crashed
[innduct.git] / tests / lib / strlcpy-t.c
1 /* $Id: strlcpy-t.c 5568 2002-08-12 02:06:44Z rra $ */
2 /* strlcpy test suite. */
3
4 #include "config.h"
5 #include "clibrary.h"
6
7 #include "libtest.h"
8
9 size_t test_strlcpy(char *, const char *, size_t);
10
11 int
12 main(void)
13 {
14     char buffer[10];
15
16     puts("23");
17
18     ok_int(1, 3, test_strlcpy(buffer, "foo", sizeof(buffer)));
19     ok_string(2, "foo", buffer);
20     ok_int(3, 9, test_strlcpy(buffer, "hello wor", sizeof(buffer)));
21     ok_string(4, "hello wor", buffer);
22     ok_int(5, 10, test_strlcpy(buffer, "world hell", sizeof(buffer)));
23     ok_string(6, "world hel", buffer);
24     ok(7, buffer[9] == '\0');
25     ok_int(8, 11, test_strlcpy(buffer, "hello world", sizeof(buffer)));
26     ok_string(9, "hello wor", buffer);
27     ok(10, buffer[9] == '\0');
28
29     /* Make sure that with a size of 0, the destination isn't changed. */
30     ok_int(11, 3, test_strlcpy(buffer, "foo", 0));
31     ok_string(12, "hello wor", buffer);
32
33     /* Now play with empty strings. */
34     ok_int(13, 0, test_strlcpy(buffer, "", 0));
35     ok_string(14, "hello wor", buffer);
36     ok_int(15, 0, test_strlcpy(buffer, "", sizeof(buffer)));
37     ok_string(16, "", buffer);
38     ok_int(17, 3, test_strlcpy(buffer, "foo", 2));
39     ok_string(18, "f", buffer);
40     ok(19, buffer[1] == '\0');
41     ok_int(20, 0, test_strlcpy(buffer, "", 1));
42     ok(21, buffer[0] == '\0');
43
44     /* Finally, check using strlcpy as strlen. */
45     ok_int(22, 3, test_strlcpy(NULL, "foo", 0));
46     ok_int(23, 11, test_strlcpy(NULL, "hello world", 0));
47
48     return 0;
49 }