Sun, 22 Dec 2024 22:10:04 +0100
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 | } |