GCC Code Coverage Report


Directory: src/gate/
File: src/gate/tests/gatecore_cpp_values_test/test_utilities.cpp
Date: 2026-10-19 17:06:30
Exec Total Coverage
Lines: 119 119 100.0%
Functions: 8 8 100.0%
Branches: 278 728 38.2%

Line Branch Exec Source
1 #include "gate/tests.hpp"
2 #include "gate/utilities.hpp"
3 #include "gate/guids.hpp"
4 #include "gate/times.hpp"
5 #include <stdexcept>
6
7 using namespace gate;
8
9 struct UnknownType
10 {
11 };
12
13
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(Utilities)
14 {
15
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printByteSize(123), "123 Bytes");
16
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printByteSize(1234), "1.2 KB");
17
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printByteSize(12345), "12.0 KB");
18
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printByteSize(123456), "120.5 KB");
19
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printByteSize(1234567), "1.17 MB");
20
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printByteSize(12345678), "11.77 MB");
21
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printByteSize(123456789), "117.73 MB");
22
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printByteSize(1234567890), "1.14 GB");
23
24 4 Exception const xcpt(results::Failed, "MyError", "MyOrigin", 0xdead);
25
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String const xcptText = util::printException(xcpt, true, true);
26
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(xcptText.positionOf("MyError") != String::npos);
27
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(xcptText.positionOf("dead") != String::npos);
28
29 4 String xcptText2;
30 try
31 {
32 2 throw xcpt;
33 }
34 2 catch(...)
35 {
36
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
2 xcptText2 = util::printCurrentException(true, true);
37 }
38
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_EQUAL(xcptText, xcptText2);
39
40 4 String xcptText3;
41 try
42 {
43
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 throw std::runtime_error("Test");
44 }
45 2 catch(...)
46 {
47
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
2 xcptText3 = util::printCurrentException(true, true);
48 }
49
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(!xcptText3.empty());
50
51 4 String xcptText4;
52 try
53 {
54 2 throw 123;
55 }
56 2 catch(...)
57 {
58
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
2 xcptText4 = util::printCurrentException(true, true);
59 }
60
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(!xcptText4.empty());
61
62 4 String xcptText5;
63 try
64 {
65 2 throw UnknownType();
66 }
67 2 catch(...)
68 {
69
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
2 xcptText5 = util::printCurrentException(true, true);
70 }
71
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(!xcptText5.empty());
72
73
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printDuration(12, true), "12s");
74
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printDuration(123, true), "2m 3s");
75
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printDuration(12345, true), "3h 25m 45s");
76
6/16
✓ 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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(util::printDuration(123456, true), "1d 10h 17m 36s");
77
78 static gate_string_t c_str_1 = GATE_STRING_INIT_STATIC("String1");
79 static gate_string_t c_str_2 = GATE_STRING_INIT_STATIC("String2");
80
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ArrayList<gate_string_t> c_string_array_list;
81
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 c_string_array_list.add(c_str_1);
82
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 c_string_array_list.add(c_str_2);
83
84 {
85
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate_arraylist_t native_c_string_array_list = c_string_array_list.c_impl();
86
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate_arraylist_retain(&native_c_string_array_list);
87
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ArrayList<String> cpp_string_array = util::createStringArray(native_c_string_array_list);
88
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_REQUIRE_EQUAL(cpp_string_array.length(), 2);
89
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 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_EQUAL(cpp_string_array[0], "String1");
90
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 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_EQUAL(cpp_string_array[1], "String2");
91
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.
2 GATEXX_TEST_CHECK_EQUAL(gate_arraylist_is_null(native_c_string_array_list), true);
92 }
93
94
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 Array<gate_string_t> c_string_array = c_string_array_list.toArray();
95
96 {
97 2 gate_array_t native_c_string_array = GATE_INIT_EMPTY;
98
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 gate_array_duplicate(&native_c_string_array, c_string_array.c_impl());
99
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ArrayList<String> cpp_string_array_list = util::createStringArray(native_c_string_array);
100
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_REQUIRE_EQUAL(cpp_string_array_list.length(), 2);
101
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 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_EQUAL(cpp_string_array_list[0], "String1");
102
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 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_EQUAL(cpp_string_array_list[1], "String2");
103
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.
2 GATEXX_TEST_CHECK_EQUAL(gate_array_length(&native_c_string_array), 0);
104
105
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 Array<String> cpp_string_array = cpp_string_array_list.toArray();
106
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate_arraylist_t c_arr_list = util::convertStringArray(cpp_string_array);
107
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.
2 GATEXX_TEST_CHECK(gate_arraylist_is_null(c_arr_list) == false);
108
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate_arraylist_release(&c_arr_list);
109 }
110
111
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 static StaticString const tokenString = "a,bc,def,gh";
112
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
4 ArrayList<String> tokens = util::splitString(tokenString, ",");
113
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_REQUIRE_EQUAL(tokens.length(), 4);
114
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 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_EQUAL(tokens[0], "a");
115
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 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_EQUAL(tokens[1], "bc");
116
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 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_EQUAL(tokens[2], "def");
117
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 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_EQUAL(tokens[3], "gh");
118
119 {
120 4 AtomicInt state(1);
121
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 Result<bool_t> result = util::awaitState(state, 1, 10);
122
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(result.hasValue());
123
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_EQUAL(result.value(), true);
124
125
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 util::setState(state, 2);
126
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 result = util::awaitState(state, 1, 0);
127
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(result.hasValue());
128
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_EQUAL(result.value(), false);
129
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 result = util::awaitState(state, 2, 10);
130
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(result.hasValue());
131
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_EQUAL(result.value(), true);
132
133
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 util::updateState(state, 2, 3);
134
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 result = util::awaitState(state, 3, 10);
135
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(result.hasValue());
136
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_EQUAL(result.value(), true);
137 }
138 2 }
139
140
141
142
143 struct GATE_API_INTERNAL DummyStruct
144 {
145 gate::int8_t i8_member;
146 gate::int16_t i16_member;
147 gate::int32_t i32_member;
148 gate::int64_t i64_member;
149 //gate::uint8_t ui8_member;
150 gate::uint16_t ui16_member;
151 gate::uint32_t ui32_member;
152 gate::uint64_t ui64_member;
153 gate::real32_t r32_member;
154 gate::real64_t r64_member;
155 gate::String string_member;
156 gate::Guid guid_member;
157 gate::Date date_member;
158 gate::DayTime daytime_member;
159 gate::DateTime datetime_member;
160 gate::Time time_member;
161
162 1 DummyStruct()
163 1 : i8_member(1),
164 i16_member(2),
165 i32_member(3),
166 i64_member(4),
167 //ui8_member(5),
168 ui16_member(6),
169 ui32_member(7),
170 ui64_member(8),
171 r32_member(9.0f),
172 r64_member(10.0f),
173
5/10
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
1 string_member("Test")
174 {
175 1 }
176 };
177
178 namespace gate
179 {
180 template<>
181 struct StructDescriptor<DummyStruct> : public DynStructDescriptorBase<DummyStruct>
182 {
183 1 StructDescriptor()
184 1 : DynStructDescriptorBase<DummyStruct>("DummyStruct")
185 {
186
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::i8_member, "i8_member");
187
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::i16_member, "i16_member");
188
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::i32_member, "i32_member");
189
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::i64_member, "i64_member");
190 //this->addMember(&DummyStruct::ui8_member, "ui8_member");
191
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::ui16_member, "ui16_member");
192
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::ui32_member, "ui32_member");
193
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::ui64_member, "ui64_member");
194
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::r32_member, "r32_member");
195
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::r64_member, "r64_member");
196
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::string_member, "string_member");
197
198
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::guid_member, "guid_member");
199
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::date_member, "date_member");
200
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::daytime_member, "daytime_member");
201
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::datetime_member, "datetime_member");
202
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::time_member, "time_member");
203
204
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->updateDescriptor();
205 1 }
206 };
207 }
208
209
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(TypeDumps)
210 {
211
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
4 gate::Struct<DummyStruct> ds;
212 {
213
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream ss;
214
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 util::dumpStruct(ds.c_impl(), ss);
215
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String serialized = ss.toString();
216
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(!serialized.empty());
217 }
218
219 4 ConstStruct cds(ds);
220
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate::size_t member_count = cds.getMemberCount();
221
2/2
✓ Branch 0 taken 15 times.
✓ Branch 1 taken 1 times.
32 for(gate::size_t ndx = 0; ndx != member_count; ++ndx)
222 {
223
1/2
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
60 StringStream ss;
224
3/6
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 15 times.
✗ Branch 8 not taken.
30 util::dumpType(cds.getMemberType(ndx), cds.getMemberPtr(ndx), ss);
225
1/2
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
60 String serialized = ss.toString();
226
4/12
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 15 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 15 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 15 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
30 GATEXX_TEST_CHECK(!serialized.empty());
227 }
228 2 }
229