GCC Code Coverage Report


Directory: src/gate/
File: src/gate/tests/gatecore_cpp_values_test/test_utilities.cpp
Date: 2025-12-12 23:40:09
Exec Total Coverage
Lines: 118 118 100.0%
Functions: 8 8 100.0%
Branches: 275 722 38.1%

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 2 taken 1 times.
✗ Branch 3 not taken.
2 gate_arraylist_t native_c_string_array_list = gate_arraylist_retain(c_string_array_list.c_impl());
86
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ArrayList<String> cpp_string_array = util::createStringArray(native_c_string_array_list);
87
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);
88
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");
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[1], "String2");
90
4/12
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
2 GATEXX_TEST_CHECK_EQUAL(native_c_string_array_list, NULL);
91 }
92
93
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 Array<gate_string_t> c_string_array = c_string_array_list.toArray();
94
95 {
96 2 gate_array_t native_c_string_array = GATE_INIT_EMPTY;
97
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 gate_array_duplicate(&native_c_string_array, c_string_array.c_impl());
98
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ArrayList<String> cpp_string_array_list = util::createStringArray(native_c_string_array);
99
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);
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 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");
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[1], "String2");
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 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);
103
104
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 Array<String> cpp_string_array = cpp_string_array_list.toArray();
105
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate_arraylist_t c_arr_list = util::convertStringArray(cpp_string_array);
106
4/12
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
2 GATEXX_TEST_CHECK(c_arr_list != NULL);
107
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate_arraylist_release(c_arr_list);
108 }
109
110
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";
111
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, ",");
112
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);
113
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");
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[1], "bc");
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[2], "def");
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[3], "gh");
117
118 {
119 4 AtomicInt state(1);
120
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 Result<bool_t> result = util::awaitState(state, 1, 10);
121
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());
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_EQUAL(result.value(), true);
123
124
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 util::setState(state, 2);
125
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);
126
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());
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_EQUAL(result.value(), false);
128
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);
129
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());
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_EQUAL(result.value(), true);
131
132
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 util::updateState(state, 2, 3);
133
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);
134
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());
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_EQUAL(result.value(), true);
136 }
137 2 }
138
139
140
141
142 struct GATE_CORE_CPP_API DummyStruct
143 {
144 gate::int8_t i8_member;
145 gate::int16_t i16_member;
146 gate::int32_t i32_member;
147 gate::int64_t i64_member;
148 //gate::uint8_t ui8_member;
149 gate::uint16_t ui16_member;
150 gate::uint32_t ui32_member;
151 gate::uint64_t ui64_member;
152 gate::real32_t r32_member;
153 gate::real64_t r64_member;
154 gate::String string_member;
155 gate::Guid guid_member;
156 gate::Date date_member;
157 gate::DayTime daytime_member;
158 gate::DateTime datetime_member;
159 gate::Time time_member;
160
161 1 DummyStruct()
162 1 : i8_member(1),
163 i16_member(2),
164 i32_member(3),
165 i64_member(4),
166 //ui8_member(5),
167 ui16_member(6),
168 ui32_member(7),
169 ui64_member(8),
170 r32_member(9.0f),
171 r64_member(10.0f),
172
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")
173 {
174 1 }
175 };
176
177 namespace gate
178 {
179 template<>
180 struct StructDescriptor<DummyStruct> : public DynStructDescriptorBase<DummyStruct>
181 {
182 1 StructDescriptor()
183 1 : DynStructDescriptorBase<DummyStruct>("DummyStruct")
184 {
185
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::i8_member, "i8_member");
186
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::i16_member, "i16_member");
187
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::i32_member, "i32_member");
188
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::i64_member, "i64_member");
189 //this->addMember(&DummyStruct::ui8_member, "ui8_member");
190
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::ui16_member, "ui16_member");
191
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::ui32_member, "ui32_member");
192
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::ui64_member, "ui64_member");
193
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::r32_member, "r32_member");
194
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::r64_member, "r64_member");
195
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::string_member, "string_member");
196
197
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::guid_member, "guid_member");
198
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::date_member, "date_member");
199
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::daytime_member, "daytime_member");
200
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::datetime_member, "datetime_member");
201
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->addMember(&DummyStruct::time_member, "time_member");
202
203
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1 this->updateDescriptor();
204 1 }
205 };
206 }
207
208
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)
209 {
210
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;
211 {
212
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream ss;
213
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 util::dumpStruct(ds.c_impl(), ss);
214
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String serialized = ss.toString();
215
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());
216 }
217
218 4 ConstStruct cds(ds);
219
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate::size_t member_count = cds.getMemberCount();
220
2/2
✓ Branch 0 taken 15 times.
✓ Branch 1 taken 1 times.
32 for(gate::size_t ndx = 0; ndx != member_count; ++ndx)
221 {
222
1/2
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
60 StringStream ss;
223
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);
224
1/2
✓ Branch 1 taken 15 times.
✗ Branch 2 not taken.
60 String serialized = ss.toString();
225
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());
226 }
227 2 }
228