BUILDING THE FSQA SUITE
_______________________
-Building Linux:
- - cd into the xfstests directory
- - install prerequisite packages
- For example, for Ubuntu:
- sudo apt-get install xfslibs-dev uuid-dev libtool-bin \
- e2fsprogs automake gcc libuuid1 quota attr libattr1-dev make \
- libacl1-dev libaio-dev xfsprogs libgdbm-dev gawk fio dbench \
- uuid-runtime
- For Fedora, RHEL, or CentOS:
- yum install acl attr automake bc dbench dump e2fsprogs fio \
- gawk gcc indent libtool lvm2 make psmisc quota sed \
- xfsdump xfsprogs \
- libacl-devel libattr-devel libaio-devel libuuid-devel \
- openssl-devel xfsprogs-devel btrfs-progs-devel
- (Older distributions may require xfsprogs-qa-devel as well.)
- (Note that for RHEL and CentOS, you may need the EPEL repo.)
- - run make
- - run make install
- - create fsgqa test user ("sudo useradd fsgqa")
- - create 123456-fsgqa test user ("sudo useradd 123456-fsgqa")
+- cd into the xfstests directory
+- install prerequisite packages
+ For example, for Ubuntu:
+ sudo apt-get install xfslibs-dev uuid-dev libtool-bin \
+ e2fsprogs automake gcc libuuid1 quota attr libattr1-dev make \
+ libacl1-dev libaio-dev xfsprogs libgdbm-dev gawk fio dbench \
+ uuid-runtime python sqlite3
+ For Fedora, RHEL, or CentOS:
+ yum install acl attr automake bc dbench dump e2fsprogs fio \
+ gawk gcc indent libtool lvm2 make psmisc quota sed \
+ xfsdump xfsprogs \
+ libacl-devel libattr-devel libaio-devel libuuid-devel \
+ xfsprogs-devel btrfs-progs-devel python sqlite
+ (Older distributions may require xfsprogs-qa-devel as well.)
+ (Note that for RHEL and CentOS, you may need the EPEL repo.)
+- run make
+- run make install
+- create fsgqa test user ("sudo useradd fsgqa")
+- create 123456-fsgqa test user ("sudo useradd 123456-fsgqa")
-Building IRIX:
- - cd into the xfstests directory
- - set the ROOT and TOOLROOT env variables for IRIX appropriately
- - run ./make_irix
-
______________________
USING THE FSQA SUITE
______________________
-Preparing system for tests (IRIX and Linux):
+Preparing system for tests:
- compile XFS into your kernel or load XFS modules
- install administrative tools specific to the filesystem you wish to test
- If you wish to run the udf components of the suite install
- mkfs_udf and udf_db for IRIX and mkudffs for Linux. Also download and
- build the Philips UDF Verification Software from
- http://www.extra.research.philips.com/udf/, then copy the udf_test
+ mkudffs. Also download and build the Philips UDF Verification Software
+ from http://www.extra.research.philips.com/udf/, then copy the udf_test
binary to xfstests/src/. If you wish to disable UDF verification test
set the environment variable DISABLE_UDF_TEST to 1.
- setup your environment
Quick start:
- - copy config.local.example to config.local and edit as needed
+ - copy local.config.example to local.config and edit as needed
Or:
- setenv TEST_DEV "device containing TEST PARTITION"
- setenv TEST_DIR "mount point of TEST PARTITION"
run xfs_repair -n to check the filesystem; xfs_repair to rebuild
metadata indexes; and xfs_repair -n (a third time) to check the
results of the rebuilding.
- - set TEST_XFS_SCRUB=1 to have _check_xfs_filesystem run
- xfs_scrub -vd to scrub the filesystem metadata online before
- unmounting to run the offline check.
+ - xfs_scrub, if present, will always check the test and scratch
+ filesystems if they are still online at the end of the test.
+ It is no longer necessary to set TEST_XFS_SCRUB.
+ - setenv LOGWRITES_DEV to a block device to use for power fail
+ testing.
+ - setenv PERF_CONFIGNAME to a arbitrary string to be used for
+ identifying the test setup for running perf tests. This should
+ be different for each type of performance test you wish to run so
+ that relevant results are compared. For example 'spinningrust'
+ for configurations that use spinning disks and 'nvme' for tests
+ using nvme drives.
- or add a case to the switch in common/config assigning
these variables based on the hostname of your test
- By default the tests suite will run xfs tests:
- ./check '*/001' '*/002' '*/003'
- ./check '*/06?'
- - You can explicitly specify NFS/CIFS/UDF, otherwise the filesystem type will
- be autodetected from $TEST_DEV:
- ./check -nfs [test(s)]
- Groups of tests maybe ran by: ./check -g [group(s)]
See the 'group' file for details on groups
- - for udf tests: ./check -udf [test(s)]
- Running all the udf tests: ./check -udf -g udf
- - for running nfs tests: ./check -nfs [test(s)]
- - for running cifs/smb3 tests: ./check -cifs [test(s)]
- To randomize test order: ./check -r [test(s)]
+ - You can explicitly specify NFS/CIFS/OVERLAY, otherwise
+ the filesystem type will be autodetected from $TEST_DEV:
+ - for running nfs tests: ./check -nfs [test(s)]
+ - for running cifs/smb3 tests: ./check -cifs [test(s)]
+ - for overlay tests: ./check -overlay [test(s)]
+ The TEST and SCRATCH partitions should be pre-formatted
+ with another base fs, where the overlay dirs will be created
The check script tests the return value of each script, and
The recent pass/fail history is maintained in the file "check.log".
The elapsed time for the most recent pass for each test is kept
in "check.time".
+
+ The compare-failures script in tools/ may be used to compare failures
+ across multiple runs, given files containing stdout from those runs.
+
+__________________
+SUBMITTING PATCHES
+__________________
+
+Send patches to the fstests mailing list at fstests@vger.kernel.org.