GCC Code Coverage Report


Directory: src/gate/
File: src/gate/tests/gatecore_cpp_platform_test/test_console.cpp
Date: 2025-12-12 23:40:09
Exec Total Coverage
Lines: 60 65 92.3%
Functions: 6 6 100.0%
Branches: 90 302 29.8%

Line Branch Exec Source
1 #include "gate/tests.hpp"
2 #include "gate/console.hpp"
3 #include "gate/debugging.h"
4
5 using namespace gate;
6
7
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(Console)
8 {
9
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_REQUIRE_EQUAL(Console.empty(), false);
10
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_REQUIRE_NOT_EQUAL(Console.c_impl(), NULL);
11
1/2
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
2 GATEXX_TEST_CHECK_NOT_EQUAL(Console.getInterfaceName().empty(), true);
12
13 {
14
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(Console.awaitChar(0));
15 2 char_32_t receivedChar = 0;
16 2 bool_t readSucceeded = false;
17 try
18 {
19
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 readSucceeded = Console.readChar(receivedChar, 0);
20 }
21 catch (...)
22 {
23 readSucceeded = false;
24 }
25
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
2 if (readSucceeded)
26 {
27
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(receivedChar == 0);
28
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 GATE_DEBUG_TRACE_VALUE(receivedChar);
29 }
30
31 try {
32 char buffer[32];
33
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
2 Console.peek(buffer, sizeof(buffer));
34 }
35
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 catch (...) {}
36
37 try {
38 2 gate_input_keycode_t k = 0;
39 char buffer[16];
40 2 gate::size_t bufferLen = sizeof(buffer);
41
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Console.readKey(k, receivedChar, 0, buffer, bufferLen);
42 }
43 catch (...) {}
44
45 try {
46 4 String line;
47
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Console >> line;
48 }
49 catch (...) {}
50
51 try {
52 4 String line;
53
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Console.readLineRaw(line, 0);
54 }
55 catch (...) {}
56 }
57
58 {
59 static char buffer[] = "Hello Console!\r\n";
60 gate::size_t chars_written;
61
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.
2 GATEXX_TEST_CHECK_NOTHROW(chars_written = Console.write(buffer, sizeof(buffer) - 1));
62
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 GATEXX_TEST_CHECK(chars_written > 0);
63
64
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.
2 GATEXX_TEST_CHECK_NOTHROW(chars_written = Console.writeBlock(buffer, sizeof(buffer) - 1));
65
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 GATEXX_TEST_CHECK_EQUAL(chars_written, sizeof(buffer) - 1);
66
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.flush());
67 }
68
69 {
70 static gate::int32_t const i4 = 1;
71 static gate::int32_t const u4 = 2;
72 static gate::int32_t const i8 = 3;
73 static gate::int32_t const u8 = 4;
74 static gate::real64_t const r = 5.5;
75
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.print(i4));
76
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.print(u4));
77
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.print(i8));
78
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.print(u8));
79
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.print(r, 0, 2, 0));
80
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.println("."));
81
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.flush());
82 }
83
84 {
85
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 static StaticString const errMsg = "Console Error Test";
86
3/10
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Console << "Hello Console!" << strings::NewLine);
87
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.writeErr(errMsg));
88
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.writeErr("\r\n", 2));
89
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.flushErr());
90 }
91
92 {
93
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.getResource(GATE_STREAM_RESOURCE_INPUT));
94
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.getResource(GATE_STREAM_RESOURCE_OUTPUT));
95
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.
2 GATEXX_TEST_CHECK_NOTHROW(Console.getResource(GATE_STREAM_RESOURCE_ERROR));
96 }
97
98 {
99
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate_stream_t* ptr_stream = gate_console_stream();
100
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_REQUIRE(ptr_stream != NULL);
101
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 Stream stream(ptr_stream);
102
5/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 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(stream << "Hello Console!" << strings::NewLine);
103 }
104 2 }
105
106
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(ConsoleError)
107 {
108
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_CHECK_EQUAL(ConError.empty(), false);
109
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_CHECK_NOT_EQUAL(ConError.c_impl(), NULL);
110
1/2
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
2 GATEXX_TEST_CHECK_NOT_EQUAL(ConError.getInterfaceName().empty(), true);
111
2/8
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
4 GATEXX_TEST_CHECK_THROW(ConError.peek(NULL, 0));
112
2/8
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
4 GATEXX_TEST_CHECK_THROW(ConError.read(NULL, 0));
113
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.
2 GATEXX_TEST_CHECK_NOTHROW(ConError.writeBlock("Hello ", 6));
114
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.
2 GATEXX_TEST_CHECK_NOTHROW(ConError.println("ConErr", 6));
115
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.
2 GATEXX_TEST_CHECK_NOTHROW(ConError.flush());
116
117 2 gate_console_t* ptr_console = gate_console();
118
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 GATEXX_TEST_REQUIRE(ptr_console != NULL);
119
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_CHECK_OK(gate_console_print_err(ptr_console, "Hello "));
120
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_CHECK_OK(gate_console_print_err_num(ptr_console, 2));
121
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 GATEXX_TEST_CHECK_OK(gate_console_println_err(ptr_console, " error console"));
122 2 }
123