GCC Code Coverage Report


Directory: src/gate/
File: src/gate/data/tests/gatedata_cpp_test/test_sqlite3.cpp
Date: 2025-12-12 23:40:09
Exec Total Coverage
Lines: 49 49 100.0%
Functions: 6 6 100.0%
Branches: 84 225 37.3%

Line Branch Exec Source
1 #include "gate/tests.hpp"
2 #include "gate/data/sqlite3_adapter.hpp"
3
4 using namespace gate;
5 using namespace gate::data;
6
7 1 static void createTestTables(DataConnection& conn)
8 {
9 static StaticString const sql = "CREATE TABLE IF NOT EXISTS unit_test_tbl ("
10 "id INTEGER PRIMARY KEY, "
11 "my_int INTEGER, "
12 "my_real REAL, "
13 "my_string TEXT, "
14 "my_blob BLOB"
15
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 ");";
16
17
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 DataStatement stmt = conn.createStatement(sql);
18
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 stmt.execute();
19 1 }
20
21 1 static void insertTestData(DataConnection& conn)
22 {
23 static StaticString const sql = "INSERT INTO unit_test_tbl "
24 "(my_int, my_real, my_string, my_blob)"
25
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 "VALUES (?, ?, ?, ?);"
26 ;
27
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 DataStatement stmt = conn.createStatement(sql);
28
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(), 4);
29
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Value valInt(gate::int64_t(123));
30
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Value valReal(gate::real64_t(123.456));
31
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 String str("Hello");
32
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 Value valString(*str.c_impl());
33
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Blob blob("abcd", 4);
34
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 Value valBlob(*blob.c_impl());
35
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 stmt.setParam(1, valInt);
36
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 stmt.setParam(2, valReal);
37
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 stmt.setParam(3, valString);
38
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 stmt.setParam(4, valBlob);
39
40
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());
41
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());
42 1 }
43
44 1 static void queryTestData(DataConnection& conn)
45 {
46
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 static StaticString const sql = "SELECT * FROM unit_test_tbl;";
47
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 DataStatement stmt = conn.createStatement(sql);
48
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 DataReader reader = stmt.query();
49
3/4
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
2 while(reader.next())
50 {
51
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(reader.isValid());
52
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 gate::size_t const count = reader.getFieldCount();
53
2/2
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 1 times.
6 for(gate::size_t ndx = 0; ndx != count; ++ndx)
54 {
55
1/2
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
10 String name = reader.getFieldName(ndx);
56
1/2
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
5 gate::type_id_t tp = reader.getFieldType(ndx);
57
1/2
✓ Branch 1 taken 5 times.
✗ Branch 2 not taken.
5 Value val = reader.getFieldValue(ndx);
58 }
59 }
60
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 reader.close();
61 1 }
62
63
64
65
2/7
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
6 GATEXX_TEST_UNIT(Sqlite3)
66 {
67 #if defined(GATE_DATA_SQLITE3_ENABLED)
68 2 Sqlite3DataConnection factory;
69 {
70 4 DataConnection testConn;
71 4 Result<DataConnection> connResult = factory.tryCreate(String(), Sqlite3DataConnection::Flag_InMemory);
72
4/12
✓ 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 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
2 GATEXX_TEST_CHECK(connResult.hasValue());
73 }
74
75 4 DataConnection conn;
76
4/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(conn = factory.create(String(), Sqlite3DataConnection::Flag_InMemory));
77
78
4/12
✓ 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 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
2 GATEXX_TEST_CHECK(conn.c_impl() != NULL);
79
4/12
✓ 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 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
2 GATEXX_TEST_CHECK(conn.empty() == false);
80
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 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
2 GATEXX_TEST_CHECK(!conn.getInterfaceName().empty());
81
4/12
✓ 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.
2 GATEXX_TEST_REQUIRE_NOTHROW(createTestTables(conn));
82
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.
2 GATEXX_TEST_CHECK_NOTHROW(insertTestData(conn));
83
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.
2 GATEXX_TEST_CHECK_NOTHROW(queryTestData(conn));
84 #endif
85 2 }
86