Deleted Added
full compact
test_write_filter_gzip.c (302408) test_write_filter_gzip.c (337351)
1/*-
2 * Copyright (c) 2007 Tim Kientzle
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 25 unchanged lines hidden (view full) ---

34 */
35
36DEFINE_TEST(test_write_filter_gzip)
37{
38 struct archive_entry *ae;
39 struct archive* a;
40 char *buff, *data;
41 size_t buffsize, datasize;
1/*-
2 * Copyright (c) 2007 Tim Kientzle
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 25 unchanged lines hidden (view full) ---

34 */
35
36DEFINE_TEST(test_write_filter_gzip)
37{
38 struct archive_entry *ae;
39 struct archive* a;
40 char *buff, *data;
41 size_t buffsize, datasize;
42 unsigned char *rbuff;
42 char path[16];
43 size_t used1, used2;
44 int i, r, use_prog = 0;
45
46 buffsize = 2000000;
47 assert(NULL != (buff = (char *)malloc(buffsize)));
48 if (buff == NULL)
49 return;
50
51 datasize = 10000;
52 assert(NULL != (data = (char *)malloc(datasize)));
53 if (data == NULL) {
54 free(buff);
55 return;
56 }
57 memset(data, 0, datasize);
58
59 /*
60 * Write a 100 files and read them all back.
43 char path[16];
44 size_t used1, used2;
45 int i, r, use_prog = 0;
46
47 buffsize = 2000000;
48 assert(NULL != (buff = (char *)malloc(buffsize)));
49 if (buff == NULL)
50 return;
51
52 datasize = 10000;
53 assert(NULL != (data = (char *)malloc(datasize)));
54 if (data == NULL) {
55 free(buff);
56 return;
57 }
58 memset(data, 0, datasize);
59
60 /*
61 * Write a 100 files and read them all back.
62 * Use default compression level (6).
61 */
62 assert((a = archive_write_new()) != NULL);
63 assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
64 r = archive_write_add_filter_gzip(a);
65 if (r != ARCHIVE_OK) {
66 if (canGzip() && r == ARCHIVE_WARN)
67 use_prog = 1;
68 else {

--- 19 unchanged lines hidden (view full) ---

88 assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae));
89 assertA(datasize
90 == (size_t)archive_write_data(a, data, datasize));
91 }
92 archive_entry_free(ae);
93 assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
94 assertEqualInt(ARCHIVE_OK, archive_write_free(a));
95
63 */
64 assert((a = archive_write_new()) != NULL);
65 assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
66 r = archive_write_add_filter_gzip(a);
67 if (r != ARCHIVE_OK) {
68 if (canGzip() && r == ARCHIVE_WARN)
69 use_prog = 1;
70 else {

--- 19 unchanged lines hidden (view full) ---

90 assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae));
91 assertA(datasize
92 == (size_t)archive_write_data(a, data, datasize));
93 }
94 archive_entry_free(ae);
95 assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
96 assertEqualInt(ARCHIVE_OK, archive_write_free(a));
97
98 /* Basic gzip header tests */
99 rbuff = (unsigned char *)buff;
100 assertEqualInt(rbuff[0], 0x1f);
101 assertEqualInt(rbuff[1], 0x8b);
102 assertEqualInt(rbuff[2], 0x08);
103 assertEqualInt(rbuff[3], 0x00);
104 assertEqualInt(rbuff[8], 0); /* RFC 1952 flag for compression level 6 */
105
96 assert((a = archive_read_new()) != NULL);
97 assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
98 r = archive_read_support_filter_gzip(a);
99 if (r == ARCHIVE_WARN) {
100 skipping("Can't verify gzip writing by reading back;"
101 " gzip reading not fully supported on this platform");
102 } else {
103 assertEqualIntA(a, ARCHIVE_OK,

--- 7 unchanged lines hidden (view full) ---

111 assertEqualInt((int)datasize, archive_entry_size(ae));
112 }
113 assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
114 }
115 assertEqualInt(ARCHIVE_OK, archive_read_free(a));
116
117 /*
118 * Repeat the cycle again, this time setting some compression
106 assert((a = archive_read_new()) != NULL);
107 assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
108 r = archive_read_support_filter_gzip(a);
109 if (r == ARCHIVE_WARN) {
110 skipping("Can't verify gzip writing by reading back;"
111 " gzip reading not fully supported on this platform");
112 } else {
113 assertEqualIntA(a, ARCHIVE_OK,

--- 7 unchanged lines hidden (view full) ---

121 assertEqualInt((int)datasize, archive_entry_size(ae));
122 }
123 assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
124 }
125 assertEqualInt(ARCHIVE_OK, archive_read_free(a));
126
127 /*
128 * Repeat the cycle again, this time setting some compression
119 * options.
129 * options. Compression level is 9.
120 */
121 assert((a = archive_write_new()) != NULL);
122 assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
123 assertEqualIntA(a, ARCHIVE_OK,
124 archive_write_set_bytes_per_block(a, 10));
125 assertEqualIntA(a, (use_prog)?ARCHIVE_WARN:ARCHIVE_OK,
126 archive_write_add_filter_gzip(a));
127 assertEqualIntA(a, ARCHIVE_FAILED,

--- 17 unchanged lines hidden (view full) ---

145 archive_entry_set_filetype(ae, AE_IFREG);
146 assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae));
147 assertA(datasize == (size_t)archive_write_data(a, data, datasize));
148 archive_entry_free(ae);
149 }
150 assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
151 assertEqualInt(ARCHIVE_OK, archive_write_free(a));
152
130 */
131 assert((a = archive_write_new()) != NULL);
132 assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
133 assertEqualIntA(a, ARCHIVE_OK,
134 archive_write_set_bytes_per_block(a, 10));
135 assertEqualIntA(a, (use_prog)?ARCHIVE_WARN:ARCHIVE_OK,
136 archive_write_add_filter_gzip(a));
137 assertEqualIntA(a, ARCHIVE_FAILED,

--- 17 unchanged lines hidden (view full) ---

155 archive_entry_set_filetype(ae, AE_IFREG);
156 assertEqualIntA(a, ARCHIVE_OK, archive_write_header(a, ae));
157 assertA(datasize == (size_t)archive_write_data(a, data, datasize));
158 archive_entry_free(ae);
159 }
160 assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
161 assertEqualInt(ARCHIVE_OK, archive_write_free(a));
162
163 /* Basic gzip header tests */
164 rbuff = (unsigned char *)buff;
165 assertEqualInt(rbuff[0], 0x1f);
166 assertEqualInt(rbuff[1], 0x8b);
167 assertEqualInt(rbuff[2], 0x08);
168 assertEqualInt(rbuff[3], 0x00);
169 assertEqualInt(rbuff[8], 2); /* RFC 1952 flag for compression level 9 */
170
153 /* Curiously, this test fails; the test data above compresses
154 * better at default compression than at level 9. */
155 /*
156 failure("compression-level=9 wrote %d bytes, default wrote %d bytes",
157 (int)used2, (int)used1);
158 assert(used2 < used1);
159 */
160

--- 15 unchanged lines hidden (view full) ---

176 assertEqualString(path, archive_entry_pathname(ae));
177 assertEqualInt((int)datasize, archive_entry_size(ae));
178 }
179 assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
180 }
181 assertEqualInt(ARCHIVE_OK, archive_read_free(a));
182
183 /*
171 /* Curiously, this test fails; the test data above compresses
172 * better at default compression than at level 9. */
173 /*
174 failure("compression-level=9 wrote %d bytes, default wrote %d bytes",
175 (int)used2, (int)used1);
176 assert(used2 < used1);
177 */
178

--- 15 unchanged lines hidden (view full) ---

194 assertEqualString(path, archive_entry_pathname(ae));
195 assertEqualInt((int)datasize, archive_entry_size(ae));
196 }
197 assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
198 }
199 assertEqualInt(ARCHIVE_OK, archive_read_free(a));
200
201 /*
184 * Repeat again, with much lower compression.
202 * Repeat again, with compression level 1
185 */
186 assert((a = archive_write_new()) != NULL);
187 assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
188 assertEqualIntA(a, ARCHIVE_OK,
189 archive_write_set_bytes_per_block(a, 10));
190 assertEqualIntA(a, (use_prog)?ARCHIVE_WARN:ARCHIVE_OK,
191 archive_write_add_filter_gzip(a));
192 assertEqualIntA(a, ARCHIVE_OK,

--- 15 unchanged lines hidden (view full) ---

208 assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
209 assertEqualInt(ARCHIVE_OK, archive_write_free(a));
210
211 /* Level 1 really does result in larger data. */
212 failure("Compression-level=1 wrote %d bytes; default wrote %d bytes",
213 (int)used2, (int)used1);
214 assert(used2 > used1);
215
203 */
204 assert((a = archive_write_new()) != NULL);
205 assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
206 assertEqualIntA(a, ARCHIVE_OK,
207 archive_write_set_bytes_per_block(a, 10));
208 assertEqualIntA(a, (use_prog)?ARCHIVE_WARN:ARCHIVE_OK,
209 archive_write_add_filter_gzip(a));
210 assertEqualIntA(a, ARCHIVE_OK,

--- 15 unchanged lines hidden (view full) ---

226 assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
227 assertEqualInt(ARCHIVE_OK, archive_write_free(a));
228
229 /* Level 1 really does result in larger data. */
230 failure("Compression-level=1 wrote %d bytes; default wrote %d bytes",
231 (int)used2, (int)used1);
232 assert(used2 > used1);
233
234 /* Basic gzip header tests */
235 rbuff = (unsigned char *)buff;
236 assertEqualInt(rbuff[0], 0x1f);
237 assertEqualInt(rbuff[1], 0x8b);
238 assertEqualInt(rbuff[2], 0x08);
239 assertEqualInt(rbuff[3], 0x00);
240 assertEqualInt(rbuff[8], 4); /* RFC 1952 flag for compression level 1 */
241
216 assert((a = archive_read_new()) != NULL);
217 assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
218 assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
219 r = archive_read_support_filter_gzip(a);
220 if (r == ARCHIVE_WARN) {
221 skipping("gzip reading not fully supported on this platform");
222 } else {
223 assertEqualIntA(a, ARCHIVE_OK,

--- 49 unchanged lines hidden ---
242 assert((a = archive_read_new()) != NULL);
243 assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
244 assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
245 r = archive_read_support_filter_gzip(a);
246 if (r == ARCHIVE_WARN) {
247 skipping("gzip reading not fully supported on this platform");
248 } else {
249 assertEqualIntA(a, ARCHIVE_OK,

--- 49 unchanged lines hidden ---