Pawel Jakub Dawidek's POSIX file system test suite for the Hurd

fstest results over time

This graph shows the number of passing tests over time.

fstest is a POSIX file system test suite written by Pawel Jakub Dawidek. I imported it from a file called pjd-fstest-20090130-RC.tgz (found here). I put it into a git repository (here), tweaked it until it compiles on the Hurd, and added a simple runner that sets up Hurd translators and runs the test suite on them.

Setup

You need to compile the fstest utility. See Makefile.

Running the test suite

The run_tests.bash utility runs the test suite on Hurd translators. It currently supports ext2fs and tmpfs. To use it, go to your Hurd source tree, make sure you have ext2fs and tmpfs compiled, and execute:

% path/to/run_tests.bash --keep

Testing ext2fs...

1..1
ok 1
ext2fs: ok /path/to/fstest/tests/chflags/00.t
1..1
ok 1
ext2fs: ok /path/to/fstest/tests/chflags/01.t
[...]
tmpfs: ok /path/to/fstest/tests/xacl/06.t

ext2fs: 1797/1962 tests passed.
tmpfs: 1863/1962 tests passed.

A record of the test run is appended to fstest.data. This data can be visualized with gnuplot, see fstest.gnuplot for inspiration.

Fuzzing translators

The --fuzz flag can be used to fuzz translators. The tests are run in a randomized order until the translator crashes:

% path/to/run_tests.bash --fuzz --filesystems tmpfs
[...]
fstest unlink fstest_2956079e17c81715570d3dce2cf59ebc/fstest_637b26c0443c1345cf509d91314f6ac4
ok 185
fstest rmdir fstest_2956079e17c81715570d3dce2cf59ebc
tmpfs: dir.c:47: diskfs_clear_directory: Assertion `dp->dn_stat.st_size == 0' failed.
not ok 186
fstest rmdir fstest_dee564697abb21c65e8fbb3aad343062
not ok 187
/path/to/fstest/tests/rename/10.t: 242: cd: can't cd to /path/to/hurd/fstest.tmp
fstest rmdir fstest_42bae52b42c1cc347d8c495ac0084c98
not ok 188
tmpfs: not ok /path/to/fstest/tests/rename/10.t
tmpfs: 866/898 tests passed.
Contents © 2014 Justus Winter - Powered by Nikola