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 --- |