GCC Code Coverage Report


Directory: src/gate/
File: src/gate/tests/gatecore_cpp_platform_test/test_environments.cpp
Date: 2026-02-03 22:06:38
Exec Total Coverage
Lines: 44 44 100.0%
Functions: 3 3 100.0%
Branches: 86 263 32.7%

Line Branch Exec Source
1 #include "gate/tests.hpp"
2 #include "gate/environments.hpp"
3 #include "gate/console.hpp"
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(Environments)
8 {
9 {
10 2 gate_map_t strmap = GATE_INIT_EMPTY;
11
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 result_t result = gate_env_get_var_map(&strmap);
12
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_OK(result);
13
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 gate_map_destroy(&strmap);
14 }
15 { // env-vars
16
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 Map<String, String> envvars = Environment::getVars();
17 2 Enumerator<Mapping<String, String> > entry = envvars.enumerate();
18
2/2
✓ Branch 1 taken 90 times.
✓ Branch 2 taken 1 times.
182 for (; entry.valid(); entry.next())
19 {
20
1/2
✓ Branch 1 taken 90 times.
✗ Branch 2 not taken.
180 String const& current_key = entry->key();
21
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 90 times.
180 if (current_key.empty()) continue;
22 360 String value;
23
4/14
✓ Branch 1 taken 90 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 90 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 90 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 90 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
180 GATEXX_TEST_CHECK_NOTHROW(value = Environment::getVar(current_key));
24
1/2
✓ Branch 1 taken 90 times.
✗ Branch 2 not taken.
180 String const& map_value = entry->value();
25
4/12
✓ Branch 1 taken 90 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 90 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 90 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 90 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
180 GATEXX_TEST_CHECK_EQUAL(value, map_value);
26
4/14
✓ Branch 1 taken 90 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 90 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 90 times.
✗ Branch 9 not taken.
✓ Branch 14 taken 90 times.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
180 GATEXX_TEST_CHECK_NOTHROW(value = Environment::getVar(current_key, String()));
27
28 char buffer[1024];
29 180 gate::size_t bufferUsed = 0;
30
1/2
✓ Branch 3 taken 90 times.
✗ Branch 4 not taken.
180 result_t accessResult = gate_env_get_var_str(current_key.c_str(), current_key.length(), buffer, sizeof(buffer), &bufferUsed);
31
4/12
✓ Branch 1 taken 90 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 90 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 90 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 90 times.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
180 GATEXX_TEST_CHECK_OK(accessResult);
32 }
33
34
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 static StaticString const nonExistingEnvVar = "non_existing_env_key";
35
2/4
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 static StaticString const altValue = "non_existing_env_value";
36
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(Environment::getVar(nonExistingEnvVar, altValue), altValue);
37 }
38
39 { // current-dir
40 4 String cwd;
41
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 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(cwd = Environment::getWorkPath());
42
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(!cwd.empty());
43
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(Environment::setWorkPath(cwd));
44 }
45
46 { // access system-ids
47
2/8
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getHostName());
48
2/8
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getUserName());
49 }
50
51 { // access other paths:
52
2/8
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getTempPath());
53
2/8
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getHomePath());
54
2/8
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getAppExecutableDirPath());
55
2/8
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getAppExecutablePath());
56
2/8
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getAppExecutableName());
57
3/10
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getAppConfigPath("gatecore_cpp_test", false));
58
3/10
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(Environment::getAppConfigPath("gatecore_cpp_test", true));
59
60 // data paths are not guaranteed to exist:
61
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
4 try { Environment::getDataPath(Environment::DataPathId_Documents); } catch(...) {}
62
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
4 try { Environment::getDataPath(Environment::DataPathId_Pictures); } catch(...) {}
63
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
4 try { Environment::getDataPath(Environment::DataPathId_Music); } catch(...) {}
64
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
4 try { Environment::getDataPath(Environment::DataPathId_Video); } catch(...) {}
65
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
4 try { Environment::getDataPath(Environment::DataPathId_Desktop); } catch(...) {}
66
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
4 try { Environment::getDataPath(Environment::DataPathId_AppData); } catch(...) {}
67 }
68
69 {
70 4 String shellPath;
71
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 12 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(shellPath = Environment::getShellPath());
72
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(!shellPath.empty());
73 }
74
75 2 }
76