mirror of
https://gitee.com/openharmony/third_party_libsnd
synced 2024-11-26 19:40:24 +00:00
115 lines
3.8 KiB
Plaintext
115 lines
3.8 KiB
Plaintext
sndfile-regtest
|
|
===============
|
|
|
|
The 'sndfile-regtest' program is a regression test-suite for libsndile.
|
|
|
|
This program is intended to allow anyone who has an interest in the
|
|
reliability and correctness of libsndfile to do their own regression
|
|
testing. From the point of view of the libsndfile developers, this
|
|
program now allows for distributed regression testing of libsndfile
|
|
which will make libsndfile better.
|
|
|
|
|
|
How Does it Work
|
|
----------------
|
|
Anyone who wishes to take part in the distributed regression testing of
|
|
libsndfile can download the regression test program and install it.
|
|
|
|
Once installed the user can start collecting files and adding them to
|
|
their own personal database. Then, as new versions of libsndfile come
|
|
out, the user should test the new library version against their database
|
|
of files (instructions below).
|
|
|
|
Any files which were successfully added to the database in the past but
|
|
now fail the check with the new library version represent a regression.
|
|
The user should then contact the libsndfile developers so that a copy
|
|
of the test file can be made available to the developers.
|
|
|
|
|
|
Requirements
|
|
------------
|
|
The regression test program uses sqlite3 as the database engine. On
|
|
Debian, the required packages are :
|
|
|
|
sqlite3
|
|
libsqlite3-0
|
|
libsqlite3-dev
|
|
|
|
but similar packages should be available on any other Linux style
|
|
system.
|
|
|
|
The regression test currently only compiles under Unix-like systems.
|
|
At some time in the future the regression test will distributed along
|
|
with the libsndfile source code distribution.
|
|
|
|
|
|
Organization of Files
|
|
---------------------
|
|
The regession test program keeps its database file in the directory it
|
|
is run from. In addition, the database only contains information about
|
|
the files, not the files themselves.
|
|
|
|
This means that database file should probably be kept in the same
|
|
directory (or a directory above) the test files.
|
|
|
|
|
|
Setting it Up for the First Time
|
|
--------------------------------
|
|
The sndfile-regtest program should be on your PATH. You can then cd into
|
|
the directory where you intend to keep you test files and
|
|
run the command:
|
|
|
|
sndfile-regtest --create-db
|
|
|
|
which creates a file named '.sndfile-regtest.db' in the current directory.
|
|
|
|
Files can then be added to the database using the command:
|
|
|
|
sndfile-regtest --add-file file1.wav
|
|
|
|
The --add-file option allows more than one file to be added at a time
|
|
using:
|
|
|
|
sndfile-regtest --add-file file1.wav file2.aif .....
|
|
|
|
|
|
Checking Files
|
|
--------------
|
|
One or more files that have already been added to the database can be
|
|
checked using:
|
|
|
|
sndfile-regtest --check-file file1.wav file2.aif .....
|
|
|
|
It is also possible to check all files in the database using:
|
|
|
|
sndfile-regtest --check-all
|
|
|
|
|
|
Running a Regression Test
|
|
-------------------------
|
|
Once you have a collection of files and a database it is possible to test
|
|
new versions of libsndfile before you install them. If for instance you
|
|
have just compiled a new version of libsndfile in the directory
|
|
/usr/src/libsndfile-X.Y.Z, then you can use an existing sndfile-regtest
|
|
binary with the new libsndfile using something like:
|
|
|
|
LD_PRELOAD=/usr/src/libsndfile-X.Y.Z/src/.libs/libsndfile.so.X.Y.Z \
|
|
sndfile-regtest --check-all
|
|
|
|
|
|
Reporting Regressions
|
|
---------------------
|
|
Any user who finds a file which was added to the regression database with
|
|
an earlier version of libsndfile and then fails the check with a later
|
|
version of the library should contact the author (erikd at mega dash nerd
|
|
dot com). If possible place the file on a web server and email the author
|
|
a link to it.
|
|
|
|
|
|
--------------------------------------------------------------------------
|
|
# Do not edit or modify anything in this comment block.
|
|
# The arch-tag line is a file identity tag for the GNU Arch
|
|
# revision control system.
|
|
#
|
|
# arch-tag: 174661f1-9874-424e-8d8b-301d0322dfdb
|