GCC Code Coverage Report


Directory: src/gate/
File: src/gate/encode/tests/gateencode_cpp_test/test_texts.cpp
Date: 2025-12-12 23:40:09
Exec Total Coverage
Lines: 88 88 100.0%
Functions: 6 6 100.0%
Branches: 166 418 39.7%

Line Branch Exec Source
1 #include "gate/tests.hpp"
2 #include "gate/utilities.hpp"
3 #include "gate/encode/texts.hpp"
4
5
6 using namespace gate;
7 using namespace gate::enc;
8
9
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(Text)
10 {
11
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 static StaticString text = "abcdefghijklmnopqrstuvwxyz";
12
13 {
14
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream ss;
15
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::saveUtf8(text, ss);
16
17
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String tmp = ss.toView();
18 Text::BomTypeEnum bomType;
19
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 Text::detectBomType(tmp.c_str(), tmp.length(), bomType);
20
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(bomType, Text::BomType_Utf8);
21
22
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringBuilder sb;
23
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::loadUtf8(ss, sb);
24
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String result = sb.toString();
25
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(text, result);
26 }
27
28 {
29
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream ss;
30
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::saveAnsi(text, ss);
31
32
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String tmp = ss.toView();
33 Text::BomTypeEnum bomType;
34
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 Text::detectBomType(tmp.c_str(), tmp.length(), bomType);
35
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(bomType, Text::BomType_Unknown);
36
37
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringBuilder sb;
38
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::loadAnsi(ss, sb);
39
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String result = sb.toString();
40
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(text, result);
41 }
42
43 {
44
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream ss;
45
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::saveUtf16LE(text, ss);
46
47
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String tmp = ss.toView();
48 Text::BomTypeEnum bomType;
49
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 Text::detectBomType(tmp.c_str(), tmp.length(), bomType);
50
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(bomType, Text::BomType_Utf16LE);
51
52
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringBuilder sb;
53
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::loadUtf16LE(ss, sb);
54
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String result = sb.toString();
55
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(text, result);
56 }
57
58 {
59
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream ss;
60
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::saveUtf16BE(text, ss);
61
62
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String tmp = ss.toView();
63 Text::BomTypeEnum bomType;
64
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 Text::detectBomType(tmp.c_str(), tmp.length(), bomType);
65
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(bomType, Text::BomType_Utf16BE);
66
67
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringBuilder sb;
68
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::loadUtf16BE(ss, sb);
69
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String result = sb.toString();
70
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(text, result);
71 }
72
73 {
74
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream ss;
75
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::saveUtf32LE(text, ss);
76
77
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String tmp = ss.toView();
78 Text::BomTypeEnum bomType;
79
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 Text::detectBomType(tmp.c_str(), tmp.length(), bomType);
80
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(bomType, Text::BomType_Utf32LE);
81
82
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringBuilder sb;
83
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::loadUtf32LE(ss, sb);
84
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String result = sb.toString();
85
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(text, result);
86 }
87
88 {
89
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream ss;
90
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::saveUtf32BE(text, ss);
91
92
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String tmp = ss.toView();
93 Text::BomTypeEnum bomType;
94
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 Text::detectBomType(tmp.c_str(), tmp.length(), bomType);
95
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(bomType, Text::BomType_Utf32BE);
96
97
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringBuilder sb;
98
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Text::loadUtf32BE(ss, sb);
99
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String result = sb.toString();
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_CHECK_EQUAL(text, result);
101 }
102
103 {
104 4 StaticString const cdata = "abc\tdef\r\nghi\"jkl\"mno\\pqr\fstu\vvwx\byz\a \xE2\x82\xAC";
105
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String const escaped = Text::escapeC(cdata);
106
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 String const restored = Text::unescapeC(escaped);
107
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(restored, cdata);
108
109 char bufenc[256];
110
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 gate::size_t encodedlen = Text::escapeC(cdata.c_str(), cdata.length(), bufenc, sizeof(bufenc));
111 char bufdec[256];
112
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate::size_t decodedlen = Text::unescapeC(bufenc, encodedlen, bufdec, sizeof(bufdec));
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_CHECK_EQUAL(cdata.length(), decodedlen);
114
4/12
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 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(0 == Mem::compare(cdata.c_str(), bufdec, cdata.length()));
115 }
116
117
7/18
✓ 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 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
2 GATEXX_TEST_CHECK_EQUAL(Text::printVarToken("abc"), "${abc}");
118 4 gate::StringMap sm;
119
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.
2 sm.add("abc", "xyz");
120
7/18
✓ 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 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
2 GATEXX_TEST_CHECK_EQUAL(Text::printVars("${abc}", sm), "xyz");
121 2 }
122
123
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(TextFormat)
124 {
125 {
126
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 TextFormat formater("Hello {}, {} is INT, {} is REAL");
127
5/10
✓ 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 taken 1 times.
✗ Branch 14 not taken.
4 String const text = formater % "World" % gate::int32_t(42) % 123.456;
128
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_EQUAL(text, "Hello World, 42 is INT, 123.456 is REAL");
129 }
130
131 {
132
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 TextFormat formater("${0:0,2}, %{1}, #{2} -> \"{0}\" \"{1}\" \"{2}\"");
133
5/10
✓ 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 taken 1 times.
✗ Branch 14 not taken.
4 String const text = formater % "Test" % gate::int32_t(42) % 123.456;
134
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_EQUAL(text, "$Test, %42, #123.456 -> \"Test\" \"42\" \"123.456\"");
135 }
136
137 {
138 2 gate::int8_t i8 = 1;
139 2 gate::int16_t i16 = 2;
140 2 gate::int32_t i32 = 3;
141 2 gate::int64_t i64 = 4;
142 2 gate::uint8_t ui8 = 5;
143 2 gate::uint16_t ui16 = 6;
144 2 gate::uint32_t ui32 = 7;
145 2 gate::uint64_t ui64 = 8;
146
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 TextFormat formater("{0} {1} {2} {3} {4} {5} {6} {7}");
147
9/18
✓ 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 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
4 String const text = formater % i8 % i16 % i32 % i64 % ui8 % ui16 % ui32 % ui64;
148
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_EQUAL(text, "1 2 3 4 5 6 7 8");
149 }
150 2 }
151