GCC Code Coverage Report


Directory: src/gate/
File: src/gate/data/tests/gatedata_cpp_test/sql_tests.hpp
Date: 2026-08-06 22:46:24
Exec Total Coverage
Lines: 126 126 100.0%
Functions: 9 9 100.0%
Branches: 193 496 38.9%

Line Branch Exec Source
1 #include "gate/data/providers.hpp"
2 #include "gate/utilities.hpp"
3 #include "gate/tests.hpp"
4
5 2 static void createTestTables(gate::data::DataConnection& conn)
6 {
7 using namespace gate;
8
9 // table with standard types
10 {
11 static StaticString const sql = "CREATE TABLE IF NOT EXISTS unit_test_tbl0 ("
12 "id INTEGER PRIMARY KEY, "
13 "value INTEGER"
14
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 ");";
15
16
3/10
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_REQUIRE_NOTHROW(
17 gate::data::DataStatement stmt = conn.createStatement(sql);
18 stmt.execute();
19 );
20 }
21
22 // table with standard types
23 {
24 static StaticString const sql = "CREATE TABLE IF NOT EXISTS unit_test_tbl1 ("
25 "id INTEGER PRIMARY KEY, "
26 "name TEXT, "
27 "age_years INTEGER, "
28 "birthday_unix INTEGER, "
29 "height_mm INTEGER, "
30 "weight_kg REAL, "
31 "picture BLOB"
32
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 ");";
33
34
3/10
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_REQUIRE_NOTHROW(
35 gate::data::DataStatement stmt = conn.createStatement(sql);
36 stmt.execute();
37 );
38 }
39
40 // table with special types
41 {
42 static StaticString const sql = "CREATE TABLE IF NOT EXISTS unit_test_tbl2 ("
43 "id INTEGER PRIMARY KEY, "
44 "txt TEXT, "
45 "date_created TEXT, "
46 "date_accessed TEXT, "
47 "date_modified TEXT, "
48 "guid TEXT"
49
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 ");";
50
51
3/10
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_REQUIRE_NOTHROW(
52 gate::data::DataStatement stmt = conn.createStatement(sql);
53 stmt.execute();
54 );
55 }
56 2 }
57
58 2 static void dropTestTables(gate::data::DataConnection& conn)
59 {
60 using namespace gate;
61
62 {
63
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 static StaticString const sql = "DROP TABLE unit_test_tbl0";
64
65
3/10
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(
66 gate::data::DataStatement stmt = conn.createStatement(sql);
67 stmt.execute();
68 );
69 }
70
71 {
72
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 static StaticString const sql = "DROP TABLE unit_test_tbl1";
73
74
3/10
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(
75 gate::data::DataStatement stmt = conn.createStatement(sql);
76 stmt.execute();
77 );
78 }
79
80 {
81
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 static StaticString const sql = "DROP TABLE unit_test_tbl2;";
82
83
3/10
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_REQUIRE_NOTHROW(
84 gate::data::DataStatement stmt = conn.createStatement(sql);
85 stmt.execute();
86 );
87 }
88 2 }
89
90 1 static void insertNamedParametersTestData(gate::data::DataConnection& conn)
91 {
92 using namespace gate;
93 typedef gate::data::DataStatement DataStatement;
94
95 static StaticString const sql = "INSERT INTO unit_test_tbl1 "
96 "(name, age_years, birthday_unix, height_mm, weight_kg, picture) "
97
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 "VALUES (:name, :age, :birthday, :height, :weight, :picture);"
98 ;
99
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 DataStatement stmt = conn.createStatement(sql);
100
5/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
1 GATEXX_TEST_CHECK_EQUAL(stmt.getParamCount(), 6);
101
102
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 String strName("Danny");
103
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 Value valName(*strName.c_impl());
104
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Value valAge(gate::int8_t(81));
105
3/6
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
1 gate::uint32_t unixDate = static_cast<gate::uint32_t>(DateTime(1944, 11, 17, 12, 0).toTime().toUnix());
106
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Value valBirthday(unixDate);
107
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Value valHeight(gate::uint16_t(1520));
108
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Value valWeight(gate::real64_t(75.6));
109
110
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Blob blob("abcd", 4);
111
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 Value valBlob(*blob.c_impl());
112
113
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 stmt.setNamedParam(":name", valName);
114
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 stmt.setNamedParam(":age", valAge);
115
3/6
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
1 stmt.setNamedParam(":birthday", unixDate);
116
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 stmt.setNamedParam(":height", valHeight);
117
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 stmt.setNamedParam(":weight", valWeight);
118
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1 stmt.setNamedParam(":picture", valBlob);
119
120
4/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
1 GATEXX_TEST_CHECK_NOTHROW(stmt.execute());
121
4/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
1 GATEXX_TEST_CHECK_NOTHROW(stmt.reset());
122 1 }
123
124 2 static void insertSimpleIndexedParametersTestData(gate::data::DataConnection& conn)
125 {
126 using namespace gate;
127 typedef gate::data::DataStatement DataStatement;
128
129 static StaticString const sql = "INSERT INTO unit_test_tbl0 "
130 "(value) "
131
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 "VALUES (?);"
132 ;
133
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 DataStatement stmt = conn.createStatement(sql);
134
5/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_CHECK_EQUAL(stmt.getParamCount(), 1);
135
136 2 gate::int32_t value = 123;
137
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Value valValue(value);
138
139
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(1, valValue);
140
141
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(stmt.execute());
142
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(stmt.reset());
143 2 }
144
145 2 static void insertIndexedParametersTestData(gate::data::DataConnection& conn)
146 {
147 using namespace gate;
148 typedef gate::data::DataStatement DataStatement;
149
150 static StaticString const sql = "INSERT INTO unit_test_tbl1 "
151 "(name, age_years, birthday_unix, height_mm, weight_kg, picture) "
152
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 "VALUES (?, ?, ?, ?, ?, ?);"
153 ;
154
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 DataStatement stmt = conn.createStatement(sql);
155
5/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_CHECK_EQUAL(stmt.getParamCount(), 6);
156
157
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 String strName("Arnold");
158
1/2
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
4 Value valName(*strName.c_impl());
159
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Value valAge(gate::int8_t(81));
160
3/6
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
2 gate::int32_t unixDate = static_cast<gate::int32_t>(DateTime(1947, 7, 30, 12, 0).toTime().toUnix());
161
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Value valBirthday(unixDate);
162
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Value valHeight(gate::int16_t(1880));
163
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Value valWeight(gate::real32_t(109.5f));
164
165
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Blob blob("abcd", 4);
166
1/2
✓ Branch 2 taken 2 times.
✗ Branch 3 not taken.
4 Value valBlob(*blob.c_impl());
167
168
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(1, valName);
169
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(2, valAge);
170
2/4
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
2 stmt.setParam(3, unixDate);
171
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(4, valHeight);
172
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(5, valWeight);
173
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(6, valBlob);
174
175
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(stmt.execute());
176
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(stmt.reset());
177 2 }
178
179
180 2 static void insertSpecialTestData(gate::data::DataConnection& conn)
181 {
182 using namespace gate;
183 typedef gate::data::DataStatement DataStatement;
184
185 static StaticString const sql = "INSERT INTO unit_test_tbl2 "
186 "(txt, date_created, date_accessed, date_modified, guid)"
187
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 "VALUES (?, ?, ?, ?, ?);";
188
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 DataStatement stmt = conn.createStatement(sql);
189
5/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 2 times.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
2 GATEXX_TEST_CHECK_EQUAL(stmt.getParamCount(), 5);
190
191 static wchar_t const wtxt[] = L"Test";
192
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 Date dtCreated(2026, 1, 1);
193
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 DateTime dtAccessed(2026, 1, 2, 12, 15, 30);
194
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 DateTime dtModified(2026, 1, 3, 18, 19, 20);
195
196
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Value valTxt(&wtxt[0]);
197
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Value valCreated(dtCreated);
198
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 Value valAccessed(dtAccessed);
199
2/4
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
4 Value valModified(dtModified.toTime());
200
2/4
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
4 Value valGuid(Guid::generate());
201
202
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(1, valTxt);
203
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(2, valCreated);
204
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(3, valAccessed);
205
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(4, valModified);
206
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 stmt.setParam(5, valGuid);
207
208
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(stmt.execute());
209
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(stmt.reset());
210 2 }
211
212 9 static void readResults(gate::data::DataReader& reader)
213 {
214 using namespace gate;
215
2/2
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 4 times.
9 while (reader.next())
216 {
217
1/2
✓ Branch 3 taken 5 times.
✗ Branch 4 not taken.
5 GATEXX_TEST_CHECK(reader.isValid());
218 5 gate::size_t const count = reader.getFieldCount();
219
2/2
✓ Branch 0 taken 33 times.
✓ Branch 1 taken 5 times.
38 for (gate::size_t ndx = 0; ndx != count; ++ndx)
220 {
221
1/2
✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
66 String name = reader.getFieldName(ndx);
222
1/2
✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
33 gate::type_id_t tp = reader.getFieldType(ndx);
223
1/2
✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
66 Value val = reader.getFieldValue(ndx);
224 66 String str;
225
1/2
✓ Branch 1 taken 33 times.
✗ Branch 2 not taken.
33 val.exportAs(str);
226 }
227 }
228 4 }
229
230 2 static void queryTestData(gate::data::DataConnection& conn)
231 {
232 using namespace gate;
233 typedef gate::data::DataStatement DataStatement;
234 typedef gate::data::DataReader DataReader;
235
236 // read table 1
237 {
238
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 static StaticString const sql = "SELECT * FROM unit_test_tbl1;";
239
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 DataStatement stmt = conn.createStatement(sql);
240
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 DataReader reader = stmt.query();
241
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 readResults(reader);
242
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 reader.close();
243 }
244
245 // read table 2
246 {
247
2/4
✓ Branch 0 taken 2 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 static StaticString const sql = "SELECT * FROM unit_test_tbl2;";
248
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 DataStatement stmt = conn.createStatement(sql);
249
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 DataReader reader = stmt.query();
250
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 readResults(reader);
251
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
2 reader.close();
252 }
253 2 }
254
255 2 static void run_default_sql_tests(gate::data::DataConnection& conn, gate::bool_t testNamedParameters = true)
256 {
257
1/2
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_CHECK(conn.c_impl() != NULL);
258
1/2
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_CHECK(conn.empty() == false);
259
1/2
✓ Branch 5 taken 2 times.
✗ Branch 6 not taken.
2 GATEXX_TEST_CHECK(!conn.getInterfaceName().empty());
260
2/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
2 GATEXX_TEST_REQUIRE_NOTHROW(createTestTables(conn));
261
262
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 1 times.
2 if (testNamedParameters)
263 {
264
2/8
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
1 GATEXX_TEST_CHECK_NOTHROW(insertNamedParametersTestData(conn));
265 }
266
2/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(insertSimpleIndexedParametersTestData(conn));
267
2/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(insertIndexedParametersTestData(conn));
268
2/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(insertSpecialTestData(conn));
269
270
2/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(queryTestData(conn));
271
2/8
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 2 times.
✗ Branch 7 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(dropTestTables(conn));
272 2 }
273