freebsd-src/lib/libarchive/test
Tim Kientzle 32364a7ddb MfP4: set/unset tracking for atime, ctime, mtime, and size fields.
This generalizes the existing set/unset tracking for hardlink/symlink
fields and extends it to cover non-string fields.  Eventually, this
will be further extended to cover most fields.

In particular, this is needed to correctly detect when time fields
are missing (for example, reading ustar archives doesn't set atime or
ctime) for proper time restore and is helpful when trying to determine
whether to overwrite data when restoring hardlinks.

This commit updates the tests but not the docs.
2008-09-01 04:54:29 +00:00
..
.cvsignore Ignore a few more common files. 2008-03-15 02:31:28 +00:00
main.c Make libarchive_test a little smarter about trying to find 2008-08-31 07:06:02 +00:00
Makefile Alphabetize the list of tests. 2008-08-25 06:08:22 +00:00
read_open_memory.c Extensive improvements to the libarchive_test test program that 2008-01-01 22:28:04 +00:00
README Extensive improvements to the libarchive_test test program that 2008-01-01 22:28:04 +00:00
test_acl_basic.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +00:00
test_acl_pax.c MFp4: libarchive 2.5.4b. (Still 'b' until I get a bit more 2008-05-26 17:00:24 +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
test_compat_gtar_1.tgz.uu Add $FreeBSD$ to the uuencoded test files that didn't have them already. 2008-07-03 03:26:30 +00:00
test_compat_gtar.c Portability: Eliminate the need for uudecode by incorporating 2008-03-12 05:12:23 +00:00
test_compat_tar_hardlink_1.tar.uu Add a test to verify compatibility with archives with 2008-01-31 07:47:38 +00:00
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_zip_1.zip.uu Add missing $FreeBSD$ 2008-06-30 15:49:12 +00:00
test_compat_zip.c Portability: Eliminate the need for uudecode by incorporating 2008-03-12 05:12:23 +00:00
test_empty_write.c Free up the entry objects allocated during this test. 2008-03-15 11:06:15 +00:00
test_entry_strmode.c Extensive improvements to the libarchive_test test program that 2008-01-01 22:28:04 +00:00
test_entry.c MfP4: set/unset tracking for atime, ctime, mtime, and size fields. 2008-09-01 04:54:29 +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_pax_filename_encoding.c Fix up test suite so it works again with the libarchive 1.x API. 2008-08-11 01:19:36 +00:00
test_pax_filename_encoding.tar.gz.uu Add $FreeBSD$ to the uuencoded test files that didn't have them already. 2008-07-03 03:26:30 +00:00
test_read_compress_program.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +00:00
test_read_data_large.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_read_extract.c MfP4: test harness improvements. 2008-06-15 10:35:22 +00:00
test_read_format_ar.c Current 'ar' read support in libarchive can only handle a GNU/SVR4 2008-03-12 21:10:26 +00:00
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 Extensive improvements to the libarchive_test test program that 2008-01-01 22:28:04 +00:00
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 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_posix00.tgz.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_posix01.tgz.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_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.tgz.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.tgz.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.c Portability: Eliminate the need for uudecode by incorporating 2008-03-12 05:12:23 +00:00
test_read_format_iso_gz.c
test_read_format_isorr_bz2.c Refactor one of the ISO extraction tests: Move the reference 2008-06-21 19:11:51 +00:00
test_read_format_isorr_bz2.iso.bz2.uu Refactor one of the ISO extraction tests: Move the reference 2008-06-21 19:11:51 +00:00
test_read_format_mtree.c MFp4: libarchive 2.5.4b. (Still 'b' until I get a bit more 2008-05-26 17:00:24 +00:00
test_read_format_pax_bz2.c
test_read_format_tar_empty_filename.c MFp4: libarchive 2.5.4b. (Still 'b' until I get a bit more 2008-05-26 17:00:24 +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 Since the tar bidder can never get called more than once, it 2008-01-13 23:50:30 +00:00
test_read_format_tbz.c
test_read_format_tgz.c
test_read_format_tz.c
test_read_format_zip.c Explain why two apparently-identical archive_read_data() calls 2008-08-10 03:13:42 +00:00
test_read_format_zip.zip.uu Add regression test for CRC32 check. The test file has been modified to 2008-06-26 11:50:11 +00:00
test_read_large.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_read_pax_truncated.c Extensive improvements to the libarchive_test test program that 2008-01-01 22:28:04 +00:00
test_read_position.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_read_truncated.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_tar_filenames.c MFp4: libarchive 2.5.4b. (Still 'b' until I get a bit more 2008-05-26 17:00:24 +00:00
test_tar_large.c Correct test_tar_large so it works correctly with the libarchive 1.x API. 2008-08-10 21:14:26 +00:00
test_ustar_filenames.c Fix up test suite so it works again with the libarchive 1.x API. 2008-08-11 01:19:36 +00:00
test_write_compress_program.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +00:00
test_write_compress.c Release the buffers used for exercising the compress code. 2008-03-15 11:05:49 +00:00
test_write_disk_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_write_disk_perms.c MfP4: test harness improvements. 2008-06-15 10:35:22 +00:00
test_write_disk_secure.c MfP4: test harness improvements. 2008-06-15 10:35:22 +00:00
test_write_disk.c Use the "start_time" (time at which the restore process began) 2008-09-01 02:50:24 +00:00
test_write_format_ar.c MFp4: libarchive 2.5.4b. (Still 'b' until I get a bit more 2008-05-26 17:00:24 +00:00
test_write_format_cpio_empty.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_write_format_cpio_newc.c Properly pad symlinks when writing cpio "newc" format. 2008-01-23 05:43:26 +00:00
test_write_format_cpio_odc.c Extensive improvements to the libarchive_test test program that 2008-01-01 22:28:04 +00:00
test_write_format_cpio.c Extensive improvements to the libarchive_test test program that 2008-01-01 22:28:04 +00:00
test_write_format_shar_empty.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_write_format_tar_empty.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +00:00
test_write_format_tar_ustar.c Fix up test suite so it works again with the libarchive 1.x API. 2008-08-11 01:19:36 +00:00
test_write_format_tar.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_write_open_memory.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test.h MfP4: test harness improvements. 2008-06-15 10:35:22 +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