tests/test_properties.c

Fri, 23 May 2025 12:44:24 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 23 May 2025 12:44:24 +0200
changeset 1327
ed75dc1db503
parent 1124
fcd5d86c472f
permissions
-rw-r--r--

make test-compile depend on both static and shared

the shared lib is not needed for the tests,
but when run with coverage, gcov will be confused
when outdated line information is available from
a previous shared build

924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 /*
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3 *
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 * Copyright 2024 Mike Becker, Olaf Wintermann All rights reserved.
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 *
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 *
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 *
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 *
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
3c90dfc35f06 add implementation for the properties parser
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
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 */
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
28
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
29 #include "cx/test.h"
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
30 #include "util_allocator.h"
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
31
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
32 #include "cx/properties.h"
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
33 #include "cx/hash_map.h"
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
34
964
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
35 CX_TEST(test_properties_init) {
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
36 CxProperties prop;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
37 CX_TEST_DO {
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
38 cxPropertiesInitDefault(&prop);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
39
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
40 CX_TEST_ASSERT(prop.config.delimiter == '=');
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
41 CX_TEST_ASSERT(prop.config.comment1 == '#');
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
42 CX_TEST_ASSERT(prop.config.comment2 == 0);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
43 CX_TEST_ASSERT(prop.config.comment3 == 0);
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
44 CX_TEST_ASSERT(prop.input.space == NULL);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
45 CX_TEST_ASSERT(prop.buffer.space == NULL);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
46
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
47 cxPropertiesDestroy(&prop);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
48 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
49 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
50
964
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
51 CX_TEST(test_properties_next) {
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
52 const char *tests[] = {
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
53 "name = value\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
54 "name=value\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
55 "n=value\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
56 "name=v\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
57 "n=v\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
58 "name = value # comment\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
59 "#comment\nn=v\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
60 "# comment1\n# comment2\n\n \n\nname = value\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
61 " name = value\n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
62 "name = value\n\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
63 };
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
64
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
65 const char *keys[] = {
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
66 "name",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
67 "name",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
68 "n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
69 "name",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
70 "n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
71 "name",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
72 "n",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
73 "name",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
74 "name",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
75 "name"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
76 };
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
77
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
78 const char *values[] = {
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
79 "value",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
80 "value",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
81 "value",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
82 "v",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
83 "v",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
84 "value",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
85 "v",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
86 "value",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
87 "value",
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
88 "value"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
89 };
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
90
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
91 CxProperties prop;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
92 cxPropertiesInitDefault(&prop);
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
93 CxPropertiesStatus result;
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
94 cxstring key;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
95 cxstring value;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
96 CX_TEST_DO {
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
97 for (int i = 0; i < 10; i++) {
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
98 cxPropertiesFill(&prop, tests[i]);
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
99 CX_TEST_ASSERT(prop.input.space == tests[i]);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
100 CX_TEST_ASSERT(prop.input.size == strlen(tests[i]));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
101 CX_TEST_ASSERT(prop.input.pos == 0);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
102
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
103 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
104 cxstring k = cx_str(keys[i]);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
105 cxstring v = cx_str(values[i]);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
106 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
107 CX_TEST_ASSERT(0 == cx_strcmp(key, k));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
108 CX_TEST_ASSERT(0 == cx_strcmp(value, v));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
109
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
110 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
111 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
112 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
113 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
114 cxPropertiesDestroy(&prop);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
115 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
116
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
117 CX_TEST_SUBROUTINE(test_properties_next_multi_check, CxProperties *prop) {
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
118 const char *keys[] = {
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
119 "a",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
120 "b",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
121 "c",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
122 "uap",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
123 "name",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
124 "key1",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
125 "key2",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
126 "key3"
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
127 };
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
128
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
129 const char *values[] = {
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
130 "a value",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
131 "b value",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
132 "core",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
133 "core",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
134 "ucx",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
135 "value1",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
136 "value2",
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
137 "value3"
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
138 };
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
139 CxPropertiesStatus result;
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
140 cxstring key;
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
141 cxstring value;
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
142 for (int i = 0; i < 8; i++) {
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
143 result = cxPropertiesNext(prop, &key, &value);
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
144 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
145 CX_TEST_ASSERT(!cx_strcmp(key, cx_str(keys[i])));
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
146 CX_TEST_ASSERT(!cx_strcmp(value, cx_str(values[i])));
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
147 }
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
148 result = cxPropertiesNext(prop, &key, &value);
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
149 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
150 }
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
151
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
152 CX_TEST(test_properties_next_multi) {
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
153 const char *str = "#\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
154 "# properties\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
155 "# contains key/value pairs\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
156 "#\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
157 "a = a value\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
158 "b = b value\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
159 "c = core\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
160 "\n# test\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
161 "uap = core\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
162 "name = ucx\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
163 "# no = property\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
164 "key1 = value1\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
165 "#key1 = wrong value\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
166 "#key2 = not value 2\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
167 "key2 = value2\n"
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
168 "\n\n\n \n key3=value3\n";
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
169
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
170 CxProperties prop;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
171 cxPropertiesInitDefault(&prop);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
172
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
173 CX_TEST_DO {
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
174 CxPropertiesStatus result;
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
175 cxstring key;
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
176 cxstring value;
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
177 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
178 CX_TEST_ASSERT(result == CX_PROPERTIES_NULL_INPUT);
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
179
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
180 // check for C string
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
181 cxPropertiesFill(&prop, str);
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
182 CX_TEST_CALL_SUBROUTINE(test_properties_next_multi_check, &prop);
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
183
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
184 // check for cxstring
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
185 cxPropertiesFill(&prop, cx_str(str));
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
186 CX_TEST_CALL_SUBROUTINE(test_properties_next_multi_check, &prop);
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
187
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
188 // check for mutstr
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
189 cxPropertiesFill(&prop, cx_mutstr((char*)str));
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
190 CX_TEST_CALL_SUBROUTINE(test_properties_next_multi_check, &prop);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
191 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
192 cxPropertiesDestroy(&prop);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
193 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
194
964
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
195 CX_TEST(test_properties_next_part) {
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
196 CxProperties prop;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
197 cxPropertiesInitDefault(&prop);
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
198 CxPropertiesStatus result;
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
199 cxstring key;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
200 cxstring value;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
201 const char *str;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
202
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
203 CX_TEST_DO {
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
204 str = "";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
205 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
206 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
207 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
208
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
209 str = " \n";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
210 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
211 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
212 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
213
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
214 str = "name";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
215 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
216 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
217 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
218
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
219 str = " ";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
220 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
221 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
222 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
223
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
224 // call fill twice in a row
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
225 str = "= ";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
226 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
227 str = "value";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
228 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
229 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
230 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
231
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
232 str = "\n";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
233 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
234 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
235 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
236 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("name")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
237 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
238
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
239 // second round
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
240 str = "#comment\n";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
241 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
242 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
243 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
244
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
245 str = "#comment\nname2 = ";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
246 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
247 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
248 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
249
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
250 str = "value2\na = b\n";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
251 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
252 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
253 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
254 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("name2")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
255 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value2")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
256
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
257 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
258 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
259 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("a")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
260 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("b")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
261
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
262 str = "# comment\n#\n#\ntests = ";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
263 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
264 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
265 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
266
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
267 str = "test1 ";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
268 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
269 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
270 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
271
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
272 str = "test2 test3 test4\n";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
273 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
274 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
275 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
276 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("tests")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
277 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("test1 test2 test3 test4")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
278
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
279 // test if cxPropertiesNext finds a name/value after a comment
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
280 str = "# just a comment";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
281 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
282 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
283 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
284
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
285 str = " in 3";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
286 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
287 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
288 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
289
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
290 str = " parts\nx = 1\n";
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
291 CX_TEST_ASSERT(0 == cxPropertiesFill(&prop, str));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
292 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
293 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
294 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("x")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
295 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("1")));
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
296
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
297 // finally we are done
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
298 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
299 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
300 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
301 cxPropertiesDestroy(&prop);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
302 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
303
964
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
304 CX_TEST(test_properties_next_long_lines) {
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
305 CxProperties prop;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
306 cxPropertiesInitDefault(&prop);
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
307 CxPropertiesStatus result;
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
308 cxstring key;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
309 cxstring value;
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
310
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
311 size_t key_len = 512;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
312 char *long_key = (char*)malloc(key_len);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
313 memset(long_key, 'a', 70);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
314 memset(long_key + 70, 'b', 242);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
315 memset(long_key + 312, 'c', 200);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
316
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
317 size_t value_len = 2048;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
318 char *long_value = (char*)malloc(value_len);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
319 memset(long_value, 'x', 1024);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
320 memset(long_value+1024, 'y', 1024);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
321
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
322 CX_TEST_DO {
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
323 cxPropertiesFilln(&prop, long_key, 10);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
324 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
325 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
326
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
327 cxPropertiesFilln(&prop, long_key + 10, 202);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
328 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
329 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
330
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
331 cxPropertiesFilln(&prop, long_key + 212, 200);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
332 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
333 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
334
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
335 cxPropertiesFilln(&prop, long_key + 412, 100);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
336 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
337 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
338
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
339 const char *str = " = ";
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
340 cxPropertiesFill(&prop, str);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
341 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
342 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
343
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
344 cxPropertiesFilln(&prop, long_value, 512);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
345 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
346 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
347
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
348 cxPropertiesFilln(&prop, long_value + 512, 1024);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
349 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
350 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
351
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
352 cxPropertiesFilln(&prop, long_value + 1536, 512);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
353 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
354 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
355
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
356 str = "\n#comment\nkey = value\n";
972
a9a1d07a6840 add support for UCX strings in cxPropertiesFill()
Mike Becker <universe@uap-core.de>
parents: 964
diff changeset
357 cxPropertiesFill(&prop, str);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
358 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
359 cxstring k = cx_strn(long_key, key_len);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
360 cxstring v = cx_strn(long_value, value_len);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
361 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
362 CX_TEST_ASSERT(0 == cx_strcmp(key, k));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
363 CX_TEST_ASSERT(0 == cx_strcmp(value, v));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
364
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
365 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
366 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
367 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("key")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
368 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value")));
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
369
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
370 result = cxPropertiesNext(&prop, &key, &value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
371 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
372
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
373 CX_TEST_ASSERT(prop.buffer.capacity > 0);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
374 CX_TEST_ASSERT(cxBufferEof(&prop.buffer));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
375 CX_TEST_ASSERT(cxBufferEof(&prop.input));
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
376 cxPropertiesDestroy(&prop);
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
377 CX_TEST_ASSERT(prop.buffer.capacity == 0);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
378 CX_TEST_ASSERT(prop.buffer.size == 0);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
379 CX_TEST_ASSERT(prop.buffer.pos == 0);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
380 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
381
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
382 free(long_key);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
383 free(long_value);
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
384 }
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
385
964
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
386 CX_TEST(test_properties_load_string_to_map) {
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
387 CxTestingAllocator talloc;
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
388 cx_testing_allocator_init(&talloc);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
389 CxAllocator *alloc = &talloc.base;
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
390 CX_TEST_DO {
929
192a440b99df fix totally bugged assertion in cxPropertiesUseStack()
Mike Becker <universe@uap-core.de>
parents: 928
diff changeset
391 char buffer[512];
192a440b99df fix totally bugged assertion in cxPropertiesUseStack()
Mike Becker <universe@uap-core.de>
parents: 928
diff changeset
392 CxProperties prop;
192a440b99df fix totally bugged assertion in cxPropertiesUseStack()
Mike Becker <universe@uap-core.de>
parents: 928
diff changeset
393 cxPropertiesInitDefault(&prop);
192a440b99df fix totally bugged assertion in cxPropertiesUseStack()
Mike Becker <universe@uap-core.de>
parents: 928
diff changeset
394 cxPropertiesUseStack(&prop, buffer, 512);
192a440b99df fix totally bugged assertion in cxPropertiesUseStack()
Mike Becker <universe@uap-core.de>
parents: 928
diff changeset
395
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
396 const char *str = "key1 = value1\nkey2 = value2\n\n#comment\n\nkey3 = value3\n";
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
397
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
398 CxMap *map = cxHashMapCreateSimple(CX_STORE_POINTERS);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
399 cxDefineAdvancedDestructor(map, cxFree, alloc);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
400 CxPropertiesSink sink = cxPropertiesMapSink(map);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
401 sink.data = alloc; // use the testing allocator
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
402 CxPropertiesSource src = cxPropertiesCstrSource(str);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
403 CxPropertiesStatus status = cxPropertiesLoad(&prop, sink, src);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
404
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
405 CX_TEST_ASSERT(status == CX_PROPERTIES_NO_ERROR);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
406 CX_TEST_ASSERT(cxMapSize(map) == 3);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
407
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
408 char *v1 = cxMapGet(map, "key1");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
409 char *v2 = cxMapGet(map, "key2");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
410 char *v3 = cxMapGet(map, "key3");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
411
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
412 CX_TEST_ASSERTM(v1, "value for key1 not found");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
413 CX_TEST_ASSERTM(v2, "value for key2 not found");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
414 CX_TEST_ASSERTM(v3, "value for key3 not found");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
415
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
416 CX_TEST_ASSERT(!strcmp(v1, "value1"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
417 CX_TEST_ASSERT(!strcmp(v2, "value2"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
418 CX_TEST_ASSERT(!strcmp(v3, "value3"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
419
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
420 // second test
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
421 cxMapClear(map);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
422
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
423 str = "\n#comment\n";
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
424 src = cxPropertiesCstrnSource(str, strlen(str));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
425 status = cxPropertiesLoad(&prop, sink, src);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
426
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
427 CX_TEST_ASSERT(status == CX_PROPERTIES_NO_DATA);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
428 CX_TEST_ASSERT(cxMapSize(map) == 0);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
429
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
430 str = "key1 = value1\nsyntax error line\n";
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
431 src = cxPropertiesStringSource(cx_str(str));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
432 status = cxPropertiesLoad(&prop, sink, src);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
433
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
434 CX_TEST_ASSERT(status == CX_PROPERTIES_INVALID_MISSING_DELIMITER);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
435
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
436 // the successfully read k/v-pair is in the map, nevertheless
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
437 CX_TEST_ASSERT(cxMapSize(map) == 1);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
438 char *v = cxMapGet(map, "key1");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
439 CX_TEST_ASSERT(!strcmp(v, "value1"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
440
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 972
diff changeset
441 cxMapFree(map);
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
442 cxPropertiesDestroy(&prop);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
443
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
444 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
445 }
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
446 cx_testing_allocator_destroy(&talloc);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
447 }
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
448
964
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
449 CX_TEST(test_properties_load_file_to_map) {
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
450 CxTestingAllocator talloc;
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
451 cx_testing_allocator_init(&talloc);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
452 CxAllocator *alloc = &talloc.base;
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
453 CX_TEST_DO {
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
454 FILE *f = tmpfile();
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
455 CX_TEST_ASSERTM(f, "test file cannot be opened, test aborted");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
456 fprintf(f, "# properties file\n\nkey1 = value1\nkey2 = value2\n");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
457 fprintf(f, "\n\nkey3 = value3\n\n");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
458
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
459 size_t key_len = 512;
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
460 char *long_key = (char *) malloc(key_len);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
461 memset(long_key, 'k', 512);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
462
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
463 size_t value_len = 2048;
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
464 char *long_value = (char *) malloc(value_len);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
465 memset(long_value, 'v', 2048);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
466
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
467 fwrite(long_key, 1, key_len, f);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
468 fprintf(f, " = ");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
469 fwrite(long_value, 1, value_len, f);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
470 fprintf(f, " \n");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
471
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
472 fprintf(f, "\n\n\n\nlast_key = property value\n");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
473
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
474 fflush(f);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
475 fseek(f, 0, SEEK_SET);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
476
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
477 // preparation of test file complete
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
478
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
479 CxMap *map = cxHashMapCreateSimple(CX_STORE_POINTERS);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
480 cxDefineAdvancedDestructor(map, cxFree, alloc);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
481 CxProperties prop;
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
482 cxPropertiesInitDefault(&prop);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
483 CxPropertiesSink sink = cxPropertiesMapSink(map);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
484 sink.data = alloc; // use the testing allocator
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
485 CxPropertiesSource src = cxPropertiesFileSource(f, 512);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
486 CxPropertiesStatus status = cxPropertiesLoad(&prop, sink, src);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
487 fclose(f);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
488
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
489 CX_TEST_ASSERT(status == CX_PROPERTIES_NO_ERROR);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
490 CX_TEST_ASSERT(cxMapSize(map) == 5);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
491
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
492 char *v1 = cxMapGet(map, "key1");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
493 char *v2 = cxMapGet(map, cx_str("key2"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
494 char *v3 = cxMapGet(map, "key3");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
495 char *lv = cxMapGet(map, cx_strn(long_key, key_len));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
496 char *lk = cxMapGet(map, "last_key");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
497
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
498 CX_TEST_ASSERTM(v1, "value for key1 not found");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
499 CX_TEST_ASSERTM(v2, "value for key2 not found");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
500 CX_TEST_ASSERTM(v3, "value for key3 not found");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
501 CX_TEST_ASSERTM(lv, "value for long key not found");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
502 CX_TEST_ASSERTM(lk, "value for last_key not found");
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
503
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
504 CX_TEST_ASSERT(!strcmp(v1, "value1"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
505 CX_TEST_ASSERT(!strcmp(v2, "value2"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
506 CX_TEST_ASSERT(!strcmp(v3, "value3"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
507 cxstring expected = cx_strn(long_value, value_len);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
508 cxstring actual = cx_str(lv);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
509 CX_TEST_ASSERT(!cx_strcmp(expected, actual));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
510 CX_TEST_ASSERT(!strcmp(lk, "property value"));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
511
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
512 free(long_key);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
513 free(long_value);
993
b642eca4b956 make names of destroy and free functions consistent - fixes #484
Mike Becker <universe@uap-core.de>
parents: 972
diff changeset
514 cxMapFree(map);
928
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
515 cxPropertiesDestroy(&prop);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
516
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
517 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
518 }
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
519 cx_testing_allocator_destroy(&talloc);
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
520 }
d2d42cb1d59e add source/sink facility for properties - fixes #430
Mike Becker <universe@uap-core.de>
parents: 924
diff changeset
521
1124
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
522 CX_TEST(test_properties_load_incomplete) {
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
523 CxTestingAllocator talloc;
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
524 cx_testing_allocator_init(&talloc);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
525 CxAllocator *alloc = &talloc.base;
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
526 CX_TEST_DO {
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
527 char buffer[512];
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
528 CxProperties prop;
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
529 cxPropertiesInitDefault(&prop);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
530 cxPropertiesUseStack(&prop, buffer, 512);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
531
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
532 CxMap *map = cxHashMapCreateSimple(CX_STORE_POINTERS);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
533 cxDefineAdvancedDestructor(map, cxFree, alloc);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
534 CxPropertiesSink sink = cxPropertiesMapSink(map);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
535 sink.data = alloc; // use the testing allocator
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
536 CxPropertiesSource src = cxPropertiesCstrSource("key1 = value1\nkey2 = value2\n\n#comment\n\nkey3");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
537 CxPropertiesStatus status = cxPropertiesLoad(&prop, sink, src);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
538
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
539 CX_TEST_ASSERT(status == CX_PROPERTIES_INCOMPLETE_DATA);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
540 CX_TEST_ASSERT(cxMapSize(map) == 2);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
541
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
542 char *v1 = cxMapGet(map, "key1");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
543 char *v2 = cxMapGet(map, "key2");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
544 char *v3 = cxMapGet(map, "key3");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
545
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
546 CX_TEST_ASSERTM(v1, "value for key1 not found");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
547 CX_TEST_ASSERTM(v2, "value for key2 not found");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
548 CX_TEST_ASSERT(v3 == NULL);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
549
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
550 CX_TEST_ASSERT(!strcmp(v1, "value1"));
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
551 CX_TEST_ASSERT(!strcmp(v2, "value2"));
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
552
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
553 // provide a source with the remaining data
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
554 src = cxPropertiesCstrSource(" = value3\n");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
555 status = cxPropertiesLoad(&prop, sink, src);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
556
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
557 CX_TEST_ASSERT(status == CX_PROPERTIES_NO_ERROR);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
558 CX_TEST_ASSERT(cxMapSize(map) == 3);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
559
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
560 v1 = cxMapGet(map, "key1");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
561 v2 = cxMapGet(map, "key2");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
562 v3 = cxMapGet(map, "key3");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
563
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
564 CX_TEST_ASSERTM(v1, "value for key1 not found");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
565 CX_TEST_ASSERTM(v2, "value for key2 not found");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
566 CX_TEST_ASSERTM(v3, "value for key3 not found");
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
567
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
568 CX_TEST_ASSERT(!strcmp(v1, "value1"));
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
569 CX_TEST_ASSERT(!strcmp(v2, "value2"));
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
570 CX_TEST_ASSERT(!strcmp(v3, "value3"));
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
571
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
572 cxMapFree(map);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
573 cxPropertiesDestroy(&prop);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
574
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
575 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc));
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
576 }
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
577 cx_testing_allocator_destroy(&talloc);
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
578 }
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
579
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
580 CX_TEST(test_properties_multiple_fill) {
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
581 const char *props1 = "key1 = value1\n";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
582 const char *props2 = "key2 = value2\n";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
583 const char *props3 = "key3 = value3\n";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
584
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
585 CxProperties prop;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
586 cxPropertiesInitDefault(&prop);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
587 CxPropertiesStatus result;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
588 cxstring key;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
589 cxstring value;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
590 CX_TEST_DO {
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
591 cxPropertiesFill(&prop, props1);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
592 cxPropertiesFill(&prop, props2);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
593 cxPropertiesFill(&prop, props3);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
594 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
595 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
596 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("key1")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
597 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value1")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
598 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
599 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
600 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("key2")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
601 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value2")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
602 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
603 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
604 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("key3")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
605 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value3")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
606
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
607 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
608 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
609 }
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
610 cxPropertiesDestroy(&prop);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
611 }
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
612
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
613 CX_TEST(test_properties_use_stack) {
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
614 const char *props1 = "key1 = val";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
615 const char *props2 = "ue1\nkey2 = value2";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
616 const char *props3 = "\nkey3 = value3\n";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
617 char stackmem[16];
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
618
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
619 CxProperties prop;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
620 cxPropertiesInitDefault(&prop);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
621 cxPropertiesUseStack(&prop, stackmem, 16);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
622 CxPropertiesStatus result;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
623 cxstring key;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
624 cxstring value;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
625 CX_TEST_DO {
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
626 cxPropertiesFill(&prop, props1);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
627 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
628 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
629 cxPropertiesFill(&prop, props2);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
630 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
631 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
632 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("key1")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
633 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value1")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
634 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
635 CX_TEST_ASSERT(result == CX_PROPERTIES_INCOMPLETE_DATA);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
636 cxPropertiesFill(&prop, props3);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
637 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
638 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
639 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("key2")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
640 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value2")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
641 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
642 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
643 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("key3")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
644 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("value3")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
645 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
646 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_DATA);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
647 }
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
648 cxPropertiesDestroy(&prop);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
649 }
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
650
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
651 CX_TEST(test_properties_empty_key) {
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
652 const char *fail1 = "= val\n";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
653 const char *fail2 = " = val\n";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
654 const char *good = " key = val\n";
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
655
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
656 CxProperties prop;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
657 CxPropertiesStatus result;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
658 cxstring key;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
659 cxstring value;
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
660 CX_TEST_DO {
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
661 cxPropertiesInitDefault(&prop);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
662 cxPropertiesFill(&prop, fail1);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
663 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
664 CX_TEST_ASSERT(result == CX_PROPERTIES_INVALID_EMPTY_KEY);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
665 cxPropertiesReset(&prop);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
666 cxPropertiesFill(&prop, fail2);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
667 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
668 CX_TEST_ASSERT(result == CX_PROPERTIES_INVALID_EMPTY_KEY);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
669 cxPropertiesReset(&prop);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
670 cxPropertiesFill(&prop, good);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
671 result = cxPropertiesNext(&prop, &key, &value);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
672 CX_TEST_ASSERT(result == CX_PROPERTIES_NO_ERROR);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
673 CX_TEST_ASSERT(0 == cx_strcmp(key, cx_str("key")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
674 CX_TEST_ASSERT(0 == cx_strcmp(value, cx_str("val")));
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
675 cxPropertiesDestroy(&prop);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
676 }
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
677 }
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
678
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
679 CxTestSuite *cx_test_suite_properties(void) {
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
680 CxTestSuite *suite = cx_test_suite_new("properties");
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
681
964
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
682 cx_test_register(suite, test_properties_init);
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
683 cx_test_register(suite, test_properties_next);
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
684 cx_test_register(suite, test_properties_next_multi);
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
685 cx_test_register(suite, test_properties_next_part);
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
686 cx_test_register(suite, test_properties_next_long_lines);
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
687 cx_test_register(suite, test_properties_load_string_to_map);
3860f509fcbe fix test function names not in line with naming convention
Mike Becker <universe@uap-core.de>
parents: 929
diff changeset
688 cx_test_register(suite, test_properties_load_file_to_map);
1124
fcd5d86c472f fix wrong status of cxPropertiesLoad() when data is incomplete - fixes #560
Mike Becker <universe@uap-core.de>
parents: 1031
diff changeset
689 cx_test_register(suite, test_properties_load_incomplete);
1031
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
690 cx_test_register(suite, test_properties_multiple_fill);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
691 cx_test_register(suite, test_properties_use_stack);
8a90552bba29 rework of properties parser - fixes #529 and resolves #458
Mike Becker <universe@uap-core.de>
parents: 993
diff changeset
692 cx_test_register(suite, test_properties_empty_key);
924
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
693
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
694 return suite;
3c90dfc35f06 add implementation for the properties parser
Mike Becker <universe@uap-core.de>
parents:
diff changeset
695 }

mercurial