GCC Code Coverage Report


Directory: src/gate/
File: src/gate/encode/tests/gateencode_cpp_test/test_tarstreams.cpp
Date: 2025-09-14 13:10:38
Exec Total Coverage
Lines: 47 47 100.0%
Functions: 3 3 100.0%
Branches: 114 305 37.4%

Line Branch Exec Source
1 #include "gate/tests.hpp"
2 #include "gate/encode/tarstreams.hpp"
3 #include "gate/streams.hpp"
4
5 using namespace gate;
6 using namespace gate::enc;
7
8 static StaticString const testContent = "What is Lorem Ipsum? "
9 "Lorem Ipsum is simply dummy text of the printing and typesetting industry. "
10 "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, "
11 "when an unknown printer took a galley of type and scrambled it to make a type "
12 "specimen book. It has survived not only five centuries, but also the leap into "
13 "electronic typesetting, remaining essentially unchanged. It was popularised "
14 "in the 1960s with the release of Letraset sheets containing Lorem Ipsum "
15 "passages, and more recently with desktop publishing software like "
16 "Aldus PageMaker including versions of Lorem Ipsum."
17 "Why do we use it? "
18 "It is a long established fact that a reader will be distracted by the "
19 "readable content of a page when looking at its layout. The point of using "
20 "Lorem Ipsum is that it has a more-or-less normal distribution of letters, "
21 "as opposed to using 'Content here, content here', making it look like readable "
22 "English. Many desktop publishing packages and web page editors now use "
23 "Lorem Ipsum as their default model text, and a search for 'lorem ipsum' "
24 "will uncover many web sites still in their infancy. Various versions have "
25 "evolved over the years, sometimes by accident, sometimes on purpose "
26 "(injected humour and the like).";
27
28
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(TarStreams)
29 {
30
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 MemStream tarData;
31
32 {
33
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 TarWriter tarWriter(tarData);
34
35
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TarEntry entry;
36
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 entry.setPath("file1.txt");
37
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 entry.setAttributes(GATE_FILEENTRY_ATTRIB_FILE);
38
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 entry.setSize(testContent.length());
39
4/14
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
2 GATEXX_TEST_CHECK_NOTHROW(tarWriter.add(entry, testContent.c_str()));
40
41
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 entry.setPath("file2.txt");
42
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 gate::MemStream contentCopy;
43
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
2 contentCopy.writeBlock(testContent.c_str(), testContent.length());
44
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(tarWriter.add(entry, contentCopy));
45
46
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(tarWriter.flush());
47 }
48
49 {
50
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 TarReader tarReader(tarData);
51
52
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TarEntry testEntry1;
53 {
54
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TarEntry entry;
55
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 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(tarReader.getNextEntry(entry));
56
6/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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(entry.getPath(), "file1.txt");
57
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 MemStream content;
58 2 gate::uint64_t lenExtracted = 0;
59
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(lenExtracted = tarReader.extractContent(content));
60
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 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(lenExtracted == entry.getSize());
61
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_REQUIRE(lenExtracted == testContent.length());
62
6/16
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
2 GATEXX_TEST_CHECK(gate_mem_compare(content.getData(), testContent.c_str(), lenExtracted) == 0);
63
64
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 testEntry1 = TarEntry(static_cast<gate_tarentry_t&>(entry));
65 }
66 2 TarEntry testEntry2 = testEntry1;
67
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 testEntry2.setPath(testEntry1.getPath());
68
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 testEntry2.setAttributes(testEntry1.getAttributes());
69
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 testEntry2.setAccessBits(testEntry1.getAccessBits());
70
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 testEntry2.setTimeModified(testEntry1.getTimeModified());
71
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 testEntry2.setTimeAccessed(testEntry1.getTimeAccessed());
72
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 testEntry2.setOwnerId(testEntry1.getOwnerId());
73
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 testEntry2.setGroupId(testEntry1.getGroupId());
74
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 testEntry1.getOwner();
75
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 testEntry1.getGroup();
76
77 {
78
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TarEntry entry;
79
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 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(tarReader.getNextEntry(entry));
80
6/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 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
2 GATEXX_TEST_CHECK_EQUAL(entry.getPath(), "file2.txt");
81
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 MemStream content;
82 2 gate::uint64_t lenExtracted = 0;
83
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(lenExtracted = tarReader.extractContent(content));
84
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 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(lenExtracted == entry.getSize());
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_REQUIRE(lenExtracted == testContent.length());
86
6/16
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
2 GATEXX_TEST_CHECK(gate_mem_compare(content.getData(), testContent.c_str(), lenExtracted) == 0);
87 }
88
89 {
90
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 TarEntry entry;
91
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 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(tarReader.getNextEntry(entry) == false);
92 }
93 }
94 2 }
95