_______________________
Building Linux:
- - cd into the xfstests directory and run make.
+ - cd into the xfstests directory
+ - run make
+ - run make install
Building IRIX:
- cd into the xfstests directory
set the environment variable DISABLE_UDF_TEST to 1.
- - create two partitions to use for testing
+ - create one or two partitions to use for testing
- one TEST partition
- format as XFS, mount & optionally populate with
NON-IMPORTANT stuff
- - one SCRATCH partition
+ - one SCRATCH partition (optional)
- leave empty and expect this partition to be clobbered
- by some tests.
-
- (these must be two DIFFERENT partitions)
+ by some tests. If this is not provided, many tests will
+ not be run.
+ (SCRATCH and TEST must be two DIFFERENT partitions)
+ OR
+ - for btrfs only: some btrfs test cases will need 3 or more independent
+ SCRATCH disks which should be set using SCRATCH_DEV_POOL (for eg:
+ SCRATCH_DEV_POOL="/dev/sda /dev/sdb /dev/sdc") with which
+ SCRATCH_DEV should be unused by the tester, and for the legacy
+ support SCRATCH_DEV will be set to the first disk of the
+ SCRATCH_DEV_POOL by xfstests script.
- setup your environment
- setenv TEST_DEV "device containing TEST PARTITION"
- setenv TEST_DIR "mount point of TEST PARTITION"
- - setenv SCRATCH_DEV "device containing SCRATCH PARTITION"
- - setenv SCRATCH_MNT "mount point for SCRATCH PARTITION"
- - setenv TAPE_DEV "tape device for testing xfsdump"
- - setenv RMT_TAPE_DEV "remote tape device for testing xfsdump"
- - setenv RMT_IRIXTAPE_DEV "remote IRIX tape device for testing xfsdump"
- optionally:
+ - setenv SCRATCH_DEV "device containing SCRATCH PARTITION" OR
+ (btrfs only) setenv SCRATCH_DEV_POOL "to 3 or more SCRATCH disks for
+ testing btrfs raid concepts"
+ - setenv SCRATCH_MNT "mount point for SCRATCH PARTITION"
+ - setenv TAPE_DEV "tape device for testing xfsdump"
+ - setenv RMT_TAPE_DEV "remote tape device for testing xfsdump"
+ - setenv RMT_IRIXTAPE_DEV "remote IRIX tape device for testing xfsdump"
- setenv SCRATCH_LOGDEV "device for scratch-fs external log"
- setenv SCRATCH_RTDEV "device for scratch-fs realtime data"
- setenv TEST_LOGDEV "device for test-fs external log"
- if TEST_LOGDEV and/or TEST_RTDEV, these will always be used.
- if SCRATCH_LOGDEV and/or SCRATCH_RTDEV, the USE_EXTERNAL
environment variable set to "yes" will enable their use.
- - or add a case to the switch in common.config assigning
+ - setenv DIFF_LENGTH "number of diff lines to print from a failed test",
+ by default 10, set to 0 to print the full diff
+ - setenv FSTYP "the filesystem you want to test", the filesystem
+ type is devised from the TEST_DEV device, but you may want to
+ override it; if unset, the default is 'xfs'
+ - or add a case to the switch in common/config assigning
these variables based on the hostname of your test
machine
- or add these variables to a file called local.config and keep that
tape which can be overwritten.
- make sure $TEST_DEV is a mounted XFS partition
- - make sure that $SCRATCH_DEV contains nothing useful
+ - make sure that $SCRATCH_DEV or $SCRATCH_DEV_POOL contains nothing useful
Running tests:
- cd xfstests
- By default the tests suite will run xfs tests:
- - ./check 001 002 003 ... or you can explicitly run a filesystem:
- ./check -xfs [test(s)]
- - You can run a range of tests: ./check 067-078
+ - ./check '*/001' '*/002' '*/003'
+ - ./check '*/06?'
+ - You can explicitly specify NFS, 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)]
+ - To randomize test order: ./check -r [test(s)]
The check script tests the return value of each script, and
When developing a new test script keep the following things in
mind. All of the environment variables and shell procedures are
- available to the script once the "common.rc" file has been
+ available to the script once the "common/rc" file has been
sourced.
1. The tests are run from an arbitrary directory. If you want to
_within_tolerance - fancy numerical "close enough is good
enough" filter for deterministic
output ... see comments in
- common.filter for an explanation
+ common/filter for an explanation
_filter_date - turn ctime(3) format dates into the
string DATE for deterministic
output
+ _cat_passwd, - dump the content of the password
+ _cat_group or group file (both the local file
+ and the content of the NIS database
+ if it is likely to be present)
+
+ 5. General recommendations, usage conventions, etc.:
+ - When the content of the password or group file is
+ required, get it using the _cat_passwd and _cat_group
+ functions, to ensure NIS information is included if NIS
+ is active.
+ - When calling getfacl in a test, pass the "-n" argument so
+ that numeric rather than symbolic identifiers are used in
+ the output.
+
Verified output:
Each test script has a numerical name, e.g. 007, and an associated
- variable directory contents
- imprecise numbers, especially sizes and times
- Use the "remake" script to recreate the verified output for one
- or more tests.
-
Pass/failure:
The script "check" may be used to run one or more tests.