GCC Code Coverage Report


Directory: src/gate/
File: src/gate/encode/tests/gateencode_cpp_test/test_compression.cpp
Date: 2026-02-03 22:06:38
Exec Total Coverage
Lines: 89 89 100.0%
Functions: 17 17 100.0%
Branches: 205 574 35.7%

Line Branch Exec Source
1 #include "gate/tests.hpp"
2 #include "gate/encode/zlibstreams.hpp"
3 #include "gate/encode/zipstreams.hpp"
4
5 #if !defined(GATE_ENCODE_NO_ADVANCED_COMPRESSION)
6 #include "gate/encode/bzip2streams.hpp"
7 #include "gate/encode/xzstreams.hpp"
8 #endif
9
10 using namespace gate;
11 using namespace gate::enc;
12
13 static StaticString const content =
14 "What is Lorem Ipsum? "
15 "Lorem Ipsum is simply dummy text of the printing and typesetting industry. "
16 "Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, "
17 "when an unknown printer took a galley of type and scrambled it to make a type "
18 "specimen book. It has survived not only five centuries, but also the leap into "
19 "electronic typesetting, remaining essentially unchanged. It was popularised "
20 "in the 1960s with the release of Letraset sheets containing Lorem Ipsum "
21 "passages, and more recently with desktop publishing software like "
22 "Aldus PageMaker including versions of Lorem Ipsum."
23 "Why do we use it? "
24 "It is a long established fact that a reader will be distracted by the "
25 "readable content of a page when looking at its layout. The point of using "
26 "Lorem Ipsum is that it has a more-or-less normal distribution of letters, "
27 "as opposed to using 'Content here, content here', making it look like readable "
28 "English. Many desktop publishing packages and web page editors now use "
29 "Lorem Ipsum as their default model text, and a search for 'lorem ipsum' "
30 "will uncover many web sites still in their infancy. Various versions have "
31 "evolved over the years, sometimes by accident, sometimes on purpose "
32 "(injected humour and the like)."
33 ;
34
35 8 static void transcode_data_streams(Stream& instream, Stream& outstream)
36 {
37 char buffer[128];
38
4/14
✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 8 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.
8 GATEXX_TEST_CHECK_NOTHROW(Stream::transferViaBuffer(instream, outstream, buffer, sizeof(buffer)));
39
4/14
✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 8 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 8 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.
8 GATEXX_TEST_CHECK_NOTHROW(outstream.flush());
40 8 }
41
42 template<class ENCODER, class DECODER>
43 8 void test_encoder_decoder()
44 {
45
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
16 StringStream plainData(content);
46
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
16 MemFileStream encodedData;
47
48 16 Stream encoder = NullStream();
49 {
50
4/12
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
8 GATEXX_TEST_CHECK(!encoder.empty());
51
4/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 4 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.
8 GATEXX_TEST_CHECK_NOTHROW(encoder = ENCODER::create(encodedData));
52
4/12
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
8 GATEXX_TEST_CHECK(!encoder.empty());
53
4/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 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.
8 GATEXX_TEST_CHECK_NOTHROW(transcode_data_streams(plainData, encoder));
54
5/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 4 times.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
8 GATEXX_TEST_CHECK(!encoder.getInterfaceName().empty());
55 char buffer[64];
56
5/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 4 times.
✗ Branch 21 not taken.
16 GATEXX_TEST_CHECK_THROW(encoder.peek(buffer, sizeof(buffer)));
57
5/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 4 times.
✗ Branch 21 not taken.
16 GATEXX_TEST_CHECK_THROW(encoder.read(buffer, sizeof(buffer)));
58 }
59
60
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
8 encodedData.seek(0, ControlStream::Seek_Begin);
61
62
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
16 StringStream decodedData;
63
64 16 Stream decoder = NullStream();
65 {
66
4/12
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
8 GATEXX_TEST_CHECK(!decoder.empty());
67
4/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 12 taken 4 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.
8 GATEXX_TEST_CHECK_NOTHROW(decoder = DECODER::create(encodedData));
68
4/12
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
8 GATEXX_TEST_CHECK(!decoder.empty());
69
3/4
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 2 times.
8 if (decoder.implementsInterface(GATE_INTERFACE_NAME_CONTROLSTREAM))
70 {
71 4 gate_controlstream_t* ptr_control = (gate_controlstream_t*)(decoder.c_impl());
72
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
8 ControlStream control(ptr_control);
73
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 gate_object_retain(ptr_control);
74
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 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.
4 GATEXX_TEST_CHECK_NOTHROW(control.canRead());
75
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 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.
4 GATEXX_TEST_CHECK_NOTHROW(control.canWrite());
76
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 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.
4 GATEXX_TEST_CHECK_NOTHROW(control.getSize());
77
4/14
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 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.
4 GATEXX_TEST_CHECK_NOTHROW(control.getAvailable());
78
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
4 control.seek(0, ControlStream::Seek_Current);
79 }
80
4/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 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.
8 GATEXX_TEST_CHECK_NOTHROW(transcode_data_streams(decoder, decodedData));
81
5/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 11 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 4 times.
✗ Branch 15 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
8 GATEXX_TEST_CHECK(!decoder.getInterfaceName().empty());
82
5/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 4 times.
✗ Branch 21 not taken.
16 GATEXX_TEST_CHECK_THROW(decoder.write("test", 4));
83
5/14
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 4 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 17 taken 4 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 4 times.
✗ Branch 21 not taken.
16 GATEXX_TEST_CHECK_THROW(decoder.flush());
84 }
85
86
1/2
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
16 String decodedText = decodedData.toString();
87
4/12
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 4 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
8 GATEXX_TEST_CHECK_EQUAL(content, decodedText);
88
89 8 }
90
91 #if !defined(GATE_ENCODE_NO_ADVANCED_COMPRESSION) && defined(GATE_EXTLIB_BZIP2)
92
93
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(Bzip2)
94 {
95 2 test_encoder_decoder<Bzip2Encoder, Bzip2Decoder>();
96 2 }
97
98 #endif
99
100 #if !defined(GATE_ENCODE_NO_ADVANCED_COMPRESSION) && (defined(GATE_EXTLIB_LZMASDK) || defined(GATE_EXTLIB_XZUTILS))
101
102
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(Xz)
103 {
104
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 test_encoder_decoder<XzEncoder, XzDecoder>();
105
106
1/2
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
4 LocalMemStream plain(static_cast<void const*>(content.c_str()), content.length());
107
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 MemStream xzencoded;
108
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(XzEncoder::run(plain, XzEncoder::Compression_Maximum, xzencoded));
109 2 }
110
111 #endif
112
113
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(Zlib)
114 {
115 2 test_encoder_decoder<ZlibEncoder, ZlibDecoder>();
116
117 2 test_encoder_decoder<GZipEncoder, GZipDecoder>();
118 2 }
119
120
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(Zip)
121 {
122
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 MemFileStream zip_output;
123 {
124
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ZipWriter writer(zip_output);
125
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 ZipEntry entry;
126
127
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 entry.setPath("/test.txt");
128
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 entry.setSize(content.size());
129
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 entry.setAttributes(File::Attrib_File);
130
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 entry.setAccessBits(File::Access_AllRead | File::Access_AllWrite);
131
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 entry.setModifiedDate(Time::now());
132
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 writer.add(entry, content.c_str());
133
134
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 entry.setPath("/test2.txt");
135
1/2
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
2 writer.add(entry, content.c_str());
136
137
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 writer.flush();
138 }
139
140 {
141
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 MemFileStream zip_input = zip_output.share();
142
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ZipReader reader(zip_input);
143
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 ZipEntry entry = reader.getFirstEntry();
144
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(), "/test.txt");
145
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 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
2 GATEXX_TEST_CHECK_EQUAL(entry.getSize(), content.size());
146
147
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 const bool_t secondEntryFound = reader.getNextEntry(entry);
148
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(secondEntryFound);
149
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(), "/test2.txt");
150
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 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
2 GATEXX_TEST_CHECK_EQUAL(entry.getSize(), content.size());
151 }
152
153 {
154
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 MemFileStream zip_input = zip_output.share();
155
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ZipReader reader(zip_input);
156
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 ZipEntry entry = reader.findEntry("/test.txt");
157
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(), "/test.txt");
158
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 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
2 GATEXX_TEST_CHECK_EQUAL(entry.getSize(), content.size());
159
160
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream extractedData;
161
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 reader.extractContent(extractedData);
162
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(content, extractedData.toView());
163 }
164
165 {
166
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 MemFileStream zip_input = zip_output.share();
167
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 ZipReader reader(zip_input);
168
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
2 ZipEntry entry = reader.findEntry("/test2.txt");
169
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(), "/test2.txt");
170
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 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
2 GATEXX_TEST_CHECK_EQUAL(entry.getSize(), content.size());
171
172
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
4 StringStream extractedData;
173
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
2 reader.extractContent(extractedData);
174
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(content, extractedData.toView());
175 }
176
177 2 }
178