tests/test_string.c

Sun, 22 Dec 2024 22:10:04 +0100

author
Mike Becker <universe@uap-core.de>
date
Sun, 22 Dec 2024 22:10:04 +0100
changeset 1047
40aad3f0bc9e
parent 1003
455afb252878
child 1052
e997862a57d8
permissions
-rw-r--r--

don't trust that size_t always has word width

it should be the case on all platforms supported by UCX, but it's not strictly defined in POSIX that it must be the case

777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2023 Mike Becker, Olaf Wintermann All rights reserved.
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 */
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 #include "cx/test.h"
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
30 #include "util_allocator.h"
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
32 #include "cx/string.h"
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
33
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
34 #define ASSERT_ZERO_TERMINATED(str) CX_TEST_ASSERTM((str).ptr[(str).length] == '\0', \
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
35 #str " is not zero terminated")
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37 CX_TEST(test_string_construct) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38 cxstring s1 = CX_STR("1234");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39 cxstring s2 = cx_strn("abcd", 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
40 cxmutstr s3 = cx_mutstr((char *) "1234");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
41 cxmutstr s4 = cx_mutstrn((char *) "abcd", 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
42 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
43 CX_TEST_ASSERT(s1.length == 4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
44 CX_TEST_ASSERT(strncmp(s1.ptr, "1234", 4) == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
45 CX_TEST_ASSERT(s2.length == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
46 CX_TEST_ASSERT(strncmp(s2.ptr, "ab", 2) == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
47 CX_TEST_ASSERT(s3.length == 4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
48 CX_TEST_ASSERT(strncmp(s3.ptr, "1234", 4) == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
49 CX_TEST_ASSERT(s4.length == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
50 CX_TEST_ASSERT(strncmp(s4.ptr, "ab", 2) == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
51 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
52 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
53
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
54 CX_TEST(test_strfree) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
55 CxTestingAllocator talloc;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
56 cx_testing_allocator_init(&talloc);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
57 CxAllocator *alloc = &talloc.base;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
58 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
59 char *test = cxMalloc(alloc, 16);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
60 cxmutstr str = cx_mutstrn(test, 16);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
61 CX_TEST_ASSERT(str.ptr == test);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
62 CX_TEST_ASSERT(str.length == 16);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
63 cx_strfree_a(alloc, &str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
64 CX_TEST_ASSERT(str.ptr == NULL);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
65 CX_TEST_ASSERT(str.length == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
66 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
67 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
68 cx_testing_allocator_destroy(&talloc);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
69 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
70
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
71 CX_TEST(test_strdup) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
72 cxstring str = CX_STR("test");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
73 cxmutstr dup = cx_strdup(str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
74 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
75 CX_TEST_ASSERT(dup.length == str.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
76 CX_TEST_ASSERT(0 == strcmp(dup.ptr, str.ptr));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
77 ASSERT_ZERO_TERMINATED(dup);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
78 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
79 cx_strfree(&dup);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
80 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
81
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
82 CX_TEST(test_strdup_shortened) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
83 cxstring str = CX_STR("test");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
84 str.length = 2;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
85 cxmutstr dup = cx_strdup(str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
86 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
87 CX_TEST_ASSERT(dup.length == str.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
88 CX_TEST_ASSERT(0 == strcmp(dup.ptr, "te"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
89 ASSERT_ZERO_TERMINATED(dup);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
90 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
91 cx_strfree(&dup);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
92 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
93
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
94 CX_TEST(test_strlen) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
95 cxstring s1 = CX_STR("1234");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
96 cxstring s2 = CX_STR(".:.:.");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
97 cxstring s3 = CX_STR("X");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
98 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
99 size_t len0 = cx_strlen(0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
100 size_t len1 = cx_strlen(1, s1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
101 size_t len2 = cx_strlen(2, s1, s2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
102 size_t len3 = cx_strlen(3, s1, s2, s3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
103
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
104 CX_TEST_ASSERT(len0 == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
105 CX_TEST_ASSERT(len1 == 4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
106 CX_TEST_ASSERT(len2 == 9);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
107 CX_TEST_ASSERT(len3 == 10);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
108 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
109 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
110
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
111 CX_TEST(test_strsubs) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
112 cxstring str = CX_STR("A test string");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
113
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
114 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
115 cxstring sub = cx_strsubs(str, 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
116 CX_TEST_ASSERT(0 == cx_strcmp(sub, str));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
117
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
118 sub = cx_strsubs(str, 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
119 CX_TEST_ASSERT(0 == cx_strcmp(sub, CX_STR("test string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
120
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
121 sub = cx_strsubs(str, 7);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
122 CX_TEST_ASSERT(0 == cx_strcmp(sub, CX_STR("string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
123
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
124 sub = cx_strsubs(str, 15);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
125 CX_TEST_ASSERT(0 == cx_strcmp(sub, CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
126
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
127 sub = cx_strsubsl(str, 2, 4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
128 CX_TEST_ASSERT(0 == cx_strcmp(sub, CX_STR("test")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
129
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
130 sub = cx_strsubsl(str, 7, 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
131 CX_TEST_ASSERT(0 == cx_strcmp(sub, CX_STR("str")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
132
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
133 sub = cx_strsubsl(str, 7, 20);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
134 CX_TEST_ASSERT(0 == cx_strcmp(sub, CX_STR("string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
135
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
136 // just for coverage, call the _m variant
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
137 cxmutstr m = cx_strsubs_m(cx_mutstrn(NULL, 0), 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
138 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(m), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
139 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
140 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
141
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
142 CX_TEST(test_strchr) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
143 cxstring str = CX_STR("I will find you - and I will kill you");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
144
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
145 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
146 cxstring notfound = cx_strchr(str, 'x');
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
147 CX_TEST_ASSERT(notfound.length == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
148
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
149 cxstring result = cx_strchr(str, 'w');
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
150 CX_TEST_ASSERT(result.length == 35);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
151 CX_TEST_ASSERT(0 == strcmp(result.ptr, "will find you - and I will kill you"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
152
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
153 // just for coverage, call the _m variant
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
154 cxmutstr m = cx_strchr_m(cx_mutstrn(NULL, 0), 'a');
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
155 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(m), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
156 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
157 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
158
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
159 CX_TEST(test_strrchr) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
160 cxstring str = CX_STR("I will find you - and I will kill you");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
161
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
162 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
163 cxstring notfound = cx_strrchr(str, 'x');
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
164 CX_TEST_ASSERT(notfound.length == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
165
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
166 cxstring result = cx_strrchr(str, 'w');
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
167 CX_TEST_ASSERT(result.length == 13);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
168 CX_TEST_ASSERT(0 == strcmp(result.ptr, "will kill you"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
169
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
170 // just for coverage, call the _m variant
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
171 cxmutstr m = cx_strrchr_m(cx_mutstrn(NULL, 0), 'a');
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
172 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(m), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
173 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
174 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
175
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
176 CX_TEST(test_strstr) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
177 cxstring str = CX_STR("find the match in this string");
806
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
178
926
8fdd8d78c14b fix several survivors of east-const and some missing consts
Mike Becker <universe@uap-core.de>
parents: 890
diff changeset
179 const size_t longstrpatternlen = 64 + cx_strstr_sbo_size;
8fdd8d78c14b fix several survivors of east-const and some missing consts
Mike Becker <universe@uap-core.de>
parents: 890
diff changeset
180 const size_t longstrlen = 320 + longstrpatternlen + 14;
806
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
181
809
b7e2e1d7ed22 fix assertion failure depending on possibly uninitialized memory
Mike Becker <universe@uap-core.de>
parents: 806
diff changeset
182 // it is more expensive to use calloc here, because we will overwrite
b7e2e1d7ed22 fix assertion failure depending on possibly uninitialized memory
Mike Becker <universe@uap-core.de>
parents: 806
diff changeset
183 // the memory anyway in the test preparation - but it is more reliable
b7e2e1d7ed22 fix assertion failure depending on possibly uninitialized memory
Mike Becker <universe@uap-core.de>
parents: 806
diff changeset
184 // in case we are doing something horribly wrong
b7e2e1d7ed22 fix assertion failure depending on possibly uninitialized memory
Mike Becker <universe@uap-core.de>
parents: 806
diff changeset
185 char *longstrc = calloc(longstrlen+1, 1);
b7e2e1d7ed22 fix assertion failure depending on possibly uninitialized memory
Mike Becker <universe@uap-core.de>
parents: 806
diff changeset
186 char *longstrpatternc = calloc(longstrpatternlen+1, 1);
806
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
187
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
188 memcpy(longstrc,
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
189 "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl"
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
190 "mnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
191 "yzabcdeababababnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghij"
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
192 "klmnopqrstuvwxyzaababababababababrstuvwxyzabcdefghijklmnopqrstuv"
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
193 "abababababababababababababababababababababababababababababababab",
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
194 320
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
195 );
806
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
196 memcpy(longstrpatternc,
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
197 "abababababababababababababababababababababababababababababababab",
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
198 64
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
199 );
806
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
200 char x = 'a', y='b', z;
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
201 for (size_t i = 0; i < cx_strstr_sbo_size ; i++) {
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
202 longstrpatternc[64+i] = x;
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
203 longstrc[320+i] = x;
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
204 z=x; x=y; y=z;
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
205 }
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
206 longstrpatternc[longstrpatternlen] = '\0';
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
207 memcpy(longstrc+longstrlen-14, "wxyz1234567890", 15);
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
208
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
209 cxmutstr longstr = cx_mutstrn(longstrc, longstrlen);
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
210 cxstring longstrpattern = cx_strn(longstrpatternc, longstrpatternlen);
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
211 cxmutstr longstrresult = cx_mutstrn(longstrc+256, longstrlen-256);
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
212
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
213 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
214 cxstring notfound = cx_strstr(str, CX_STR("no match"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
215 CX_TEST_ASSERT(notfound.length == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
216
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
217 cxstring result = cx_strstr(str, CX_STR("match"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
218 CX_TEST_ASSERT(result.length == 20);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
219 CX_TEST_ASSERT(0 == strcmp(result.ptr, "match in this string"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
220
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
221 result = cx_strstr(str, CX_STR(""));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
222 CX_TEST_ASSERT(result.length == str.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
223 CX_TEST_ASSERT(0 == strcmp(result.ptr, str.ptr));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
224
806
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
225 cxmutstr resultm = cx_strstr_m(longstr, longstrpattern);
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
226 CX_TEST_ASSERT(resultm.length == longstrresult.length);
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
227 CX_TEST_ASSERT(0 == strcmp(resultm.ptr, longstrresult.ptr));
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
228 }
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
229
806
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
230 free(longstrc);
e06249e09f99 add constant for reading out strstr sbo size - relates to #343
Mike Becker <universe@uap-core.de>
parents: 777
diff changeset
231 free(longstrpatternc);
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
232 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
233
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
234 CX_TEST(test_strcmp) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
235 cxstring str = CX_STR("compare this");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
236 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
237 CX_TEST_ASSERT(0 == cx_strcmp(CX_STR(""), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
238 CX_TEST_ASSERT(0 < cx_strcmp(str, CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
239 CX_TEST_ASSERT(0 == cx_strcmp(str, CX_STR("compare this")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
240 CX_TEST_ASSERT(0 != cx_strcmp(str, CX_STR("Compare This")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
241 CX_TEST_ASSERT(0 > cx_strcmp(str, CX_STR("compare tool")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
242 CX_TEST_ASSERT(0 < cx_strcmp(str, CX_STR("compare shit")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
243 CX_TEST_ASSERT(0 > cx_strcmp(str, CX_STR("compare this not")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
244 CX_TEST_ASSERT(0 < cx_strcmp(str, CX_STR("compare")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
245
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
246 cxstring str2 = CX_STR("Compare This");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
247 CX_TEST_ASSERT(0 != cx_strcmp_p(&str, &str2));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
248 str2 = CX_STR("compare this");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
249 CX_TEST_ASSERT(0 == cx_strcmp_p(&str, &str2));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
250 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
251 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
252
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
253 CX_TEST(test_strcasecmp) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
254 cxstring str = CX_STR("compare this");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
255 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
256 CX_TEST_ASSERT(0 == cx_strcasecmp(CX_STR(""), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
257 CX_TEST_ASSERT(0 < cx_strcasecmp(str, CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
258 CX_TEST_ASSERT(0 == cx_strcasecmp(str, CX_STR("compare this")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
259 CX_TEST_ASSERT(0 == cx_strcasecmp(str, CX_STR("Compare This")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
260 CX_TEST_ASSERT(0 > cx_strcasecmp(str, CX_STR("compare tool")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
261 CX_TEST_ASSERT(0 < cx_strcasecmp(str, CX_STR("compare shit")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
262 CX_TEST_ASSERT(0 > cx_strcasecmp(str, CX_STR("compare this not")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
263 CX_TEST_ASSERT(0 < cx_strcasecmp(str, CX_STR("compare")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
264
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
265 cxstring str2 = CX_STR("Compare This");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
266 CX_TEST_ASSERT(0 == cx_strcasecmp_p(&str, &str2));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
267 str2 = CX_STR("Compare Tool");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
268 CX_TEST_ASSERT(0 > cx_strcasecmp_p(&str, &str2));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
269 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
270 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
271
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
272 CX_TEST(test_strcat) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
273 cxstring s1 = CX_STR("12");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
274 cxstring s2 = CX_STR("34");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
275 cxstring s3 = CX_STR("56");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
276 cxstring sn = {NULL, 0};
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
277
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
278 CxTestingAllocator talloc;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
279 cx_testing_allocator_init(&talloc);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
280 CxAllocator *alloc = &talloc.base;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
281
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
282 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
283 cxmutstr t1 = cx_strcat_a(alloc, 2, s1, s2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
284 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(t1), CX_STR("1234")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
285 ASSERT_ZERO_TERMINATED(t1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
286 cx_strfree_a(alloc, &t1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
287
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
288 cxmutstr t2 = cx_strcat_a(alloc, 3, s1, s2, s3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
289 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(t2), CX_STR("123456")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
290 ASSERT_ZERO_TERMINATED(t2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
291 cx_strfree_a(alloc, &t2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
292
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
293 cxmutstr t3 = cx_strcat_a(alloc, 6, s1, sn, s2, sn, s3, sn);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
294 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(t3), CX_STR("123456")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
295 ASSERT_ZERO_TERMINATED(t3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
296 cx_strfree_a(alloc, &t3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
297
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
298 cxmutstr t4 = cx_strcat_a(alloc, 2, sn, sn);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
299 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(t4), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
300 ASSERT_ZERO_TERMINATED(t4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
301 cx_strfree_a(alloc, &t4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
302
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
303 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
304
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
305 // use the macro
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
306 cxmutstr t5 = cx_strcat(3, s3, s1, s2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
307 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(t5), CX_STR("561234")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
308 ASSERT_ZERO_TERMINATED(t5);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
309 cx_strfree(&t5);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
310
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
311 // use an initial string
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
312 cxmutstr t6 = cx_strdup(CX_STR("Hello"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
313 t6 = cx_strcat_m(t6, 2, CX_STR(", "), CX_STR("World!"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
314 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(t6), CX_STR("Hello, World!")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
315 ASSERT_ZERO_TERMINATED(t6);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
316 cx_strfree(&t6);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
317 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
318 cx_testing_allocator_destroy(&talloc);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
319 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
320
1003
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
321 CX_TEST(test_strcat_more_than_eight) {
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
322 cxstring s1 = CX_STR("12");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
323 cxstring s2 = CX_STR("34");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
324 cxstring s3 = CX_STR("56");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
325 cxstring s4 = CX_STR("78");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
326 cxstring s5 = CX_STR("9a");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
327 cxstring s6 = CX_STR("bc");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
328 cxstring s7 = CX_STR("de");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
329 cxstring s8 = CX_STR("f0");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
330 cxstring s9 = CX_STR("xy");
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
331
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
332 CX_TEST_DO {
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
333 cxmutstr r = cx_strcat(9, s1, s2, s3, s4, s5, s6, s7, s8, s9);
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
334 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(r), CX_STR("123456789abcdef0xy")));
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
335 ASSERT_ZERO_TERMINATED(r);
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
336 cx_strfree(&r);
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
337 }
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
338 }
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
339
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
340 CX_TEST(test_strsplit) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
341 cxstring test = CX_STR("this,is,a,csv,string");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
342 size_t capa = 8;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
343 cxstring list[8];
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
344 size_t n;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
345 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
346 // special case: empty string
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
347 n = cx_strsplit(test, CX_STR(""), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
348 CX_TEST_ASSERT(n == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
349 CX_TEST_ASSERT(0 == cx_strcmp(list[0], test));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
350
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
351 // no delimiter occurrence
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
352 n = cx_strsplit(test, CX_STR("z"), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
353 CX_TEST_ASSERT(n == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
354 CX_TEST_ASSERT(0 == cx_strcmp(list[0], test));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
355
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
356 // partially matching delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
357 n = cx_strsplit(test, CX_STR("is,not"), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
358 CX_TEST_ASSERT(n == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
359 CX_TEST_ASSERT(0 == cx_strcmp(list[0], test));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
360
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
361 // matching single-char delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
362 n = cx_strsplit(test, CX_STR(","), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
363 CX_TEST_ASSERT(n == 5);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
364 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("this")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
365 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("is")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
366 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR("a")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
367 CX_TEST_ASSERT(0 == cx_strcmp(list[3], CX_STR("csv")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
368 CX_TEST_ASSERT(0 == cx_strcmp(list[4], CX_STR("string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
369
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
370 // matching multi-char delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
371 n = cx_strsplit(test, CX_STR("is"), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
372 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
373 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("th")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
374 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR(",")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
375 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR(",a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
376
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
377 // bounded list using single-char delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
378 n = cx_strsplit(test, CX_STR(","), 3, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
379 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
380 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("this")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
381 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("is")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
382 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR("a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
383
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
384 // bounded list using multi-char delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
385 n = cx_strsplit(test, CX_STR("is"), 2, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
386 CX_TEST_ASSERT(n == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
387 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("th")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
388 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR(",is,a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
389
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
390 // start with delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
391 n = cx_strsplit(test, CX_STR("this"), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
392 CX_TEST_ASSERT(n == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
393 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
394 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR(",is,a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
395
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
396 // end with delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
397 n = cx_strsplit(test, CX_STR("string"), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
398 CX_TEST_ASSERT(n == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
399 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("this,is,a,csv,")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
400 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
401
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
402
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
403 // end with delimiter exceed bound
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
404 n = cx_strsplit(CX_STR("a,b,c,"), CX_STR(","), 3, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
405 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
406 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("a")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
407 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("b")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
408 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR("c,")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
409
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
410 // exact match
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
411 n = cx_strsplit(test, CX_STR("this,is,a,csv,string"), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
412 CX_TEST_ASSERT(n == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
413 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
414 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
415
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
416 // string to be split is only substring
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
417 n = cx_strsplit(test, CX_STR("this,is,a,csv,string,with,extension"), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
418 CX_TEST_ASSERT(n == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
419 CX_TEST_ASSERT(0 == cx_strcmp(list[0], test));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
420
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
421 // subsequent encounter of delimiter (the string between is empty)
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
422 n = cx_strsplit(test, CX_STR("is,"), capa, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
423 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
424 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("th")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
425 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
426 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR("a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
427
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
428 // call the _m variant just for coverage
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
429 cxmutstr mtest = cx_strdup(test);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
430 cxmutstr mlist[4];
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
431 n = cx_strsplit_m(mtest, CX_STR("is,"), 4, mlist);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
432 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
433 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(mlist[0]), CX_STR("th")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
434 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(mlist[1]), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
435 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(mlist[2]), CX_STR("a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
436 cx_strfree(&mtest);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
437 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
438 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
439
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
440 CX_TEST(test_strsplit_a) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
441 CxTestingAllocator talloc;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
442 cx_testing_allocator_init(&talloc);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
443 CxAllocator *alloc = &talloc.base;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
444
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
445 cxstring test = CX_STR("this,is,a,csv,string");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
446 size_t capa = 8;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
447 cxstring *list;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
448 size_t n;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
449 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
450 // special case: empty string
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
451 n = cx_strsplit_a(alloc, test, CX_STR(""), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
452 CX_TEST_ASSERT(n == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
453 CX_TEST_ASSERT(0 == cx_strcmp(list[0], test));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
454 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
455
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
456 // no delimiter occurrence
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
457 n = cx_strsplit_a(alloc, test, CX_STR("z"), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
458 CX_TEST_ASSERT(n == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
459 CX_TEST_ASSERT(0 == cx_strcmp(list[0], test));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
460 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
461
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
462 // partially matching delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
463 n = cx_strsplit_a(alloc, test, CX_STR("is,not"), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
464 CX_TEST_ASSERT(n == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
465 CX_TEST_ASSERT(0 == cx_strcmp(list[0], test));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
466 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
467
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
468 // matching single-char delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
469 n = cx_strsplit_a(alloc, test, CX_STR(","), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
470 CX_TEST_ASSERT(n == 5);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
471 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("this")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
472 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("is")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
473 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR("a")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
474 CX_TEST_ASSERT(0 == cx_strcmp(list[3], CX_STR("csv")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
475 CX_TEST_ASSERT(0 == cx_strcmp(list[4], CX_STR("string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
476 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
477
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
478 // matching multi-char delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
479 n = cx_strsplit_a(alloc, test, CX_STR("is"), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
480 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
481 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("th")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
482 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR(",")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
483 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR(",a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
484 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
485
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
486 // bounded list using single-char delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
487 n = cx_strsplit_a(alloc, test, CX_STR(","), 3, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
488 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
489 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("this")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
490 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("is")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
491 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR("a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
492 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
493
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
494 // bounded list using multi-char delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
495 n = cx_strsplit_a(alloc, test, CX_STR("is"), 2, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
496 CX_TEST_ASSERT(n == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
497 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("th")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
498 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR(",is,a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
499 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
500
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
501 // start with delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
502 n = cx_strsplit_a(alloc, test, CX_STR("this"), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
503 CX_TEST_ASSERT(n == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
504 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
505 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR(",is,a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
506 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
507
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
508 // end with delimiter
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
509 n = cx_strsplit_a(alloc, test, CX_STR("string"), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
510 CX_TEST_ASSERT(n == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
511 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("this,is,a,csv,")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
512 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
513 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
514
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
515 // end with delimiter exceed bound
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
516 n = cx_strsplit_a(alloc, CX_STR("a,b,c,"), CX_STR(","), 3, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
517 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
518 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("a")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
519 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("b")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
520 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR("c,")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
521 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
522
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
523 // exact match
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
524 n = cx_strsplit_a(alloc, test, CX_STR("this,is,a,csv,string"), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
525 CX_TEST_ASSERT(n == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
526 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
527 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
528 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
529
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
530 // string to be split is only substring
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
531 n = cx_strsplit_a(alloc, test, CX_STR("this,is,a,csv,string,with,extension"), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
532 CX_TEST_ASSERT(n == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
533 CX_TEST_ASSERT(0 == cx_strcmp(list[0], test));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
534 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
535
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
536 // subsequent encounter of delimiter (the string between is empty)
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
537 n = cx_strsplit_a(alloc, test, CX_STR("is,"), capa, &list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
538 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
539 CX_TEST_ASSERT(0 == cx_strcmp(list[0], CX_STR("th")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
540 CX_TEST_ASSERT(0 == cx_strcmp(list[1], CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
541 CX_TEST_ASSERT(0 == cx_strcmp(list[2], CX_STR("a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
542 cxFree(alloc, list);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
543
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
544 // call the _m variant just for coverage
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
545 cxmutstr mtest = cx_strdup(test);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
546 cxmutstr *mlist;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
547 n = cx_strsplit_ma(alloc, mtest, CX_STR("is,"), 4, &mlist);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
548 CX_TEST_ASSERT(n == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
549 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(mlist[0]), CX_STR("th")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
550 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(mlist[1]), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
551 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(mlist[2]), CX_STR("a,csv,string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
552 cxFree(alloc, mlist);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
553 cx_strfree(&mtest);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
554
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
555 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
556 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
557 cx_testing_allocator_destroy(&talloc);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
558 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
559
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
560 CX_TEST(test_strtrim) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
561 cxstring t1 = cx_strtrim(CX_STR(" ein test \t "));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
562 cxstring t2 = cx_strtrim(CX_STR("abc"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
563 cxstring t3 = cx_strtrim(CX_STR(" 123"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
564 cxstring t4 = cx_strtrim(CX_STR("xyz "));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
565 cxstring t5 = cx_strtrim(CX_STR(" "));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
566 cxstring empty = cx_strtrim(CX_STR(""));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
567
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
568 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
569 CX_TEST_ASSERT(0 == cx_strcmp(t1, CX_STR("ein test")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
570 CX_TEST_ASSERT(0 == cx_strcmp(t2, CX_STR("abc")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
571 CX_TEST_ASSERT(0 == cx_strcmp(t3, CX_STR("123")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
572 CX_TEST_ASSERT(0 == cx_strcmp(t4, CX_STR("xyz")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
573 CX_TEST_ASSERT(0 == cx_strcmp(t5, CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
574 CX_TEST_ASSERT(0 == cx_strcmp(empty, CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
575
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
576 // call the _m variant just for coverage
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
577 cxmutstr m1 = cx_strtrim_m(cx_mutstr((char *) " ein test \t "));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
578 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(m1), CX_STR("ein test")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
579 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
580 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
581
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
582 CX_TEST(test_strprefix) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
583 cxstring str = CX_STR("test my prefix and my suffix");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
584 cxstring empty = CX_STR("");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
585 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
586 CX_TEST_ASSERT(!cx_strprefix(empty, CX_STR("pref")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
587 CX_TEST_ASSERT(cx_strprefix(str, empty));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
588 CX_TEST_ASSERT(cx_strprefix(empty, empty));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
589 CX_TEST_ASSERT(cx_strprefix(str, CX_STR("test ")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
590 CX_TEST_ASSERT(!cx_strprefix(str, CX_STR("8-) fsck ")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
591 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
592 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
593
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
594 CX_TEST(test_strsuffix) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
595 cxstring str = CX_STR("test my prefix and my suffix");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
596 cxstring empty = CX_STR("");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
597 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
598 CX_TEST_ASSERT(!cx_strsuffix(empty, CX_STR("suf")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
599 CX_TEST_ASSERT(cx_strsuffix(str, empty));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
600 CX_TEST_ASSERT(cx_strsuffix(empty, empty));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
601 CX_TEST_ASSERT(cx_strsuffix(str, CX_STR("fix")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
602 CX_TEST_ASSERT(!cx_strsuffix(str, CX_STR("fox")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
603 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
604 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
605
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
606 CX_TEST(test_strcaseprefix) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
607 cxstring str = CX_STR("test my prefix and my suffix");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
608 cxstring empty = CX_STR("");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
609 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
610 CX_TEST_ASSERT(!cx_strcaseprefix(empty, CX_STR("pREf")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
611 CX_TEST_ASSERT(cx_strcaseprefix(str, empty));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
612 CX_TEST_ASSERT(cx_strcaseprefix(empty, empty));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
613 CX_TEST_ASSERT(cx_strcaseprefix(str, CX_STR("TEST ")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
614 CX_TEST_ASSERT(!cx_strcaseprefix(str, CX_STR("8-) fsck ")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
615 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
616 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
617
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
618 CX_TEST(test_strcasesuffix) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
619 cxstring str = CX_STR("test my prefix and my suffix");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
620 cxstring empty = CX_STR("");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
621 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
622 CX_TEST_ASSERT(!cx_strcasesuffix(empty, CX_STR("sUf")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
623 CX_TEST_ASSERT(cx_strcasesuffix(str, empty));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
624 CX_TEST_ASSERT(cx_strcasesuffix(empty, empty));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
625 CX_TEST_ASSERT(cx_strcasesuffix(str, CX_STR("FIX")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
626 CX_TEST_ASSERT(!cx_strcasesuffix(str, CX_STR("fox")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
627 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
628 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
629
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
630 CX_TEST(test_strreplace) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
631 CxTestingAllocator talloc;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
632 cx_testing_allocator_init(&talloc);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
633 CxAllocator *alloc = &talloc.base;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
634
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
635 cxstring str = CX_STR("test ababab string aba");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
636 cxstring longstr = CX_STR(
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
637 "xyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacd");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
638 cxstring notrail = CX_STR("test abab");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
639 cxstring empty = CX_STR("");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
640 cxstring astr = CX_STR("aaaaaaaaaa");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
641 cxstring csstr = CX_STR("test AB ab TEST xyz");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
642
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
643 cxmutstr repl = cx_strreplace(str, CX_STR("abab"), CX_STR("muchlonger"));
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
644 const char *expected = "test muchlongerab string aba";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
645
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
646 cxmutstr repln = cx_strreplacen(str, CX_STR("ab"), CX_STR("c"), 2);
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
647 const char *expectedn = "test ccab string aba";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
648
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
649 cxmutstr longrepl = cx_strreplace(longstr, CX_STR("a"), CX_STR("z"));
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
650 const char *longexpect = "xyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzcd";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
651
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
652 cxmutstr replnotrail = cx_strreplace(notrail, CX_STR("ab"), CX_STR("z"));
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
653 const char *notrailexpect = "test zz";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
654
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
655 cxmutstr repleq = cx_strreplace(str, str, CX_STR("hello"));
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
656 const char *eqexpect = "hello";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
657
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
658 cxmutstr replempty1 = cx_strreplace(empty, CX_STR("ab"), CX_STR("c")); // expect: empty
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
659 cxmutstr replempty2 = cx_strreplace(str, CX_STR("abab"), empty);
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
660 const char *emptyexpect2 = "test ab string aba";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
661
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
662 cxmutstr replpre = cx_strreplace(str, CX_STR("test "), CX_STR("TEST "));
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
663 const char *preexpected = "TEST ababab string aba";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
664
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
665 cxmutstr replan1 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 1);
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
666 const char *an1expected = "xaaaaaaaaa";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
667
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
668 cxmutstr replan4 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 4);
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
669 const char *an4expected = "xxxxaaaaaa";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
670
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
671 cxmutstr replan9 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 9);
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
672 const char *an9expected = "xxxxxxxxxa";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
673
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
674 cxmutstr replan10 = cx_strreplacen(astr, CX_STR("a"), CX_STR("x"), 10);
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
675 const char *an10expected = "xxxxxxxxxx";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
676
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
677 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
678 cxmutstr repl1_a = cx_strreplace_a(alloc, csstr, CX_STR("AB"), CX_STR("*"));
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
679 const char *expeced1_a = "test * ab TEST xyz";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
680
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
681 cxmutstr repl2_a = cx_strreplace_a(alloc, csstr, CX_STR("test"), CX_STR("TEST"));
890
54565fd74e74 move all const keywords to the west - fixes #426
Mike Becker <universe@uap-core.de>
parents: 809
diff changeset
682 const char *expected2_a = "TEST AB ab TEST xyz";
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
683
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
684 CX_TEST_ASSERT(repl.ptr != str.ptr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
685 ASSERT_ZERO_TERMINATED(repl);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
686 CX_TEST_ASSERT(0 == strcmp(repl.ptr, expected));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
687 ASSERT_ZERO_TERMINATED(repln);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
688 CX_TEST_ASSERT(0 == strcmp(repln.ptr, expectedn));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
689 ASSERT_ZERO_TERMINATED(longrepl);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
690 CX_TEST_ASSERT(0 == strcmp(longrepl.ptr, longexpect));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
691 ASSERT_ZERO_TERMINATED(replnotrail);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
692 CX_TEST_ASSERT(0 == strcmp(replnotrail.ptr, notrailexpect));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
693 ASSERT_ZERO_TERMINATED(repleq);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
694 CX_TEST_ASSERT(0 == strcmp(repleq.ptr, eqexpect));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
695 ASSERT_ZERO_TERMINATED(replempty1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
696 CX_TEST_ASSERT(0 == strcmp(replempty1.ptr, ""));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
697 ASSERT_ZERO_TERMINATED(replempty2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
698 CX_TEST_ASSERT(0 == strcmp(replempty2.ptr, emptyexpect2));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
699 ASSERT_ZERO_TERMINATED(replpre);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
700 CX_TEST_ASSERT(0 == strcmp(replpre.ptr, preexpected));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
701 ASSERT_ZERO_TERMINATED(replan1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
702 CX_TEST_ASSERT(0 == strcmp(replan1.ptr, an1expected));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
703 ASSERT_ZERO_TERMINATED(replan4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
704 CX_TEST_ASSERT(0 == strcmp(replan4.ptr, an4expected));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
705 ASSERT_ZERO_TERMINATED(replan9);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
706 CX_TEST_ASSERT(0 == strcmp(replan9.ptr, an9expected));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
707 ASSERT_ZERO_TERMINATED(replan10);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
708 CX_TEST_ASSERT(0 == strcmp(replan10.ptr, an10expected));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
709 ASSERT_ZERO_TERMINATED(repl1_a);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
710 CX_TEST_ASSERT(0 == strcmp(repl1_a.ptr, expeced1_a));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
711 ASSERT_ZERO_TERMINATED(repl2_a);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
712 CX_TEST_ASSERT(0 == strcmp(repl2_a.ptr, expected2_a));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
713
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
714 cx_strfree_a(alloc, &repl1_a);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
715 cx_strfree_a(alloc, &repl2_a);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
716 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
717 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
718
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
719 cx_strfree(&repl);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
720 cx_strfree(&repln);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
721 cx_strfree(&longrepl);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
722 cx_strfree(&replnotrail);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
723 cx_strfree(&repleq);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
724 cx_strfree(&replempty1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
725 cx_strfree(&replempty2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
726 cx_strfree(&replpre);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
727 cx_strfree(&replan1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
728 cx_strfree(&replan4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
729 cx_strfree(&replan9);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
730 cx_strfree(&replan10);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
731 cx_testing_allocator_destroy(&talloc);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
732 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
733
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
734 CX_TEST(test_strupper) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
735 cxmutstr str = cx_strdup(CX_STR("thIs 1s @ Te$t"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
736 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
737 cx_strupper(str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
738 CX_TEST_ASSERT(0 == strcmp(str.ptr, "THIS 1S @ TE$T"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
739 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
740 cx_strfree(&str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
741 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
742
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
743 CX_TEST(test_strlower) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
744 cxmutstr str = cx_strdup(CX_STR("thIs 1s @ Te$t"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
745 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
746 cx_strlower(str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
747 CX_TEST_ASSERT(0 == strcmp(str.ptr, "this 1s @ te$t"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
748 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
749 cx_strfree(&str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
750 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
751
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
752 CX_TEST(test_strtok) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
753 cxstring str = CX_STR("a,comma,separated,string");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
754 cxstring delim = CX_STR(",");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
755 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
756 CxStrtokCtx ctx = cx_strtok(str, delim, 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
757 CX_TEST_ASSERT(ctx.str.ptr == str.ptr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
758 CX_TEST_ASSERT(ctx.str.length == str.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
759 CX_TEST_ASSERT(ctx.delim.ptr == delim.ptr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
760 CX_TEST_ASSERT(ctx.delim.length == delim.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
761 CX_TEST_ASSERT(ctx.limit == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
762 CX_TEST_ASSERT(ctx.found == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
763 CX_TEST_ASSERT(ctx.pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
764 CX_TEST_ASSERT(ctx.next_pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
765 CX_TEST_ASSERT(ctx.delim_more == NULL);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
766 CX_TEST_ASSERT(ctx.delim_more_count == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
767 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
768 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
769
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
770 CX_TEST(test_strtok_m) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
771 cxmutstr str = cx_strdup(CX_STR("a,comma,separated,string"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
772 cxstring delim = CX_STR(",");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
773 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
774 CxStrtokCtx ctx = cx_strtok_m(str, delim, 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
775 CX_TEST_ASSERT(ctx.str.ptr == str.ptr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
776 CX_TEST_ASSERT(ctx.str.length == str.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
777 CX_TEST_ASSERT(ctx.delim.ptr == delim.ptr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
778 CX_TEST_ASSERT(ctx.delim.length == delim.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
779 CX_TEST_ASSERT(ctx.limit == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
780 CX_TEST_ASSERT(ctx.found == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
781 CX_TEST_ASSERT(ctx.pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
782 CX_TEST_ASSERT(ctx.next_pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
783 CX_TEST_ASSERT(ctx.delim_more == NULL);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
784 CX_TEST_ASSERT(ctx.delim_more_count == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
785 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
786 cx_strfree(&str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
787 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
788
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
789 CX_TEST(test_strtok_delim) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
790 cxstring str = CX_STR("an,arbitrarily|separated;string");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
791 cxstring delim = CX_STR(",");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
792 cxstring delim_more[2] = {CX_STR("|"), CX_STR(";")};
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
793 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
794 CxStrtokCtx ctx = cx_strtok(str, delim, 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
795 cx_strtok_delim(&ctx, delim_more, 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
796 CX_TEST_ASSERT(ctx.str.ptr == str.ptr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
797 CX_TEST_ASSERT(ctx.str.length == str.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
798 CX_TEST_ASSERT(ctx.delim.ptr == delim.ptr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
799 CX_TEST_ASSERT(ctx.delim.length == delim.length);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
800 CX_TEST_ASSERT(ctx.limit == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
801 CX_TEST_ASSERT(ctx.found == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
802 CX_TEST_ASSERT(ctx.pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
803 CX_TEST_ASSERT(ctx.next_pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
804 CX_TEST_ASSERT(ctx.delim_more == delim_more);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
805 CX_TEST_ASSERT(ctx.delim_more_count == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
806 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
807 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
808
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
809 CX_TEST(test_strtok_next_easy) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
810 cxstring str = CX_STR("a,comma,separated,string");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
811 cxstring delim = CX_STR(",");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
812 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
813 CxStrtokCtx ctx = cx_strtok(str, delim, 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
814 bool ret;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
815 cxstring tok;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
816
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
817 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
818 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
819 CX_TEST_ASSERT(0 == cx_strcmp(tok, CX_STR("a")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
820 CX_TEST_ASSERT(ctx.pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
821 CX_TEST_ASSERT(ctx.next_pos == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
822 CX_TEST_ASSERT(ctx.delim_pos == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
823 CX_TEST_ASSERT(ctx.found == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
824
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
825 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
826 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
827 CX_TEST_ASSERT(0 == cx_strcmp(tok, CX_STR("comma")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
828 CX_TEST_ASSERT(ctx.pos == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
829 CX_TEST_ASSERT(ctx.next_pos == 8);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
830 CX_TEST_ASSERT(ctx.delim_pos == 7);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
831 CX_TEST_ASSERT(ctx.found == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
832
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
833 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
834 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
835 CX_TEST_ASSERT(0 == cx_strcmp(tok, CX_STR("separated")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
836 CX_TEST_ASSERT(ctx.pos == 8);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
837 CX_TEST_ASSERT(ctx.next_pos == 18);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
838 CX_TEST_ASSERT(ctx.delim_pos == 17);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
839 CX_TEST_ASSERT(ctx.found == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
840
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
841 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
842 CX_TEST_ASSERT(!ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
843 CX_TEST_ASSERT(ctx.pos == 8);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
844 CX_TEST_ASSERT(ctx.next_pos == 18);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
845 CX_TEST_ASSERT(ctx.delim_pos == 17);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
846 CX_TEST_ASSERT(ctx.found == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
847 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
848 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
849
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
850 CX_TEST(test_strtok_next_unlimited) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
851 cxstring str = CX_STR("some;-;otherwise;-;separated;-;string;-;");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
852 cxstring delim = CX_STR(";-;");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
853 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
854 CxStrtokCtx ctx = cx_strtok(str, delim, SIZE_MAX);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
855 bool ret;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
856 cxstring tok;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
857
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
858 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
859 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
860 CX_TEST_ASSERT(0 == cx_strcmp(tok, CX_STR("some")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
861 CX_TEST_ASSERT(ctx.pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
862 CX_TEST_ASSERT(ctx.next_pos == 7);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
863 CX_TEST_ASSERT(ctx.delim_pos == 4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
864 CX_TEST_ASSERT(ctx.found == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
865
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
866 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
867 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
868 CX_TEST_ASSERT(0 == cx_strcmp(tok, CX_STR("otherwise")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
869 CX_TEST_ASSERT(ctx.pos == 7);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
870 CX_TEST_ASSERT(ctx.next_pos == 19);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
871 CX_TEST_ASSERT(ctx.delim_pos == 16);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
872 CX_TEST_ASSERT(ctx.found == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
873
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
874 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
875 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
876 CX_TEST_ASSERT(0 == cx_strcmp(tok, CX_STR("separated")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
877 CX_TEST_ASSERT(ctx.pos == 19);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
878 CX_TEST_ASSERT(ctx.next_pos == 31);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
879 CX_TEST_ASSERT(ctx.delim_pos == 28);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
880 CX_TEST_ASSERT(ctx.found == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
881
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
882 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
883 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
884 CX_TEST_ASSERT(0 == cx_strcmp(tok, CX_STR("string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
885 CX_TEST_ASSERT(ctx.pos == 31);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
886 CX_TEST_ASSERT(ctx.next_pos == 40);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
887 CX_TEST_ASSERT(ctx.delim_pos == 37);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
888 CX_TEST_ASSERT(ctx.found == 4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
889
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
890 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
891 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
892 CX_TEST_ASSERT(0 == cx_strcmp(tok, CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
893 CX_TEST_ASSERT(ctx.pos == 40);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
894 CX_TEST_ASSERT(ctx.next_pos == 40);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
895 CX_TEST_ASSERT(ctx.delim_pos == 40);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
896 CX_TEST_ASSERT(ctx.found == 5);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
897
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
898 ret = cx_strtok_next(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
899 CX_TEST_ASSERT(!ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
900 CX_TEST_ASSERT(ctx.pos == 40);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
901 CX_TEST_ASSERT(ctx.delim_pos == 40);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
902 CX_TEST_ASSERT(ctx.found == 5);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
903 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
904 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
905
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
906 CX_TEST(test_strtok_next_advanced) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
907 cxmutstr str = cx_strdup(CX_STR("an,arbitrarily;||separated;string"));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
908 cxstring delim = CX_STR(",");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
909 cxstring delim_more[2] = {CX_STR("||"), CX_STR(";")};
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
910 CX_TEST_DO {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
911 CxStrtokCtx ctx = cx_strtok_m(str, delim, 10);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
912 cx_strtok_delim(&ctx, delim_more, 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
913 bool ret;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
914 cxmutstr tok;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
915
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
916 ret = cx_strtok_next_m(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
917 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
918 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(tok), CX_STR("an")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
919 CX_TEST_ASSERT(ctx.pos == 0);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
920 CX_TEST_ASSERT(ctx.next_pos == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
921 CX_TEST_ASSERT(ctx.delim_pos == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
922 CX_TEST_ASSERT(ctx.found == 1);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
923 cx_strupper(tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
924
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
925 ret = cx_strtok_next_m(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
926 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
927 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(tok), CX_STR("arbitrarily")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
928 CX_TEST_ASSERT(ctx.pos == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
929 CX_TEST_ASSERT(ctx.next_pos == 15);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
930 CX_TEST_ASSERT(ctx.delim_pos == 14);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
931 CX_TEST_ASSERT(ctx.found == 2);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
932 cx_strupper(tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
933
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
934 ret = cx_strtok_next_m(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
935 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
936 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(tok), CX_STR("")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
937 CX_TEST_ASSERT(ctx.pos == 15);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
938 CX_TEST_ASSERT(ctx.next_pos == 17);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
939 CX_TEST_ASSERT(ctx.delim_pos == 15);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
940 CX_TEST_ASSERT(ctx.found == 3);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
941 cx_strupper(tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
942
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
943 ret = cx_strtok_next_m(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
944 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
945 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(tok), CX_STR("separated")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
946 CX_TEST_ASSERT(ctx.pos == 17);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
947 CX_TEST_ASSERT(ctx.next_pos == 27);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
948 CX_TEST_ASSERT(ctx.delim_pos == 26);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
949 CX_TEST_ASSERT(ctx.found == 4);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
950 cx_strupper(tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
951
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
952 ret = cx_strtok_next_m(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
953 CX_TEST_ASSERT(ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
954 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(tok), CX_STR("string")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
955 CX_TEST_ASSERT(ctx.pos == 27);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
956 CX_TEST_ASSERT(ctx.next_pos == 33);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
957 CX_TEST_ASSERT(ctx.delim_pos == 33);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
958 CX_TEST_ASSERT(ctx.found == 5);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
959 cx_strupper(tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
960
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
961 ret = cx_strtok_next_m(&ctx, &tok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
962 CX_TEST_ASSERT(!ret);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
963 CX_TEST_ASSERT(ctx.pos == 27);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
964 CX_TEST_ASSERT(ctx.next_pos == 33);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
965 CX_TEST_ASSERT(ctx.delim_pos == 33);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
966 CX_TEST_ASSERT(ctx.found == 5);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
967
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
968 CX_TEST_ASSERT(0 == cx_strcmp(cx_strcast(str), CX_STR("AN,ARBITRARILY;||SEPARATED;STRING")));
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
969 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
970 cx_strfree(&str);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
971 }
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
972
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
973
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
974 CxTestSuite *cx_test_suite_string(void) {
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
975 CxTestSuite *suite = cx_test_suite_new("string");
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
976
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
977 cx_test_register(suite, test_string_construct);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
978 cx_test_register(suite, test_strfree);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
979 cx_test_register(suite, test_strdup);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
980 cx_test_register(suite, test_strdup_shortened);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
981 cx_test_register(suite, test_strlen);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
982 cx_test_register(suite, test_strsubs);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
983 cx_test_register(suite, test_strchr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
984 cx_test_register(suite, test_strrchr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
985 cx_test_register(suite, test_strstr);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
986 cx_test_register(suite, test_strcmp);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
987 cx_test_register(suite, test_strcasecmp);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
988 cx_test_register(suite, test_strcat);
1003
455afb252878 add test case to cover new branches inside cx_strcat_ma()
Mike Becker <universe@uap-core.de>
parents: 926
diff changeset
989 cx_test_register(suite, test_strcat_more_than_eight);
777
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
990 cx_test_register(suite, test_strsplit);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
991 cx_test_register(suite, test_strsplit_a);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
992 cx_test_register(suite, test_strtrim);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
993 cx_test_register(suite, test_strprefix);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
994 cx_test_register(suite, test_strsuffix);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
995 cx_test_register(suite, test_strcaseprefix);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
996 cx_test_register(suite, test_strcasesuffix);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
997 cx_test_register(suite, test_strreplace);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
998 cx_test_register(suite, test_strupper);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
999 cx_test_register(suite, test_strlower);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1000 cx_test_register(suite, test_strtok);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1001 cx_test_register(suite, test_strtok_m);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1002 cx_test_register(suite, test_strtok_delim);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1003 cx_test_register(suite, test_strtok_next_easy);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1004 cx_test_register(suite, test_strtok_next_unlimited);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1005 cx_test_register(suite, test_strtok_next_advanced);
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1006
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1007 return suite;
e5b29e6f0615 migrate string tests - relates to #342
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1008 }

mercurial