]> git.ipfire.org Git - thirdparty/util-linux.git/blobdiff - Documentation/howto-tests.txt
login: add support for directories in MOTD_FILE=
[thirdparty/util-linux.git] / Documentation / howto-tests.txt
index c812a39290b3bc5a64dd89b87800e3a88d10a8a7..b8a6200732660e30277ce740046b36bc3ea5b671 100644 (file)
  It's expected that for each invasive change or important bugfix you will
  include a test to your patch.
 
+ Compile binaries, libs, extra test programs and run the basic tests:
 
- Run all tests:
+       $ make check
+
+ Compile extra test programs only:
+
+       $ make check-programs
+
+ 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 [options, see --help]
+
+       Alternatively using sudo and make:
+
+       $ make check-programs
+       $ 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.sh [--verbose]
 
  Run subset of tests:
 
-       ./run.sh <test_directory-name>
+       $ cd tests
+       $ ./run.sh <test_directory-name>
 
         for example:
 
-              ./run.sh blkid
-              ./run.sh fdisk
+              $ ./run.sh blkid
+              $ ./run.sh libmount
+
+        or individual test script, for example:
+
+             $ ./ts/cal/year
+
+ 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):
 
- *** WARNING ***
+       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
 
- The tests touch your /etc/fstab. Please, be careful and use
- these tests only for development and never on production system.
+    yes, it shares the setup functions with travis-ci.