Questions about xfstests regarding porting it to test ext4 filesystems
tytso at mit.edu
Fri May 15 06:21:46 CDT 2009
On Fri, May 15, 2009 at 08:53:29AM +1000, Dave Chinner wrote:
> > 2) Why is the TESTDIR have to be a persistent xfs volume? I noticed
> > that when testing UDF and NFS, the scratch volume is used (and $testdir
> > is set to the point at the scratch directory). Is there some
> > fundamental reason why there must be an XFS volume mounted, even if the
> > fundamental intention is to test some other filesystem type, whether
> > it's UDF, NFS, or Ext4?
> It is persistent because it ages the filesystem. If you run xfsqa
> repeatedly on the same machine (e.g. for months on end), the TESTDIR
> gets aged and so we exercise aged filesystems as well as a new fs'
> (scratch). There is no reason it really needs to be XFS - it could
> be ext4, UDF, etc - as long as it is persistent.
At the moment there is a test in common.rc that seems to force that
TEST_DEV is a mounted xfs filesystem:
candygram:/host/usr/projects/e2fsprogs/xfstests# ./check 001
common.rc: Error: $TEST_DEV (/dev/sdb) is not a MOUNTED xfs filesystem
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sdb ext4 20642428 522392 19071460 3% /test
Sounds like removing that test would be the right thing to do?
> > 3) How much latitude/interest is there in modifying xfstests to be a bit
> > more filesystem independent?
> Plenty, I think. While it has lots of XFS specific stuff, many of
> the tests are generic and have no XFS dependence at all. And many
> of the tests that rely on preallocation and block mapping could be
> made generic quite easily now. ;)
What would people think about taking xfs_io, stripping out the
xfs-specific bits, and creating an fs_testio program that would live
in the xfstests tree? Then the tests that don't need any of the XFS
bits could simply use fs_testio and not need to build and install
Also, maybe we need to have an --disable-xfs option to configure?
Right now for some reason a full make on blows up, probably because
the xfsprogs/xfslibs-dev packages in Ubuntu 9.04 aren't new enough for
whatever xfstests requires:
make: Entering directory `/usr/projects/e2fsprogs/xfstests/src'
/usr/bin/libtool --tag=CC --mode=link gcc loggen.c -o loggen -g -O2 -g -O2 -DDEBUG -I../include -DVERSION=\"1.0.0\" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall
libtool: link: gcc loggen.c -o loggen -g -O2 -g -O2 -DDEBUG -I../include -DVERSION=\"1.0.0\" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall
loggen.c: In function 'loggen_unmount':
loggen.c:143: warning: implicit declaration of function 'xlog_assign_lsn'
/tmp/ccey5aXu.o: In function `loggen_empty':
/usr/projects/e2fsprogs/xfstests/src/loggen.c:211: undefined reference to `xlog_assign_lsn'
/usr/projects/e2fsprogs/xfstests/src/loggen.c:263: undefined reference to `xlog_assign_lsn'
/tmp/ccey5aXu.o: In function `loggen_unmount':
/usr/projects/e2fsprogs/xfstests/src/loggen.c:143: undefined reference to `xlog_assign_lsn'
/usr/projects/e2fsprogs/xfstests/src/loggen.c:160: undefined reference to `xlog_assign_lsn'
collect2: ld returned 1 exit status
distcc ERROR: compile loggen.c on localhost failed
More information about the xfs