mirror of
https://github.com/opnsense/src.git
synced 2026-02-16 09:08:51 -05:00
ARCHIVE_VERSION_STAMP to selectively disable tests that don't apply to that version; new "skipping()" function reports skipped tests; modify final summary to report component test failures and skips. Note: I don't currently intend to MFC the test suite itself; anyone interested should just checkout and use this version of the test suite, which should work for any library version. Approved by: re (Ken Smith, blanket) |
||
|---|---|---|
| .. | ||
| main.c | ||
| Makefile | ||
| README | ||
| test.h | ||
| test_acl_basic.c | ||
| test_acl_pax.c | ||
| test_archive_api_feature.c | ||
| test_bad_fd.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.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_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 | ||
| test_read_format_iso_gz.c | ||
| test_read_format_isorr_bz2.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_position.c | ||
| test_read_truncated.c | ||
| test_tar_filenames.c | ||
| test_write_compress_program.c | ||
| test_write_disk.c | ||
| test_write_disk_perms.c | ||
| test_write_disk_secure.c | ||
| test_write_format_ar.c | ||
| test_write_format_cpio.c | ||
| test_write_format_cpio_empty.c | ||
| test_write_format_shar_empty.c | ||
| test_write_format_tar.c | ||
| test_write_format_tar_empty.c | ||
| test_write_open_memory.c | ||
$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