SDB:XFStests

Jump to: navigation, search


Tested on openSUSE

Recommended articles


How to run xfstests on openSUSE.

Situation

The XFS team brought xfstests with them from SGI in the early 2000's.

Since then it has been enhanced to include filesystem tests for a number of linux filesystems, but it has retained the original name.

It is not packaged for openSUSE, but it certainly can be downloaded, installed and run with little effort.


Procedure

Instructions for new xfstests testers:

These instructions are customized for openSUSE, but originally come from these 2 sources:

http://xfs.org/index.php/Getting_the_latest_source_code
http://www.how2forge.org/comment/reply/4443

First you need to get xfstests running:

First make sure you have the basic tools and packages (for SLE you need the SDK repos):

$ zypper install git gcc libtool automake gettext-tools libattr-devel libacl-devel libuuid-devel libblkid-devel btrfsprogs

Then install the basic xfs sources:

$ mkdir xfs_playground; cd xfs_playground
$ git clone git://oss.sgi.com/xfs/cmds/xfsprogs
$ git clone git://oss.sgi.com/xfs/cmds/xfstests

(You can use git clone https://github.com/adityadani/xfstests to get the one which has snapshot testing utility in it)

(If you are tracking the current version, use git pull from time to time to get the latest work)

$ cd xfsprogs
$ make
$ sudo make install-qa # try 'make install-dev' if this fails, it installs xfs header files
$ cd ../xfstests
$ make

Once the ‘make’ is successful you need to setup certain environment variables. You need to have two different partitions on your machine : 1] One as a test device. 2] One as a scratch device. (A scratch device is not mandatory. However certain tests need a scratch device.) Setting up the environment variables :

export TEST_DEV=test_device-name
export TEST_DIR=test_device-mount-point
export SCRATCH_DEV=scratch_device-name
export SCRATCH_MNT=scratch_device-mount-point
export FSTYP=btrfs

(Yes, the variable names are inconsistent. And assumes you are testing btrfs.)

At a minimum, btrfs, xfs, and ext4 are supported by xfstests.

Running Tests :

$ cd xfstests
$ ./check -g auto

The above command by default runs many of the tests in the xfs test suite. If you leave off the -g arg, it will try to run them all. There is also a quick group (-g quick) that should run in under 5 minutes. See the file "group" in the xfstests directory for a breakdown of which tests are in which group.


In order to run a specific test say test no : 102 then,

$ ./check 102
$ ./check 001 002 003 ….

(The check script tests the return value of each ‘test script’ and compares its

value with the expected output. If the test fails then it generates a diff in the file .out.bad )

Running Snapshot Tests :

Currently there exists only one test 256. You will need to get test 256 directly from the next4 team as it is still in development or use the following link https://github.com/adityadani/xfstests

In order to run the test : To run the tests both the devices/partitions need to be mounted.

Both btrfs and ext4dev are supported currently, but ext4dev takes undocumented tweaks to get working. Therefore try with btrfs first:

1] First set the environment variables as mentioned above.

2] Mount the device on the specified mount point.

mkfs.btrfs $TEST_DEV
mkfs.btrfs $SCRATCH_DEV

mount $TEST_DEV $TEST_DIR
mount $SCRATCH_DEV $SCRATCH_MNT

3] Run the test number 256

$ ./check 256

Please note the above test is still under development and hence has certain bugs.

See also

Related articles

External links