mirror of
https://github.com/opnsense/src.git
synced 2026-02-18 18:20:26 -05:00
* libarchive_test program exercises many of the core features
* Refactored old "read_extract" into new "archive_write_disk", which
uses archive_write methods to put entries onto disk. In particular,
you can now use archive_write_disk to create objects on disk
without having an archive available.
* Pushed some security checks from bsdtar down into libarchive, where
they can be better optimized.
* Rearchitected the logic for creating objects on disk to reduce
the number of system calls. Several common cases now use a
minimum number of system calls.
* Virtualized some internal interfaces to provide a clearer separation
of read and write handling and make it simpler to override key
methods.
* New "empty" format reader.
* Corrected return types (this ABI breakage required the "2.0" version bump)
* Many bug fixes.
46 lines
1.7 KiB
Text
46 lines
1.7 KiB
Text
$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.
|