138 lines
3.6 KiB
Plaintext
138 lines
3.6 KiB
Plaintext
|
|
||
|
util-linux regression tests
|
||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
It's expected that for each invasive change or important bugfix you will
|
||
|
include a test to your patch.
|
||
|
|
||
|
Compile tests & run basic tests:
|
||
|
|
||
|
$ make check
|
||
|
|
||
|
Note that the configure option --disable-static disables many of libmount and
|
||
|
libblkid unit tests.
|
||
|
|
||
|
Run all tests including tests that require root permissions:
|
||
|
|
||
|
# cd tests
|
||
|
# ./run.sh [--verbose] [--memcheck]
|
||
|
|
||
|
Alternatively using sudo and make:
|
||
|
|
||
|
$ make check TS_COMMAND="true"
|
||
|
$ sudo -E make check TS_OPTS="--parallel=1"
|
||
|
|
||
|
note that as root you have to manually remove output and diff directories
|
||
|
|
||
|
# rm -rf output diff
|
||
|
|
||
|
or run 'make clean' as root.
|
||
|
|
||
|
|
||
|
Run subset of tests:
|
||
|
|
||
|
$ ./run.sh <test_directory-name>
|
||
|
|
||
|
for example:
|
||
|
|
||
|
$ ./run.sh blkid
|
||
|
$ ./run.sh libmount
|
||
|
|
||
|
The tests is possible to exclude by ./run.sh --exclude=<list> where the
|
||
|
<list> is blank separated test names in format "testdir/testname", for example:
|
||
|
|
||
|
$ ./run.sh --exclude="mount/move"
|
||
|
|
||
|
The --exclude is evaluated by the ./run.sh script only. See below
|
||
|
|
||
|
TS_OPT_testdir_[testscript_]fake=
|
||
|
|
||
|
environment variable which provides more powerful functionality to skip tests.
|
||
|
|
||
|
|
||
|
*** WARNING for root users ***
|
||
|
|
||
|
The tests touch your /etc/fstab, initialize loop devices or scsi_debug devices
|
||
|
if executed with root permissions.
|
||
|
|
||
|
Please, be careful and use these tests only for development and never on
|
||
|
production system.
|
||
|
|
||
|
|
||
|
environment variables
|
||
|
---------------------
|
||
|
|
||
|
TS_COMMAND
|
||
|
|
||
|
Evaluated by "make check" to override the default command (run.sh).
|
||
|
Example:
|
||
|
- build all test dependencies, but skip the actual test
|
||
|
$ make check TS_COMMAND="true"
|
||
|
|
||
|
TS_OPTS
|
||
|
|
||
|
Evaluated by "make check" to pass options.to run.sh (see ./run.sh --help).
|
||
|
Examples:
|
||
|
- run utmp tests only
|
||
|
$ make check TS_OPTS="--parallel=1 utmp"
|
||
|
|
||
|
TS_OPT_testdir_[testscript_]fake="<yes|no>"
|
||
|
|
||
|
Evaluated by any test script to skip certain tests.
|
||
|
Examples:
|
||
|
- skip all the tests within "fdisk" test-directory:
|
||
|
$ make check TS_OPT_fdisk_fake="yes"
|
||
|
|
||
|
- skip only "fdisk/bsd" test:
|
||
|
$ make check TS_OPT_fdisk_bsd_fake="yes"
|
||
|
|
||
|
- skip all "fdisk" tests except fdisk/bsd:
|
||
|
$ make check TS_OPT_fdisk_fake="yes" TS_OPT_fdisk_bsd_fake="no"
|
||
|
|
||
|
TS_OPT_testdir_[testscript_]known_fail="<yes|no>"
|
||
|
|
||
|
Similar usage like TS_OPT_*_fake above. "known_fail" means that the given
|
||
|
test will run but (negative) results will be ignored. The build log and test
|
||
|
diffs will still remind you about the issue.
|
||
|
|
||
|
TS_OPT_testdir_[testscript_]verbose="<yes|no>"
|
||
|
|
||
|
Set verbosity for certain tests. Similar usage like TS_OPT_*_fake above.
|
||
|
|
||
|
TS_OPT_testdir_[testscript_]memcheck="<yes|no>"
|
||
|
|
||
|
Run certain tests with valgrind. Similar usage like TS_OPT_*_fake above.
|
||
|
|
||
|
|
||
|
External services
|
||
|
-----------------
|
||
|
|
||
|
Travis CI - automatically executed for all github commits.
|
||
|
|
||
|
URL: https://travis-ci.org/karelzak/util-linux/
|
||
|
|
||
|
See .travis.yml for more details.
|
||
|
|
||
|
We require "sudo" to install additional stuff and to run the tests with
|
||
|
UID=0, it means that tests are executed on travis "legacy infrastructure".
|
||
|
|
||
|
|
||
|
Drone.io - automatically executed for all github commits.
|
||
|
|
||
|
URL: https://drone.io/github.com/karelzak/util-linux
|
||
|
|
||
|
The drone.io does not use any in-tree config file (like travis-ci), the
|
||
|
currently used configuration (maintained by Drone.io web UI):
|
||
|
|
||
|
MAKE_CHECK="root"
|
||
|
MAKE_CHECK_OPTS="--skip-loopdevs --exclude=mount/move"
|
||
|
source ./.travis-functions.sh
|
||
|
travis_install_script || exit
|
||
|
travis_before_script || exit
|
||
|
ret=0
|
||
|
travis_script || ret=$?
|
||
|
travis_after_script
|
||
|
exit $ret
|
||
|
|
||
|
yes, it shares the setup functions with travis-ci.
|