Mercurial > code
annotate C++/tests/Zip/main.cpp @ 345:c293dbe181c0
Zip: add exists() function
Submitted by: Elias Pipping
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 31 Mar 2015 09:57:37 +0200 |
parents | 0b576ee64d45 |
children | d5ec1174b707 |
rev | line source |
---|---|
281
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- test the zip wrapper functions |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013, 2014 David Demelier <markand@malikania.fr> |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #include <gtest/gtest.h> |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <ZipArchive.h> |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 using namespace source; |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
286 | 25 /* -------------------------------------------------------- |
313
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
26 * Sources |
286 | 27 * -------------------------------------------------------- */ |
28 | |
29 TEST(Source, file) | |
30 { | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
31 remove("output.zip"); |
286 | 32 |
33 try { | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
34 ZipArchive archive("output.zip", ZIP_CREATE); |
286 | 35 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
36 archive.add(File("Zip/data.txt"), "data.txt"); |
286 | 37 } catch (const std::exception &ex) { |
38 std::cerr << ex.what() << std::endl; | |
39 } | |
40 | |
41 try { | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
42 ZipArchive archive("output.zip"); |
286 | 43 |
44 auto stats = archive.stat("data.txt"); | |
45 auto file = archive.open("data.txt"); | |
46 auto content = file.read(stats.size); | |
47 | |
48 ASSERT_EQ("abcdef\n", content); | |
49 } catch (const std::exception &ex) { | |
50 std::cerr << ex.what() << std::endl; | |
51 } | |
52 } | |
53 | |
54 TEST(Source, buffer) | |
55 { | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
56 remove("output.zip"); |
286 | 57 |
58 try { | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
59 ZipArchive archive{"output.zip", ZIP_CREATE}; |
286 | 60 |
61 archive.add(Buffer{"abcdef"}, "data.txt"); | |
62 } catch (const std::exception &ex) { | |
63 std::cerr << ex.what() << std::endl; | |
64 } | |
65 | |
66 try { | |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
67 ZipArchive archive{"output.zip"}; |
286 | 68 |
69 auto stats = archive.stat("data.txt"); | |
70 auto file = archive.open("data.txt"); | |
71 auto content = file.read(stats.size); | |
72 | |
73 ASSERT_EQ("abcdef", content); | |
74 } catch (const std::exception &ex) { | |
75 std::cerr << ex.what() << std::endl; | |
76 } | |
77 } | |
78 | |
79 /* -------------------------------------------------------- | |
313
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
80 * Write |
286 | 81 * -------------------------------------------------------- */ |
82 | |
313
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
83 TEST(Write, simple) |
281
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 { |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
85 remove("output.zip"); |
281
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 // Open first and save some data |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 try { |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
89 ZipArchive archive("output.zip", ZIP_CREATE); |
281
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
91 archive.add(Buffer("hello world!"), "DATA"); |
281
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 } catch (const std::exception &ex) { |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 std::cerr << "warning: " << ex.what() << std::endl; |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 } |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 try { |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
97 ZipArchive archive("output.zip"); |
281
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 auto stats = archive.stat("DATA"); |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 auto file = archive.open("DATA"); |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 auto content = file.read(stats.size); |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 ASSERT_EQ(static_cast<decltype(stats.size)>(12), stats.size); |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 ASSERT_EQ("hello world!", content); |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 } catch (const std::exception &ex) { |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 std::cerr << "warning: " << ex.what() << std::endl; |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 } |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 } |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 |
345
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
110 TEST(Write, notexist) |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
111 { |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
112 remove("output.zip"); |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
113 |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
114 try { |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
115 ZipArchive archive("output.zip", ZIP_CREATE); |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
116 |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
117 /* |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
118 * According to the libzip, adding a file that does not exists |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
119 * on the disk is not an error. |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
120 */ |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
121 archive.add(File("file_not_exist"), "FILE"); |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
122 } catch (const std::exception &ex) { |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
123 FAIL() << ex.what(); |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
124 } |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
125 } |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
126 |
313
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
127 /* -------------------------------------------------------- |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
128 * Reading |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
129 * -------------------------------------------------------- */ |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
130 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
131 class ReadingTest : public testing::Test { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
132 protected: |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
133 ZipArchive m_archive; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
134 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
135 public: |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
136 ReadingTest() |
334
0b576ee64d45
* Create brand new hierarchy
David Demelier <markand@malikania.fr>
parents:
313
diff
changeset
|
137 : m_archive("Zip/stats.zip") |
313
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
138 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
139 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
140 }; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
141 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
142 TEST_F(ReadingTest, numEntries) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
143 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
144 ASSERT_EQ(static_cast<ZipInt64>(4), m_archive.numEntries()); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
145 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
146 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
147 TEST_F(ReadingTest, stat) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
148 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
149 try { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
150 ZipStat stats = m_archive.stat("README"); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
151 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
152 ASSERT_EQ(static_cast<decltype(stats.size)>(15), stats.size); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
153 ASSERT_STREQ("README", stats.name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
154 } catch (const std::exception &ex) { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
155 std::cerr << ex.what() << std::endl; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
156 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
157 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
158 |
345
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
159 TEST_F(ReadingTest, exists) |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
160 { |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
161 ASSERT_TRUE(m_archive.exists("README")); |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
162 } |
c293dbe181c0
Zip: add exists() function
David Demelier <markand@malikania.fr>
parents:
334
diff
changeset
|
163 |
313
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
164 TEST_F(ReadingTest, read) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
165 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
166 try { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
167 auto file = m_archive.open("README"); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
168 auto stats = m_archive.stat("README"); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
169 auto text = file.read(stats.size); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
170 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
171 ASSERT_EQ("This is a test\n", text); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
172 } catch (const std::exception &ex) { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
173 std::cerr << "warning: " << ex.what() << std::endl; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
174 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
175 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
176 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
177 TEST_F(ReadingTest, increment) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
178 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
179 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
180 ZipArchive::iterator it = m_archive.begin(); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
181 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
182 ASSERT_STREQ("README", (*it++).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
183 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
184 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
185 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
186 ZipArchive::iterator it = m_archive.begin(); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
187 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
188 ASSERT_STREQ("INSTALL", (*++it).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
189 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
190 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
191 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
192 ZipArchive::iterator it = m_archive.begin() + 1; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
193 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
194 ASSERT_STREQ("INSTALL", (*it).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
195 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
196 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
197 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
198 TEST_F(ReadingTest, decrement) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
199 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
200 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
201 ZipArchive::iterator it = m_archive.begin() + 1; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
202 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
203 ASSERT_STREQ("INSTALL", (*it--).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
204 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
205 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
206 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
207 ZipArchive::iterator it = m_archive.begin() + 1; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
208 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
209 ASSERT_STREQ("README", (*--it).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
210 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
211 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
212 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
213 ZipArchive::iterator it = m_archive.end() - 1; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
214 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
215 ASSERT_STREQ("doc/REFMAN", (*it).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
216 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
217 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
218 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
219 TEST_F(ReadingTest, constIncrement) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
220 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
221 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
222 ZipArchive::const_iterator it = m_archive.cbegin(); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
223 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
224 ASSERT_STREQ("README", (*it++).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
225 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
226 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
227 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
228 ZipArchive::const_iterator it = m_archive.cbegin(); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
229 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
230 ASSERT_STREQ("INSTALL", (*++it).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
231 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
232 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
233 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
234 ZipArchive::const_iterator it = m_archive.cbegin() + 1; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
235 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
236 ASSERT_STREQ("INSTALL", (*it).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
237 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
238 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
239 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
240 TEST_F(ReadingTest, constDecrement) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
241 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
242 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
243 ZipArchive::const_iterator it = m_archive.cbegin() + 1; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
244 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
245 ASSERT_STREQ("INSTALL", (*it--).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
246 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
247 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
248 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
249 ZipArchive::const_iterator it = m_archive.cbegin() + 1; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
250 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
251 ASSERT_STREQ("README", (*--it).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
252 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
253 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
254 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
255 ZipArchive::const_iterator it = m_archive.cend() - 1; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
256 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
257 ASSERT_STREQ("doc/REFMAN", (*it).name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
258 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
259 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
260 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
261 TEST_F(ReadingTest, access) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
262 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
263 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
264 ZipArchive::iterator it = m_archive.begin(); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
265 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
266 ASSERT_STREQ("README", it->name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
267 ASSERT_STREQ("INSTALL", it[1].name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
268 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
269 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
270 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
271 ZipArchive::const_iterator it = m_archive.cbegin(); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
272 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
273 ASSERT_STREQ("README", it->name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
274 ASSERT_STREQ("INSTALL", it[1].name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
275 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
276 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
277 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
278 TEST_F(ReadingTest, loop) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
279 { |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
280 std::vector<std::string> names{"README", "INSTALL", "doc/", "doc/REFMAN"}; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
281 int i = 0; |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
282 |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
283 for (const ZipStat &s : m_archive) |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
284 ASSERT_STREQ(names[i++].c_str(), s.name); |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
285 } |
cd490a8ab82a
Zip: add iterators to ZipArchive
David Demelier <markand@malikania.fr>
parents:
286
diff
changeset
|
286 |
281
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
287 int main(int argc, char **argv) |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
288 { |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
289 testing::InitGoogleTest(&argc, argv); |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
290 |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
291 return RUN_ALL_TESTS(); |
88f9d8b406c6
Add Zip, safe wrapper around libzip
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
292 } |