|
1 | 1 | #include <unittest/unittest.h> |
2 | 2 | #include <types.h> |
3 | 3 | #include <moslimits.h> |
4 | | -#include <kdebug.h> |
5 | | -#include <string.h> |
6 | | -#include <stdio.h> |
7 | 4 | #include <utils.h> |
8 | | -#include <kernel.h> |
| 5 | +#include <string.h> |
| 6 | +#include <cm/cm.h> |
9 | 7 |
|
10 | | -TEST(snprintf, no_vargs) |
| 8 | +TEST(cm_snprintf, no_vargs) |
11 | 9 | { |
12 | 10 | #define MESSAGE "Hello world" |
13 | 11 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
14 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), MESSAGE); |
| 12 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), MESSAGE); |
15 | 13 | EQ_SCALAR(ret, 11); |
16 | 14 | EQ_SCALAR(ret, strlen(MESSAGE)); |
17 | 15 | EQ_STRING(d, MESSAGE); |
18 | 16 | END(); |
19 | 17 | } |
20 | 18 |
|
21 | | -TEST(snprintf, unsigned_int_bit_format) |
| 19 | +TEST(cm_snprintf, unsigned_int_bit_format) |
22 | 20 | { |
23 | 21 | INT num = 0xFF01; |
24 | 22 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
25 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%b", num); |
| 23 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%b", num); |
26 | 24 | EQ_SCALAR(ret, 17); |
27 | 25 | EQ_STRING(d, "1111111100000001b"); |
28 | 26 | END(); |
29 | 27 | } |
30 | 28 |
|
31 | | -TEST(snprintf, unsigned_int_decimal_format) |
| 29 | +TEST(cm_snprintf, unsigned_int_decimal_format) |
32 | 30 | { |
33 | 31 | INT num = 1045; |
34 | 32 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
35 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%u", num); |
| 33 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%u", num); |
36 | 34 | EQ_SCALAR(ret, 4); |
37 | 35 | EQ_STRING(d, "1045"); |
38 | 36 | END(); |
39 | 37 | } |
40 | 38 |
|
41 | | -TEST(snprintf, unsigned_int_hex_format_without_base_identifier) |
| 39 | +TEST(cm_snprintf, unsigned_int_hex_format_without_base_identifier) |
42 | 40 | { |
43 | 41 | INT num = 0x123def; |
44 | 42 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
45 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%h", num); |
| 43 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%h", num); |
46 | 44 | EQ_SCALAR(ret, 6); |
47 | 45 | EQ_STRING(d, "123DEF"); |
48 | 46 | END(); |
49 | 47 | } |
50 | 48 |
|
51 | | -TEST(snprintf, unsigned_int_hex_format) |
| 49 | +TEST(cm_snprintf, unsigned_int_hex_format) |
52 | 50 | { |
53 | 51 | INT num = 0x123def; |
54 | 52 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
55 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%x", num); |
| 53 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%x", num); |
56 | 54 | EQ_SCALAR(ret, 7); |
57 | 55 | EQ_STRING(d, "123DEFh"); |
58 | 56 | END(); |
59 | 57 | } |
60 | 58 |
|
61 | | -TEST(snprintf, unsigned_int_octal_format) |
| 59 | +TEST(cm_snprintf, unsigned_int_octal_format) |
62 | 60 | { |
63 | 61 | INT num = 07210; |
64 | 62 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
65 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%o", num); |
| 63 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%o", num); |
66 | 64 | EQ_SCALAR(ret, 5); |
67 | 65 | EQ_STRING(d, "7210o"); |
68 | 66 | END(); |
69 | 67 | } |
70 | 68 |
|
71 | | -TEST(snprintf, unsigned_long_hex_format) |
| 69 | +TEST(cm_snprintf, unsigned_long_hex_format) |
72 | 70 | { |
73 | 71 | U32 num = 0xCF010203; |
74 | 72 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
75 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%lx", num); |
| 73 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%lx", num); |
76 | 74 | EQ_SCALAR(ret, 9); |
77 | 75 | EQ_STRING(d, "CF010203h"); |
78 | 76 | END(); |
79 | 77 | } |
80 | | -TEST(snprintf, unsigned_long_long_hex_format) |
| 78 | +TEST(cm_snprintf, unsigned_long_long_hex_format) |
81 | 79 | { |
82 | 80 | U64 num = 0xCF010203040506FF; |
83 | 81 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
84 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%llx", num); |
| 82 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%llx", num); |
85 | 83 | EQ_SCALAR(ret, 17); |
86 | 84 | EQ_STRING(d, "CF010203040506FFh"); |
87 | 85 | END(); |
88 | 86 | } |
89 | 87 |
|
90 | | -TEST(snprintf, limit_check_empty_string) |
| 88 | +TEST(cm_snprintf, limit_check_empty_string) |
91 | 89 | { |
92 | 90 | CHAR *message = ""; |
93 | 91 | CHAR d[1]; |
94 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%s", message); |
| 92 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%s", message); |
95 | 93 | EQ_SCALAR(ret, 0); |
96 | 94 | EQ_STRING(d, ""); |
97 | 95 | END(); |
98 | 96 | } |
99 | 97 |
|
100 | | -TEST(snprintf, limit_check_at_edge) |
| 98 | +TEST(cm_snprintf, limit_check_at_edge) |
101 | 99 | { |
102 | 100 | CHAR *message = "aaa"; // 3 'a's. NULL at index 3. |
103 | 101 | CHAR d[4]; |
104 | 102 |
|
105 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%s", message); |
| 103 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%s", message); |
106 | 104 | EQ_SCALAR(ret, 3); |
107 | 105 | EQ_STRING(d, message); |
108 | 106 | END(); |
109 | 107 | } |
110 | 108 |
|
111 | | -TEST(snprintf, limit_check_overflow_literal) |
| 109 | +TEST(cm_snprintf, limit_check_overflow_literal) |
112 | 110 | { |
113 | 111 | #define MESSAGE "Hello world" |
114 | 112 | CHAR d[8]; |
115 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), MESSAGE); |
| 113 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), MESSAGE); |
116 | 114 | EQ_SCALAR(ret, 11); |
117 | 115 | EQ_STRING(d, "Hello w"); |
118 | 116 | END(); |
119 | 117 | } |
120 | 118 |
|
121 | | -TEST(snprintf, limit_check_overflow_string_format) |
| 119 | +TEST(cm_snprintf, limit_check_overflow_string_format) |
122 | 120 | { |
123 | 121 | CHAR *message = "Hello world"; |
124 | 122 | CHAR d[8]; |
125 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%s", message); |
| 123 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%s", message); |
126 | 124 | EQ_SCALAR(ret, 11); |
127 | 125 | EQ_STRING(d, "Hello w"); |
128 | 126 | END(); |
129 | 127 | } |
130 | 128 |
|
131 | | -TEST(snprintf, limit_check_overflow_unsigned_int) |
| 129 | +TEST(cm_snprintf, limit_check_overflow_unsigned_int) |
132 | 130 | { |
133 | 131 | INT num = 0xFF012EA; |
134 | 132 | CHAR d[4]; |
135 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%x", num); |
| 133 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%x", num); |
136 | 134 | EQ_SCALAR(ret, 8); |
137 | 135 | EQ_STRING(d, "FF0"); |
138 | 136 | END(); |
139 | 137 | } |
140 | 138 |
|
141 | | -TEST(snprintf, limit_check_overflow_mixed) |
| 139 | +TEST(cm_snprintf, limit_check_overflow_mixed) |
142 | 140 | { |
143 | 141 | INT num = 0xFF012EA; |
144 | 142 | CHAR d[15]; |
145 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "Hello %s %x", |
| 143 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "Hello %s %x", |
146 | 144 | "World", num); |
147 | 145 | EQ_SCALAR(ret, 20); |
148 | 146 | EQ_STRING(d, "Hello World FF"); |
149 | 147 | END(); |
150 | 148 | } |
151 | 149 |
|
152 | | -TEST(snprintf, percent_symbol) |
| 150 | +TEST(cm_snprintf, percent_symbol) |
153 | 151 | { |
154 | 152 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
155 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "100%%"); |
| 153 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "100%%"); |
156 | 154 | EQ_SCALAR(ret, 4); |
157 | 155 | EQ_STRING(d, "100%"); |
158 | 156 | END(); |
159 | 157 | } |
160 | 158 |
|
161 | | -TEST(snprintf, wrong_format) |
| 159 | +TEST(cm_snprintf, wrong_format) |
162 | 160 | { |
163 | | - // %a is not a valid format. snprintf should treat this to be a literal. |
| 161 | + // %a is not a valid format. cm_snprintf should treat this to be a literal. |
164 | 162 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
165 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "Hello %arjob"); |
| 163 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "Hello %arjob"); |
166 | 164 | EQ_SCALAR(ret, 12); |
167 | 165 | EQ_STRING(d, "Hello %arjob"); |
168 | 166 | END(); |
169 | 167 | } |
170 | 168 |
|
171 | | -TEST(snprintf, string_literal) |
| 169 | +TEST(cm_snprintf, string_literal) |
172 | 170 | { |
173 | 171 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
174 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "Arjob 0x10A"); |
| 172 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "Arjob 0x10A"); |
175 | 173 | EQ_SCALAR(ret, 11); |
176 | 174 | EQ_STRING(d, "Arjob 0x10A"); |
177 | 175 | END(); |
178 | 176 | } |
179 | 177 |
|
180 | | -TEST(snprintf, memory_overlap) |
| 178 | +TEST(cm_snprintf, memory_overlap) |
181 | 179 | { |
182 | 180 | CHAR d[MAX_PRINTABLE_STRING_LENGTH]; |
183 | | - INT ret1 = snprintf (d, ARRAY_LENGTH(d), "Hello"); |
184 | | - INT ret2 = snprintf (d, ARRAY_LENGTH(d), "%s World", d); |
| 181 | + INT ret1 = cm_snprintf (d, ARRAY_LENGTH(d), "Hello"); |
| 182 | + INT ret2 = cm_snprintf (d, ARRAY_LENGTH(d), "%s World", d); |
185 | 183 | EQ_SCALAR(ret1, 5); |
186 | 184 | EQ_SCALAR(ret2, 5 + 1 + 5); |
187 | 185 | EQ_STRING(d, "Hello World"); |
188 | 186 | END(); |
189 | 187 | } |
190 | 188 |
|
191 | | -TEST(snprintf, pointer_literal) |
| 189 | +TEST(cm_snprintf, pointer_literal) |
192 | 190 | { |
193 | 191 | USYSINT num = 0xFF012EA; |
194 | 192 | CHAR d[10]; |
195 | | - INT ret = snprintf (d, ARRAY_LENGTH(d), "%px", num); |
| 193 | + INT ret = cm_snprintf (d, ARRAY_LENGTH(d), "%px", num); |
196 | 194 | EQ_SCALAR(ret, 8); |
197 | 195 | EQ_STRING(d, "FF012EAh"); |
198 | 196 | END(); |
|
0 commit comments