GCC Code Coverage Report


Directory: src/gate/
File: src/gate/tests/gatecore_test/test_apps.c
Date: 2025-09-14 13:10:38
Exec Total Coverage
Lines: 44 44 100.0%
Functions: 2 2 100.0%
Branches: 26 52 50.0%

Line Branch Exec Source
1 #include "gate/tests.h"
2 #include "test_apps.h"
3 #include "gate/applications.h"
4
5 1 GATE_TEST_FUNCTION(test_apps_parse_args)
6 {
7 static gate_string_t const argset1 = GATE_STRING_INIT_STATIC("arg1 arg2 arg3 arg4 ");
8 static gate_string_t const argset2 = GATE_STRING_INIT_STATIC("arg1 \"arg2 arg3\" arg4");
9 static gate_string_t const argset3 = GATE_STRING_INIT_STATIC("arg1 \"arg2\\\"arg3\" arg4");
10 static gate_string_t const argset4 = GATE_STRING_INIT_STATIC("arg1 \"arg2\\\\arg3\" arg4");
11 static gate_string_t const argset5 = GATE_STRING_INIT_STATIC("arg1 arg2\\arg3 arg4");
12
13 char buffer[GATE_MAX_COPYBUFFER_LENGTH];
14 char const* parsed_args[256];
15 gate_string_t parsed_arg_str[10];
16 1 gate_size_t parsed_args_capacity = sizeof(parsed_args) / sizeof(parsed_args[0]);
17 gate_size_t parsed_args_count;
18
19
20 1 GATE_TEST_UNIT_BEGIN(test_apps_parse_args);
21
22 1 parsed_args_count = gate_app_parse_args_buffer(&argset1, buffer, sizeof(buffer), parsed_args, parsed_args_capacity);
23
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_REQUIRE_EQUAL(parsed_args_count, 4);
24
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[0], "arg1"), 0);
25
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[1], "arg2"), 0);
26
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[2], "arg3"), 0);
27
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[3], "arg4"), 0);
28
29 1 parsed_args_count = gate_app_parse_args(&argset1, &parsed_arg_str[0], sizeof(parsed_arg_str) / sizeof(parsed_arg_str[0]));
30
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_REQUIRE_EQUAL(parsed_args_count, 4);
31
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_string_equals_str(&parsed_arg_str[0], "arg1"), true);
32
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_string_equals_str(&parsed_arg_str[1], "arg2"), true);
33
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_string_equals_str(&parsed_arg_str[2], "arg3"), true);
34
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_string_equals_str(&parsed_arg_str[3], "arg4"), true);
35 1 gate_string_release(&parsed_arg_str[0]);
36 1 gate_string_release(&parsed_arg_str[1]);
37 1 gate_string_release(&parsed_arg_str[2]);
38 1 gate_string_release(&parsed_arg_str[3]);
39
40 1 parsed_args_count = gate_app_parse_args_buffer(&argset2, buffer, sizeof(buffer), parsed_args, parsed_args_capacity);
41
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_REQUIRE_EQUAL(parsed_args_count, 3);
42
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[0], "arg1"), 0);
43
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[1], "arg2 arg3"), 0);
44
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[2], "arg4"), 0);
45
46 1 parsed_args_count = gate_app_parse_args_buffer(&argset3, buffer, sizeof(buffer), parsed_args, parsed_args_capacity);
47
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_REQUIRE_EQUAL(parsed_args_count, 3);
48
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[0], "arg1"), 0);
49
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[1], "arg2\"arg3"), 0);
50
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[2], "arg4"), 0);
51
52 1 parsed_args_count = gate_app_parse_args_buffer(&argset4, buffer, sizeof(buffer), parsed_args, parsed_args_capacity);
53
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_REQUIRE_EQUAL(parsed_args_count, 3);
54
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[0], "arg1"), 0);
55
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[1], "arg2\\arg3"), 0);
56
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[2], "arg4"), 0);
57
58 1 parsed_args_count = gate_app_parse_args_buffer(&argset5, buffer, sizeof(buffer), parsed_args, parsed_args_capacity);
59
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
1 GATE_TEST_REQUIRE_EQUAL(parsed_args_count, 3);
60
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[0], "arg1"), 0);
61
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[1], "arg2\\arg3"), 0);
62
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
1 GATE_TEST_CHECK_EQUAL(gate_str_comp(parsed_args[2], "arg4"), 0);
63
64 1 GATE_TEST_UNIT_END;
65 }
66
67 1 GATE_TEST_FUNCTION(test_apps)
68 {
69 1 gate_bool_t result = true;
70
71 1 result |= test_apps_parse_args();
72
73 1 return result;
74 }
75