Commit | Line | Data |
---|---|---|
d2292c7d TK |
1 | /* |
2 | * Copyright (C) 2019 Tomohiro Kusumi <tkusumi@netbsd.org> | |
3 | */ | |
4 | #include "../unittest.h" | |
5 | ||
6 | #ifndef CONFIG_STRCASESTR | |
7 | #include "../../oslib/strcasestr.h" | |
8 | #else | |
9 | #include <string.h> | |
10 | #endif | |
11 | ||
12 | static void test_strcasestr_1(void) | |
13 | { | |
14 | const char *haystack = "0123456789"; | |
15 | const char *p; | |
16 | ||
17 | p = strcasestr(haystack, "012"); | |
18 | CU_ASSERT_EQUAL(p, haystack); | |
19 | ||
20 | p = strcasestr(haystack, "12345"); | |
21 | CU_ASSERT_EQUAL(p, haystack + 1); | |
22 | ||
23 | p = strcasestr(haystack, "1234567890"); | |
24 | CU_ASSERT_EQUAL(p, NULL); | |
25 | ||
26 | p = strcasestr(haystack, ""); | |
27 | CU_ASSERT_EQUAL(p, haystack); /* is this expected ? */ | |
28 | } | |
29 | ||
30 | static void test_strcasestr_2(void) | |
31 | { | |
32 | const char *haystack = "ABCDEFG"; | |
33 | const char *p; | |
34 | ||
35 | p = strcasestr(haystack, "ABC"); | |
36 | CU_ASSERT_EQUAL(p, haystack); | |
37 | ||
38 | p = strcasestr(haystack, "BCD"); | |
39 | CU_ASSERT_EQUAL(p, haystack + 1); | |
40 | ||
41 | p = strcasestr(haystack, "ABCDEFGH"); | |
42 | CU_ASSERT_EQUAL(p, NULL); | |
43 | ||
44 | p = strcasestr(haystack, ""); | |
45 | CU_ASSERT_EQUAL(p, haystack); /* is this expected ? */ | |
46 | } | |
47 | ||
48 | static void test_strcasestr_3(void) | |
49 | { | |
50 | const char *haystack = "ABCDEFG"; | |
51 | const char *p; | |
52 | ||
53 | p = strcasestr(haystack, "AbC"); | |
54 | CU_ASSERT_EQUAL(p, haystack); | |
55 | ||
56 | p = strcasestr(haystack, "bCd"); | |
57 | CU_ASSERT_EQUAL(p, haystack + 1); | |
58 | ||
59 | p = strcasestr(haystack, "AbcdEFGH"); | |
60 | CU_ASSERT_EQUAL(p, NULL); | |
61 | ||
62 | p = strcasestr(haystack, ""); | |
63 | CU_ASSERT_EQUAL(p, haystack); /* is this expected ? */ | |
64 | } | |
65 | ||
66 | static struct fio_unittest_entry tests[] = { | |
67 | { | |
68 | .name = "strcasestr/1", | |
69 | .fn = test_strcasestr_1, | |
70 | }, | |
71 | { | |
72 | .name = "strcasestr/2", | |
73 | .fn = test_strcasestr_2, | |
74 | }, | |
75 | { | |
76 | .name = "strcasestr/3", | |
77 | .fn = test_strcasestr_3, | |
78 | }, | |
79 | { | |
80 | .name = NULL, | |
81 | }, | |
82 | }; | |
83 | ||
84 | CU_ErrorCode fio_unittest_oslib_strcasestr(void) | |
85 | { | |
86 | return fio_unittest_add_suite("oslib/strcasestr.c", NULL, NULL, tests); | |
87 | } |