a739eb8374
filename table whose size is less than 65536 bytes. The original intention was to not consume the filename table, so the client will have a chance to look at it. To achieve that, the library call decompressor->read_ahead to read(look ahead) but do not call decompressor->consume to consume the data, thus a limit was raised since read_ahead call can only look ahead at most BUFFER_SIZE(65536) bytes at the moment, and you can not "look any further" before you consume what you already "saw". This commit will turn GNU/SVR4 filename table into "archive format data", i.e., filename table will be consumed by libarchive, so the 65536-bytes limit will be gone, but client can no longer have access to the content of filename table. 'ar' support test suite is changed accordingly. BSD ar(1) is not affected by this change since it doesn't look at the filename table. Reported by: erwin Discussed with: jkoshy, kientzle Reviewed by: jkoshy, kientzle Approved by: jkoshy(mentor), kientzle |
||
---|---|---|
.. | ||
main.c | ||
Makefile | ||
read_open_memory.c | ||
README | ||
test_acl_basic.c | ||
test_acl_pax.c | ||
test_archive_api_feature.c | ||
test_bad_fd.c | ||
test_compat_gtar_1.tgz.uu | ||
test_compat_gtar.c | ||
test_compat_tar_hardlink_1.tar.uu | ||
test_compat_tar_hardlink.c | ||
test_compat_zip_1.zip.uu | ||
test_compat_zip.c | ||
test_empty_write.c | ||
test_entry_strmode.c | ||
test_entry.c | ||
test_read_compress_program.c | ||
test_read_data_large.c | ||
test_read_extract.c | ||
test_read_format_ar.c | ||
test_read_format_cpio_bin_bz2.c | ||
test_read_format_cpio_bin_gz.c | ||
test_read_format_cpio_bin_Z.c | ||
test_read_format_cpio_bin.c | ||
test_read_format_cpio_odc.c | ||
test_read_format_cpio_svr4_gzip.c | ||
test_read_format_cpio_svr4c_Z.c | ||
test_read_format_empty.c | ||
test_read_format_gtar_gz.c | ||
test_read_format_gtar_sparse_1_13.tgz.uu | ||
test_read_format_gtar_sparse_1_17_posix00.tgz.uu | ||
test_read_format_gtar_sparse_1_17_posix01.tgz.uu | ||
test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu | ||
test_read_format_gtar_sparse_1_17_posix10.tgz.uu | ||
test_read_format_gtar_sparse_1_17.tgz.uu | ||
test_read_format_gtar_sparse.c | ||
test_read_format_iso_gz.c | ||
test_read_format_isorr_bz2.c | ||
test_read_format_mtree.c | ||
test_read_format_pax_bz2.c | ||
test_read_format_tar.c | ||
test_read_format_tbz.c | ||
test_read_format_tgz.c | ||
test_read_format_tz.c | ||
test_read_format_zip.c | ||
test_read_large.c | ||
test_read_pax_truncated.c | ||
test_read_position.c | ||
test_read_truncated.c | ||
test_tar_filenames.c | ||
test_tar_large.c | ||
test_write_compress_program.c | ||
test_write_disk_hardlink.c | ||
test_write_disk_perms.c | ||
test_write_disk_secure.c | ||
test_write_disk.c | ||
test_write_format_ar.c | ||
test_write_format_cpio_empty.c | ||
test_write_format_cpio_newc.c | ||
test_write_format_cpio_odc.c | ||
test_write_format_cpio.c | ||
test_write_format_shar_empty.c | ||
test_write_format_tar_empty.c | ||
test_write_format_tar.c | ||
test_write_open_memory.c | ||
test.h |
$FreeBSD$ This is the test harness for libarchive. It compiles into a single program "libarchive_test" that is intended to exercise as much of the library as possible. It is, of course, very much a work in progress. Each test is a function named test_foo in a file named test_foo.c. Note that the file name is the same as the function name. Each file must start with this line: #include "test.h" The test function must be declared with a line of this form DEFINE_TEST(test_foo) Nothing else should appear on that line. When you add a test, please update the Makefile to add your file to the list of tests. The Makefile and main.c use various macro trickery to automatically collect a list of test functions to be invoked. Each test function can rely on the following: * The current directory will be a freshly-created empty directory suitable for that test. (The top-level main() creates a directory for each separate test and chdir()s to that directory before running the test.) * The test function should use assert(), assertA() and similar macros defined in test.h. If you need to add new macros of this form, feel free to do so. The current macro set includes assertEqualInt() and assertEqualString() that print out additional detail about their arguments if the assertion does fail. 'A' versions also accept a struct archive * and display any error message from there on failure. * You are encouraged to document each assertion with a failure() call just before the assert. The failure() function is a printf-like function whose text is displayed only if the assertion fails. It can be used to display additional information relevant to the failure: failure("The data read from file %s did not match the data written to that file.", filename); assert(strcmp(buff1, buff2) == 0); * Tests are encouraged to be economical with their memory and disk usage, though this is not essential. The test is occasionally run under a memory debugger to try to locate memory leaks in the library; as a result, tests should be careful to release any memory they allocate. * Disable tests on specific platforms as necessary. Please don't use config.h to adjust feature requirements, as I want the tests to also serve as a check on the configure process. The following form is appropriate: #if !defined(__PLATFORM) && !defined(__Platform2__) assert(xxxx) #endif