Merge branch 'osx_fix' of https://github.com/sitsofe/fio
[fio.git] / unittests / oslib / strcasestr.c
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 }