freebsd-dev/lib/libarchive/test
Martin Matuska ee3cdf6b2e Import bugfix for reading and extracting of FreeBSD ISO images with tar.
Upstream revision 3645 (merge of 3642):
Change the mechanism handling a rr_moved directory,
which is Rockridge extension that can exceed the limitation of
a maximum directory depth of ISO 9660.
  - Stop reading all entries at a time.
  - Connect "CL" entry to "RE" entry dynamically, which "CL" and "RE"
    have information to rebuild a full directory tree.
  - Tweak some related tests since we use Headsort for re-ordering
    entries and it cannot make a steady order when the keies of
    the entries are the same.

http://code.google.com/p/libarchive/issues/detail?id=168

Reviewed by:	kientzle
Approved by:	re (kib)
Obtained from:	libarchive (release/2.8, svn rev 3645)
MFC after:	3 days
2011-08-25 08:35:09 +00:00
..
.cvsignore Ignore a few more common files. 2008-03-15 02:31:28 +00:00
main.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
Makefile Add compatibility for ISO images created with unfixed makefs that 2011-08-07 08:42:36 +00:00
read_open_memory.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
README
test_acl_basic.c Style: Mark private data 'static', correct an old comment. 2008-10-19 00:13:57 +00:00
test_acl_freebsd.c Don't write data into an empty "file." 2010-12-07 16:48:01 +00:00
test_acl_pax.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_archive_api_feature.c MFp4: libarchive 2.5.4b. (Still 'b' until I get a bit more 2008-05-26 17:00:24 +00:00
test_bad_fd.c Style: Use ARCHIVE_VERSION_NUMBER to conditionalize tests on 2008-09-01 05:38:33 +00:00
test_compat_bzip2_1.tbz.uu New tests: 2008-12-06 07:08:08 +00:00
test_compat_bzip2_2.tbz.uu New tests: 2008-12-06 07:08:08 +00:00
test_compat_bzip2.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_compat_cpio_1.cpio.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_compat_cpio.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_compat_gtar_1.tar.uu Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_compat_gtar.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_compat_gzip_1.tgz.uu New tests: 2008-12-06 07:08:08 +00:00
test_compat_gzip_2.tgz.uu New tests: 2008-12-06 07:08:08 +00:00
test_compat_gzip.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_compat_lzma_1.tlz.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_compat_lzma_2.tlz.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_compat_lzma_3.tlz.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_compat_lzma.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_compat_solaris_tar_acl.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_compat_solaris_tar_acl.tar.uu Merge r1053,r1055,r1056,r1057,r1065 from libarchive.googlecode.com: 2009-04-27 18:27:54 +00:00
test_compat_tar_hardlink_1.tar.uu
test_compat_tar_hardlink.c Fix up test suite so it works again with the libarchive 1.x API. 2008-08-11 01:19:36 +00:00
test_compat_xz_1.txz.uu Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_compat_xz.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_compat_zip_1.zip.uu Add missing $FreeBSD$ 2008-06-30 15:49:12 +00:00
test_compat_zip_2.zip.uu If the Zip reader doesn't see a PK signature block 2010-11-07 03:40:37 +00:00
test_compat_zip.c If the Zip reader doesn't see a PK signature block 2010-11-07 03:40:37 +00:00
test_empty_write.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_entry_strmode.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_entry.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_extattr_freebsd.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_fuzz_1.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_fuzz.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_link_resolver.c Fix the new generic link resolver in libarchive to never match 2008-06-15 04:31:43 +00:00
test_open_failure.c Add compatibility for ISO images created with unfixed makefs that 2011-08-07 08:42:36 +00:00
test_open_fd.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_open_file.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_open_filename.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_pax_filename_encoding.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_pax_filename_encoding.tar.uu Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_compress_program.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_data_large.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_read_disk_entry_from_file.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_disk.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_extract.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_file_nonexistent.c Merge r658 from libarchive.googlecode.com: Only flush and close the 2009-03-07 02:09:21 +00:00
test_read_format_ar.ar.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_ar.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_cpio_bin_be.c Merge r1061,r1062,r1063 from libarchive.googlecode.com: 2009-04-27 19:30:09 +00:00
test_read_format_cpio_bin_be.cpio.uu Merge r1061,r1062,r1063 from libarchive.googlecode.com: 2009-04-27 19:30:09 +00:00
test_read_format_cpio_bin_bz2.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_cpio_bin_gz.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_format_cpio_bin_lzma.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_cpio_bin_xz.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_format_cpio_bin_Z.c Merge r659 from libarchive.googlecode.com: Correctly report "none" 2009-03-07 00:25:33 +00:00
test_read_format_cpio_bin.c Style: Use ARCHIVE_VERSION_NUMBER to conditionalize tests on 2008-09-01 05:38:33 +00:00
test_read_format_cpio_odc.c Style: Use ARCHIVE_VERSION_NUMBER to conditionalize tests on 2008-09-01 05:38:33 +00:00
test_read_format_cpio_svr4_bzip2_rpm.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_read_format_cpio_svr4_bzip2_rpm.rpm.uu - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_read_format_cpio_svr4_gzip_rpm.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_read_format_cpio_svr4_gzip_rpm.rpm.uu - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_read_format_cpio_svr4_gzip.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_format_cpio_svr4c_Z.c Merge r341,r345,r346,347 from libarchive.googlecode.com: Style 2009-03-05 00:31:48 +00:00
test_read_format_empty.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_read_format_gtar_gz.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_format_gtar_lzma.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_format_gtar_sparse_1_13.tar.uu Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_format_gtar_sparse_1_17_posix00.tar.uu Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_read_format_gtar_sparse_1_17_posix01.tar.uu Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu Add $FreeBSD$ to the uuencoded test files that didn't have them already. 2008-07-03 03:26:30 +00:00
test_read_format_gtar_sparse_1_17_posix10.tar.uu Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_read_format_gtar_sparse_1_17.tar.uu Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_read_format_gtar_sparse.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_read_format_iso_2.iso.Z.uu Import bugfix for reading and extracting of FreeBSD ISO images with tar. 2011-08-25 08:35:09 +00:00
test_read_format_iso_gz.c Import bugfix for reading and extracting of FreeBSD ISO images with tar. 2011-08-25 08:35:09 +00:00
test_read_format_iso_joliet_long.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_joliet_rockridge.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_joliet.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_multi_extent.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_multi_extent.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_rockridge_ce.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_rockridge_new.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_rockridge_rr_moved.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_rockridge.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso_zisofs.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_iso.iso.Z.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_isojoliet_bz2.c Import bugfix for reading and extracting of FreeBSD ISO images with tar. 2011-08-25 08:35:09 +00:00
test_read_format_isojoliet_long.c Import bugfix for reading and extracting of FreeBSD ISO images with tar. 2011-08-25 08:35:09 +00:00
test_read_format_isojoliet_rr.c Import bugfix for reading and extracting of FreeBSD ISO images with tar. 2011-08-25 08:35:09 +00:00
test_read_format_isorr_bz2.c Import bugfix for reading and extracting of FreeBSD ISO images with tar. 2011-08-25 08:35:09 +00:00
test_read_format_isorr_ce.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_isorr_new_bz2.c Import bugfix for reading and extracting of FreeBSD ISO images with tar. 2011-08-25 08:35:09 +00:00
test_read_format_isorr_rr_moved.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_isozisofs_bz2.c Import bugfix for reading and extracting of FreeBSD ISO images with tar. 2011-08-25 08:35:09 +00:00
test_read_format_mtree.c Add compatibility for ISO images created with unfixed makefs that 2011-08-07 08:42:36 +00:00
test_read_format_mtree.mtree.uu A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_pax_bz2.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_raw.c Merge r990,r1044 from libarchive.googlecode.com: 2009-04-27 20:09:05 +00:00
test_read_format_raw.data.uu Merge r990,r1044 from libarchive.googlecode.com: 2009-04-27 20:09:05 +00:00
test_read_format_raw.data.Z.uu Merge r990,r1044 from libarchive.googlecode.com: 2009-04-27 20:09:05 +00:00
test_read_format_tar_empty_filename.c Style: Use ARCHIVE_VERSION_NUMBER to conditionalize tests on 2008-09-01 05:38:33 +00:00
test_read_format_tar_empty_filename.tar.uu Add $FreeBSD$ to the uuencoded test files that didn't have them already. 2008-07-03 03:26:30 +00:00
test_read_format_tar.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_tbz.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_tgz.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_format_tlz.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_read_format_txz.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_read_format_tz.c Merge r341,r345,r346,347 from libarchive.googlecode.com: Style 2009-03-05 00:31:48 +00:00
test_read_format_xar.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_read_format_zip.c Merge r335,653,676 from libarchive.googlecode.com: Instead of 2009-03-07 03:30:35 +00:00
test_read_format_zip.zip.uu If we don't know the file size, leave the file size unset. 2008-10-21 05:08:35 +00:00
test_read_large.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_read_pax_truncated.c Merge r596,r690 from libarchive.googlecode.com: Minor style and compile 2009-03-07 03:34:34 +00:00
test_read_position.c Merge r364, r378, r379, r393, and r539 from libarchive.googlecode.com: 2009-03-05 02:19:42 +00:00
test_read_truncated.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_read_uu.c UU decoder. Now that libarchive can recursively taste input streams, 2009-12-30 06:12:03 +00:00
test_tar_filenames.c Style: Use ARCHIVE_VERSION_NUMBER to conditionalize tests on 2008-09-01 05:38:33 +00:00
test_tar_large.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_ustar_filenames.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_write_compress_bzip2.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_write_compress_gzip.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_write_compress_lzma.c Add compatibility for ISO images created with unfixed makefs that 2011-08-07 08:42:36 +00:00
test_write_compress_program.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_compress_xz.c Add compatibility for ISO images created with unfixed makefs that 2011-08-07 08:42:36 +00:00
test_write_compress.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_write_disk_failures.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_disk_hardlink.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_disk_perms.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_disk_secure.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_disk_sparse.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_disk_symlink.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_disk_times.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_disk.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_format_ar.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_write_format_cpio_empty.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_format_cpio_newc.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_format_cpio_odc.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_format_cpio.c - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00
test_write_format_mtree.c Merge lots of test suite updates from libarchive.googlecode.com. 2009-04-17 01:06:31 +00:00
test_write_format_pax.c MfP4: Store/read birthtime data in pax format. 2008-09-30 03:57:07 +00:00
test_write_format_shar_empty.c Style: Use ARCHIVE_VERSION_NUMBER to conditionalize tests on 2008-09-01 05:38:33 +00:00
test_write_format_tar_empty.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_write_format_tar_ustar.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_format_tar.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test_write_format_zip_empty.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_format_zip_no_compression.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_format_zip.c A raft of test changes and improvements from the Googlecode repository. 2009-12-30 05:59:21 +00:00
test_write_open_memory.c Merge r294:337,r348:350 from libarchive.googlecode.com: A lot 2009-03-03 17:02:51 +00:00
test.h - Update libarchive to 2.8.4 2011-07-17 21:27:38 +00:00

$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