freebsd-skq/lib/libarchive/test
Tim Kientzle a3ac45275d Correct the cpio writers to not accept data for non-regular files.
In particular, the previous code led to archives that had
non-empty bodies following directory entries.  Not a fatal
problem, as bsdtar and GNU cpio are both happy to just skip
this bogus data, but it still shouldn't be there.

MFC after: 3 days
2007-10-12 04:11:31 +00:00
..
main.c Two minor nits: 2007-07-31 05:03:27 +00:00
Makefile New test suite test_read_pax_truncated probes libarchive 2007-07-13 15:14:35 +00:00
read_open_memory.c New file "read_open_memory.c" is a custom variant of 2007-07-13 15:12:52 +00:00
README libarchive 2.2.3 2007-05-29 01:00:21 +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 Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +00:00
test_archive_api_feature.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +00:00
test_bad_fd.c
test_entry.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +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 libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_read_format_ar.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +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
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.c This commit updates libarchive to be compatible with 2007-08-18 21:53:25 +00:00
test_read_format_iso_gz.c
test_read_format_isorr_bz2.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_read_format_pax_bz2.c
test_read_format_tar.c Extend the basic tar reading test to exercise most types of 2007-07-14 05:35:17 +00:00
test_read_format_tbz.c
test_read_format_tgz.c
test_read_format_tz.c
test_read_format_zip.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_read_large.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_read_pax_truncated.c New test suite test_read_pax_truncated probes libarchive 2007-07-13 15:14:35 +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 Report each failed test once, but keep a count and report that count 2007-07-14 17:52:01 +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_disk_perms.c Make suid/sgid restore be "opportunistic" if 2007-08-12 17:35:05 +00:00
test_write_disk_secure.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +00:00
test_write_disk.c Fix the archive_write_data() function so it always returns 2007-09-21 04:52:43 +00:00
test_write_format_ar.c Make test suite work with libarchive 1.3.1: Take advantage of 2007-07-06 15:43:11 +00:00
test_write_format_cpio_empty.c libarchive 2.2.3 2007-05-29 01:00:21 +00:00
test_write_format_cpio.c Correct the cpio writers to not accept data for non-regular files. 2007-10-12 04:11:31 +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.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 Report each failed test once, but keep a count and report that count 2007-07-14 17:52:01 +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.

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

  * 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