GCC Code Coverage Report


Directory: src/gate/
File: src/gate/tests/gatecore_cpp_test/test_console.cpp
Date: 2025-09-14 13:10:38
Exec Total Coverage
Lines: 40 45 88.9%
Functions: 3 3 100.0%
Branches: 59 207 28.5%

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
12 {
13
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));
14 2 char_32_t receivedChar = 0;
15 2 bool_t readSucceeded = false;
16 try
17 {
18
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 readSucceeded = Console.readChar(receivedChar, 0);
19 }
20 catch (...)
21 {
22 readSucceeded = false;
23 }
24
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
2 if (readSucceeded)
25 {
26
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);
27
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 GATE_DEBUG_TRACE_VALUE(receivedChar);
28 }
29
30 char buffer[32];
31 try {
32
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
2 Console.peek(buffer, sizeof(buffer));
33 }
34
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 catch (...) {}
35
36 try {
37 2 gate_input_keycode_t k = 0;
38 char buffer[16];
39 2 gate::size_t bufferLen = sizeof(buffer);
40
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Console.readKey(k, receivedChar, 0, buffer, bufferLen);
41 }
42 catch (...) {}
43
44 try {
45 4 String line;
46
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Console >> line;
47 }
48 catch (...) {}
49
50 try {
51 4 String line;
52
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 Console.readLineRaw(line, 0);
53 }
54 catch (...) {}
55 }
56
57 {
58 static char buffer[] = "Hello Console!\r\n";
59 gate::size_t chars_written;
60
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));
61
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 GATEXX_TEST_CHECK(chars_written > 0);
62
63
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));
64
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 GATEXX_TEST_CHECK_EQUAL(chars_written, sizeof(buffer) - 1);
65
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());
66 }
67
68 {
69 static gate::int32_t const i4 = 1;
70 static gate::int32_t const u4 = 2;
71 static gate::int32_t const i8 = 3;
72 static gate::int32_t const u8 = 4;
73 static gate::real64_t const r = 5.5;
74
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));
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(u4));
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(i8));
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(u8));
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(r, 0, 2, 0));
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.println("."));
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.flush());
81 }
82
83 {
84
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 static String const errMsg = String::createStaticFrom("Console Error Test");
85
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);
86
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));
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("\r\n", 2));
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.flushErr());
89 }
90
91 {
92
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));
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_OUTPUT));
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_ERROR));
95 }
96 2 }
97