Print this page
XXXX update sendmail to 8.14.9
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/cmd/sendmail/libsm/t-strl.c
+++ new/usr/src/cmd/sendmail/libsm/t-strl.c
1 1 /*
2 - * Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
2 + * Copyright (c) 2000-2001 Proofpoint, Inc. and its suppliers.
3 3 * All rights reserved.
4 4 *
5 5 * By using this file, you agree to the terms and conditions set
6 6 * forth in the LICENSE file which can be found at the top level of
7 7 * the sendmail distribution.
8 8 *
9 9 */
10 10
11 -#pragma ident "%Z%%M% %I% %E% SMI"
12 -
13 11 #include <sm/gen.h>
14 -SM_IDSTR(id, "@(#)$Id: t-strl.c,v 1.13 2001/08/27 23:00:05 gshapiro Exp $")
12 +SM_IDSTR(id, "@(#)$Id: t-strl.c,v 1.16 2013-11-22 20:51:44 ca Exp $")
15 13
16 14 #include <stdlib.h>
17 15 #include <stdio.h>
18 16 #include <sm/heap.h>
19 17 #include <sm/string.h>
20 18 #include <sm/test.h>
21 19
22 20 #define MAXL 16
23 21 #define N 5
24 22 #define SIZE 128
25 23
26 24 int
27 25 main(argc, argv)
28 26 int argc;
29 27 char *argv[];
30 28 {
31 29 char *s1, *s2, *s3;
32 30 int one, two, k;
33 31 char src1[N][SIZE], dst1[SIZE], dst2[SIZE];
34 32 char *r;
35 33
36 34 sm_test_begin(argc, argv, "test strl* string functions");
37 35 s1 = "abc";
38 36 s2 = "123";
39 37 s3 = sm_malloc_x(MAXL);
40 38
41 39 SM_TEST(sm_strlcpy(s3, s1, 4) == 3);
42 40 SM_TEST(strcmp(s1, s3) == 0);
43 41
44 42 SM_TEST(sm_strlcat(s3, s2, 8) == 6);
45 43 r ="abc123";
46 44 SM_TEST(strcmp(s3, r) == 0);
47 45
48 46 SM_TEST(sm_strlcpy(s3, s1, 2) == 3);
49 47 r = "a";
50 48 SM_TEST(strcmp(s3, r) == 0);
51 49
52 50 SM_TEST(sm_strlcat(s3, s2, 3) == 4);
53 51 r = "a1";
54 52 SM_TEST(strcmp(s3, r) == 0);
55 53
56 54 SM_TEST(sm_strlcpy(s3, s1, 4) == 3);
57 55 r = ":";
58 56 SM_TEST(sm_strlcat2(s3, r, s2, MAXL) == 7);
59 57 r = "abc:123";
60 58 SM_TEST(strcmp(s3, r) == 0);
61 59
62 60 SM_TEST(sm_strlcpy(s3, s1, 4) == 3);
63 61 r = ":";
64 62 SM_TEST(sm_strlcat2(s3, r, s2, 6) == 7);
65 63 r = "abc:1";
66 64 SM_TEST(strcmp(s3, r) == 0);
67 65
68 66 SM_TEST(sm_strlcpy(s3, s1, 4) == 3);
69 67 r = ":";
70 68 SM_TEST(sm_strlcat2(s3, r, s2, 2) == 7);
71 69 r = "abc";
72 70 SM_TEST(strcmp(s3, r) == 0);
73 71
74 72 SM_TEST(sm_strlcpy(s3, s1, 4) == 3);
75 73 r = ":";
76 74 SM_TEST(sm_strlcat2(s3, r, s2, 4) == 7);
77 75 r = "abc";
78 76 SM_TEST(strcmp(s3, r) == 0);
79 77
80 78 SM_TEST(sm_strlcpy(s3, s1, 4) == 3);
81 79 r = ":";
82 80 SM_TEST(sm_strlcat2(s3, r, s2, 5) == 7);
83 81 r = "abc:";
84 82 SM_TEST(strcmp(s3, r) == 0);
85 83
86 84 SM_TEST(sm_strlcpy(s3, s1, 4) == 3);
87 85 r = ":";
88 86 SM_TEST(sm_strlcat2(s3, r, s2, 6) == 7);
89 87 r = "abc:1";
90 88 SM_TEST(strcmp(s3, r) == 0);
91 89
92 90 for (k = 0; k < N; k++)
93 91 {
94 92 (void) sm_strlcpy(src1[k], "abcdef", sizeof src1);
95 93 }
96 94
97 95 one = sm_strlcpyn(dst1, sizeof dst1, 3, src1[0], "/", src1[1]);
98 96 two = sm_snprintf(dst2, sizeof dst2, "%s/%s", src1[0], src1[1]);
99 97 SM_TEST(one == two);
100 98 SM_TEST(strcmp(dst1, dst2) == 0);
101 99 one = sm_strlcpyn(dst1, 10, 3, src1[0], "/", src1[1]);
102 100 two = sm_snprintf(dst2, 10, "%s/%s", src1[0], src1[1]);
103 101 SM_TEST(one == two);
104 102 SM_TEST(strcmp(dst1, dst2) == 0);
105 103 one = sm_strlcpyn(dst1, 5, 3, src1[0], "/", src1[1]);
106 104 two = sm_snprintf(dst2, 5, "%s/%s", src1[0], src1[1]);
107 105 SM_TEST(one == two);
108 106 SM_TEST(strcmp(dst1, dst2) == 0);
109 107 one = sm_strlcpyn(dst1, 0, 3, src1[0], "/", src1[1]);
110 108 two = sm_snprintf(dst2, 0, "%s/%s", src1[0], src1[1]);
111 109 SM_TEST(one == two);
112 110 SM_TEST(strcmp(dst1, dst2) == 0);
113 111 one = sm_strlcpyn(dst1, sizeof dst1, 5, src1[0], "/", src1[1], "/", src1[2]);
114 112 two = sm_snprintf(dst2, sizeof dst2, "%s/%s/%s", src1[0], src1[1], src1[2]);
115 113 SM_TEST(one == two);
116 114 SM_TEST(strcmp(dst1, dst2) == 0);
117 115 one = sm_strlcpyn(dst1, 15, 5, src1[0], "/", src1[1], "/", src1[2]);
118 116 two = sm_snprintf(dst2, 15, "%s/%s/%s", src1[0], src1[1], src1[2]);
119 117 SM_TEST(one == two);
120 118 SM_TEST(strcmp(dst1, dst2) == 0);
121 119 one = sm_strlcpyn(dst1, 20, 5, src1[0], "/", src1[1], "/", src1[2]);
122 120 two = sm_snprintf(dst2, 20, "%s/%s/%s", src1[0], src1[1], src1[2]);
123 121 SM_TEST(one == two);
124 122 SM_TEST(strcmp(dst1, dst2) == 0);
125 123
126 124 one = sm_strlcpyn(dst1, sizeof dst1, 0);
127 125 SM_TEST(one == 0);
128 126 r = "";
129 127 SM_TEST(strcmp(dst1, r) == 0);
130 128 one = sm_strlcpyn(dst1, 20, 1, src1[0]);
131 129 two = sm_snprintf(dst2, 20, "%s", src1[0]);
132 130 SM_TEST(one == two);
133 131 one = sm_strlcpyn(dst1, 2, 1, src1[0]);
134 132 two = sm_snprintf(dst2, 2, "%s", src1[0]);
135 133 SM_TEST(one == two);
136 134
137 135 return sm_test_end();
138 136 }
|
↓ open down ↓ |
114 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX