Lines Matching defs:test

8 #include <kunit/test.h>
16 #define STRCMP_TEST_EXPECT_EQUAL(test, fn, ...) KUNIT_EXPECT_EQ(test, fn(__VA_ARGS__), 0)
17 #define STRCMP_TEST_EXPECT_LOWER(test, fn, ...) KUNIT_EXPECT_LT(test, fn(__VA_ARGS__), 0)
18 #define STRCMP_TEST_EXPECT_GREATER(test, fn, ...) KUNIT_EXPECT_GT(test, fn(__VA_ARGS__), 0)
20 static void string_test_memset16(struct kunit *test)
25 p = kunit_kzalloc(test, 256 * 2 * 2, GFP_KERNEL);
26 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, p);
35 KUNIT_ASSERT_EQ_MSG(test, v, 0xa1a1,
38 KUNIT_ASSERT_EQ_MSG(test, v, 0xb1b2,
41 KUNIT_ASSERT_EQ_MSG(test, v, 0xa1a1,
49 static void string_test_memset32(struct kunit *test)
54 p = kunit_kzalloc(test, 256 * 2 * 4, GFP_KERNEL);
55 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, p);
64 KUNIT_ASSERT_EQ_MSG(test, v, 0xa1a1a1a1,
67 KUNIT_ASSERT_EQ_MSG(test, v, 0xb1b2b3b4,
70 KUNIT_ASSERT_EQ_MSG(test, v, 0xa1a1a1a1,
78 static void string_test_memset64(struct kunit *test)
83 p = kunit_kzalloc(test, 256 * 2 * 8, GFP_KERNEL);
84 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, p);
93 KUNIT_ASSERT_EQ_MSG(test, v, 0xa1a1a1a1a1a1a1a1ULL,
96 KUNIT_ASSERT_EQ_MSG(test, v, 0xb1b2b3b4b5b6b7b8ULL,
99 KUNIT_ASSERT_EQ_MSG(test, v, 0xa1a1a1a1a1a1a1a1ULL,
107 static void string_test_strchr(struct kunit *test)
116 KUNIT_ASSERT_EQ_MSG(test, result - test_string, i,
121 KUNIT_ASSERT_PTR_EQ(test, result, empty_string);
124 KUNIT_ASSERT_NULL(test, result);
127 KUNIT_ASSERT_NULL(test, result);
130 static void string_test_strnchr(struct kunit *test)
141 KUNIT_ASSERT_NULL_MSG(test, result,
144 KUNIT_ASSERT_EQ_MSG(test, result - test_string, i,
151 KUNIT_ASSERT_NULL(test, result);
154 KUNIT_ASSERT_PTR_EQ(test, result, empty_string);
157 KUNIT_ASSERT_NULL(test, result);
160 KUNIT_ASSERT_NULL(test, result);
163 static void string_test_strspn(struct kunit *test)
181 KUNIT_ASSERT_EQ_MSG(test, s->a, strspn(s->str, s->accept),
183 KUNIT_ASSERT_EQ_MSG(test, s->r, strcspn(s->str, s->reject),
199 static void string_test_strcmp(struct kunit *test)
202 STRCMP_TEST_EXPECT_EQUAL(test, strcmp, "Hello, Kernel!", "Hello, Kernel!");
204 STRCMP_TEST_EXPECT_LOWER(test, strcmp, "Hello, KUnit!", "Hello, Kernel!");
206 STRCMP_TEST_EXPECT_GREATER(test, strcmp, "Hello, Kernel!", "Hello, KUnit!");
208 STRCMP_TEST_EXPECT_LOWER(test, strcmp, "", "Non-empty string");
210 STRCMP_TEST_EXPECT_EQUAL(test, strcmp, "", "");
212 STRCMP_TEST_EXPECT_LOWER(test, strcmp, "Abacaba", "Abadaba");
214 STRCMP_TEST_EXPECT_LOWER(test, strcmp, "Just a string", "Just a string and something else");
217 static void string_test_strcmp_long_strings(struct kunit *test)
220 STRCMP_TEST_EXPECT_EQUAL(test, strcmp, strcmp_buffer1, strcmp_buffer2);
223 STRCMP_TEST_EXPECT_LOWER(test, strcmp, strcmp_buffer1, strcmp_buffer2);
226 STRCMP_TEST_EXPECT_GREATER(test, strcmp, strcmp_buffer1, strcmp_buffer2);
229 static void string_test_strncmp(struct kunit *test)
232 STRCMP_TEST_EXPECT_EQUAL(test, strncmp, "Hello, KUnit!", "Hello, KUnit!", 13);
234 STRCMP_TEST_EXPECT_LOWER(test, strncmp, "Hello, KUnit!", "Hello, Kernel!", 13);
236 STRCMP_TEST_EXPECT_EQUAL(test, strncmp, "Hello, Kernel!", "Hello, KUnit!", 0);
238 STRCMP_TEST_EXPECT_EQUAL(test, strncmp, "Abacaba", "Abadaba", 3);
240 STRCMP_TEST_EXPECT_LOWER(test, strncmp, "Abacaba", "Abadaba", 4);
242 STRCMP_TEST_EXPECT_LOWER(test, strncmp, "Just a string", "Just a string and something else",
248 STRCMP_TEST_EXPECT_EQUAL(test, strncmp, "Just a string", "Just a string and something else",
252 static void string_test_strncmp_long_strings(struct kunit *test)
255 STRCMP_TEST_EXPECT_EQUAL(test, strncmp, strcmp_buffer1,
259 STRCMP_TEST_EXPECT_LOWER(test, strncmp, strcmp_buffer1,
263 STRCMP_TEST_EXPECT_GREATER(test, strncmp, strcmp_buffer1,
266 STRCMP_TEST_EXPECT_EQUAL(test, strncmp, strcmp_buffer1,
268 STRCMP_TEST_EXPECT_GREATER(test, strncmp, strcmp_buffer1,
272 static void string_test_strcasecmp(struct kunit *test)
275 STRCMP_TEST_EXPECT_EQUAL(test, strcasecmp, "Hello, Kernel!", "HeLLO, KErNeL!");
277 STRCMP_TEST_EXPECT_EQUAL(test, strcasecmp, "", "");
279 STRCMP_TEST_EXPECT_LOWER(test, strcasecmp, "a", "B");
280 STRCMP_TEST_EXPECT_GREATER(test, strcasecmp, "B", "a");
282 STRCMP_TEST_EXPECT_EQUAL(test, strcasecmp, "-+**.1230ghTTT~^", "-+**.1230Ghttt~^");
285 static void string_test_strcasecmp_long_strings(struct kunit *test)
288 STRCMP_TEST_EXPECT_EQUAL(test, strcasecmp, strcmp_buffer1, strcmp_buffer2);
291 STRCMP_TEST_EXPECT_LOWER(test, strcasecmp, strcmp_buffer1, strcmp_buffer2);
294 STRCMP_TEST_EXPECT_GREATER(test, strcasecmp, strcmp_buffer1, strcmp_buffer2);
297 static void string_test_strncasecmp(struct kunit *test)
300 STRCMP_TEST_EXPECT_EQUAL(test, strncasecmp, "AbAcAbA", "Abacaba", strlen("Abacaba"));
302 STRCMP_TEST_EXPECT_EQUAL(test, strncasecmp, "AbaCaBa", "abaCaDa", 5);
303 STRCMP_TEST_EXPECT_LOWER(test, strncasecmp, "a", "B", 1);
304 STRCMP_TEST_EXPECT_GREATER(test, strncasecmp, "B", "a", 1);
306 STRCMP_TEST_EXPECT_EQUAL(test, strncasecmp, "Abacaba", "Not abacaba", 0);
309 static void string_test_strncasecmp_long_strings(struct kunit *test)
312 STRCMP_TEST_EXPECT_EQUAL(test, strncasecmp, strcmp_buffer1,
316 STRCMP_TEST_EXPECT_LOWER(test, strncasecmp, strcmp_buffer1,
320 STRCMP_TEST_EXPECT_GREATER(test, strncasecmp, strcmp_buffer1,
323 STRCMP_TEST_EXPECT_EQUAL(test, strncasecmp, strcmp_buffer1,
325 STRCMP_TEST_EXPECT_GREATER(test, strncasecmp, strcmp_buffer1,
330 * strscpy_check() - Run a specific test case.
331 * @test: KUnit test context pointer
344 static void strscpy_check(struct kunit *test, char *src, int count,
355 KUNIT_ASSERT_TRUE_MSG(test, src != NULL,
359 /* Future proofing test suite, validate args */
363 KUNIT_ASSERT_LE_MSG(test, count, max_count,
365 KUNIT_EXPECT_LE_MSG(test, expected, max_expected,
370 KUNIT_ASSERT_EQ(test, written, expected);
373 KUNIT_ASSERT_EQ_MSG(test, 0, strncmp(buf, src, count - 1),
375 KUNIT_ASSERT_EQ_MSG(test, buf[count - 1], '\0',
380 KUNIT_ASSERT_EQ_MSG(test, buf[i], src[i],
384 KUNIT_ASSERT_EQ_MSG(test, buf[count - 1], '\0',
389 KUNIT_ASSERT_EQ_MSG(test, buf[index], '\0',
396 KUNIT_ASSERT_EQ_MSG(test, buf[index], POISON,
401 static void string_test_strscpy(struct kunit *test)
410 * should not exceed 4. To test with longer strings increase
414 /* strscpy_check(test, src, count, expected, chars, terminator, pad) */
415 strscpy_check(test, "a", 0, -E2BIG, 0, 0, 0);
416 strscpy_check(test, "", 0, -E2BIG, 0, 0, 0);
418 strscpy_check(test, "a", 1, -E2BIG, 0, 1, 0);
419 strscpy_check(test, "", 1, 0, 0, 1, 0);
421 strscpy_check(test, "ab", 2, -E2BIG, 1, 1, 0);
422 strscpy_check(test, "a", 2, 1, 1, 1, 0);
423 strscpy_check(test, "", 2, 0, 0, 1, 1);
425 strscpy_check(test, "abc", 3, -E2BIG, 2, 1, 0);
426 strscpy_check(test, "ab", 3, 2, 2, 1, 0);
427 strscpy_check(test, "a", 3, 1, 1, 1, 1);
428 strscpy_check(test, "", 3, 0, 0, 1, 2);
430 strscpy_check(test, "abcd", 4, -E2BIG, 3, 1, 0);
431 strscpy_check(test, "abc", 4, 3, 3, 1, 0);
432 strscpy_check(test, "ab", 4, 2, 2, 1, 1);
433 strscpy_check(test, "a", 4, 1, 1, 1, 2);
434 strscpy_check(test, "", 4, 0, 0, 1, 3);
437 KUNIT_EXPECT_EQ(test, strscpy(dest, "", ARRAY_SIZE(dest)), 0);
438 KUNIT_EXPECT_EQ(test, strscpy(dest, "", 3), 0);
439 KUNIT_EXPECT_EQ(test, strscpy(dest, "", 1), 0);
440 KUNIT_EXPECT_EQ(test, strscpy(dest, "", 0), -E2BIG);
441 KUNIT_EXPECT_EQ(test, strscpy(dest, "Fixed", ARRAY_SIZE(dest)), 5);
442 KUNIT_EXPECT_EQ(test, strscpy(dest, "Fixed", 3), -E2BIG);
443 KUNIT_EXPECT_EQ(test, strscpy(dest, "Fixed", 1), -E2BIG);
444 KUNIT_EXPECT_EQ(test, strscpy(dest, "Fixed", 0), -E2BIG);
445 KUNIT_EXPECT_EQ(test, strscpy(dest, "This is too long", ARRAY_SIZE(dest)), -E2BIG);
450 static void string_test_strcat(struct kunit *test)
456 KUNIT_EXPECT_EQ(test, strlen(dest), 0);
458 KUNIT_EXPECT_TRUE(test, strcat(dest, "") == dest);
459 KUNIT_EXPECT_STREQ(test, dest, "");
461 KUNIT_EXPECT_TRUE(test, strcat(dest, "four\000123") == dest);
462 KUNIT_EXPECT_STREQ(test, dest, "four");
463 KUNIT_EXPECT_EQ(test, dest[5], '\0');
465 KUNIT_EXPECT_TRUE(test, strcat(dest, "AB") == dest);
466 KUNIT_EXPECT_STREQ(test, dest, "fourAB");
469 static void string_test_strncat(struct kunit *test)
475 KUNIT_EXPECT_EQ(test, strlen(dest), 0);
477 KUNIT_EXPECT_TRUE(test, strncat(dest, "", 0 + unconst) == dest);
478 KUNIT_EXPECT_STREQ(test, dest, "");
480 KUNIT_EXPECT_TRUE(test, strncat(dest, "", 1 + unconst) == dest);
481 KUNIT_EXPECT_STREQ(test, dest, "");
483 KUNIT_EXPECT_TRUE(test, strncat(dest, "asdf", 0 + unconst) == dest);
484 KUNIT_EXPECT_STREQ(test, dest, "");
487 KUNIT_EXPECT_TRUE(test, strncat(dest, "four\000123", 8 + unconst) == dest);
488 KUNIT_EXPECT_STREQ(test, dest, "four");
489 KUNIT_EXPECT_EQ(test, dest[5], '\0');
490 KUNIT_EXPECT_EQ(test, dest[6], '\0');
492 KUNIT_EXPECT_TRUE(test, strncat(dest, "ABCD", 2 + unconst) == dest);
493 KUNIT_EXPECT_STREQ(test, dest, "fourAB");
496 static void string_test_strlcat(struct kunit *test)
502 KUNIT_EXPECT_EQ(test, strlen(dest), 0);
504 KUNIT_EXPECT_EQ(test, strlcat(dest, "", len), 0);
505 KUNIT_EXPECT_STREQ(test, dest, "");
507 KUNIT_EXPECT_EQ(test, strlcat(dest, "four", 1 + unconst), 4);
508 KUNIT_EXPECT_STREQ(test, dest, "");
511 KUNIT_EXPECT_EQ(test, strlcat(dest, "four", len), 4);
512 KUNIT_EXPECT_STREQ(test, dest, "four");
514 KUNIT_EXPECT_EQ(test, strlcat(dest, "AB", len), 6);
515 KUNIT_EXPECT_STREQ(test, dest, "fourAB");
517 KUNIT_EXPECT_EQ(test, strlcat(dest, "CD", 7 + unconst), 8);
518 KUNIT_EXPECT_STREQ(test, dest, "fourAB");
520 KUNIT_EXPECT_EQ(test, strlcat(dest, "EFG", len), 9);
521 KUNIT_EXPECT_STREQ(test, dest, "fourABE");
523 KUNIT_EXPECT_EQ(test, strlcat(dest, "1234", len), 11);
524 KUNIT_EXPECT_STREQ(test, dest, "fourABE");
527 static void string_test_strtomem(struct kunit *test)
538 KUNIT_EXPECT_EQ_MSG(test, wrap.canary1, ULONG_MAX,
540 KUNIT_EXPECT_EQ_MSG(test, wrap.canary2, ULONG_MAX,
545 KUNIT_EXPECT_EQ(test, wrap.canary1, ULONG_MAX);
546 KUNIT_EXPECT_EQ(test, wrap.output[0], input[0]);
547 KUNIT_EXPECT_EQ(test, wrap.output[1], input[1]);
549 KUNIT_EXPECT_EQ(test, wrap.output[i], 0xFF);
550 KUNIT_EXPECT_EQ(test, wrap.canary2, ULONG_MAX);
555 KUNIT_EXPECT_EQ(test, wrap.canary1, ULONG_MAX);
557 KUNIT_EXPECT_EQ(test, wrap.output[i], truncate[i]);
558 KUNIT_EXPECT_EQ(test, wrap.canary2, ULONG_MAX);
563 KUNIT_EXPECT_EQ(test, wrap.canary1, ULONG_MAX);
564 KUNIT_EXPECT_EQ(test, wrap.output[0], input[0]);
565 KUNIT_EXPECT_EQ(test, wrap.output[1], input[1]);
567 KUNIT_EXPECT_EQ(test, wrap.output[i], 0xAA);
568 KUNIT_EXPECT_EQ(test, wrap.canary2, ULONG_MAX);
573 KUNIT_EXPECT_EQ(test, wrap.canary1, ULONG_MAX);
575 KUNIT_EXPECT_EQ(test, wrap.output[i], truncate[i]);
576 KUNIT_EXPECT_EQ(test, wrap.canary2, ULONG_MAX);
580 static void string_test_memtostr(struct kunit *test)
587 KUNIT_EXPECT_EQ(test, sizeof(dest), sizeof(nonstring) + 1);
590 KUNIT_EXPECT_STREQ(test, dest, "abcdefg");
593 KUNIT_EXPECT_STREQ(test, dest, "abc");
594 KUNIT_EXPECT_EQ(test, dest[7], 'X');
598 KUNIT_EXPECT_STREQ(test, dest, "abcdefg");
601 KUNIT_EXPECT_STREQ(test, dest, "abc");
602 KUNIT_EXPECT_EQ(test, dest[7], '\0');