Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Mar 2022 16:26:16 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        freebsd-fs <freebsd-fs@freebsd.org>
Subject:   What's the best FS-agnostic test suite for a file system's data path operations?
Message-ID:  <CAOtMX2hJ_hnWbgvoivTB4yR3AhC5RKEeE1xHiw=kbYq5yjE=kQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
pjdfstest is great at testing control-path operations, like mkdir,
chmod, etc.  And it works on any POSIX-compliant file system.  But it
doesn't include any datapath operations like write, read, or
copy_file_range.

fsx is great for finding datapath bugs and it also works on any
posix-compliant operating system.  However, it's a random torture
test, not deterministic.

Does anybody have any good ideas for how to either turn fsx
deterministic, or else a good argument that random torture tests are
inherently superior to deterministic tests for datapath operations?
Alternatively, does anybody know of a good alternative to fsx?  I've
heard of fsstress and xfstests.  But the former looks pretty much like
an fsx clone, and the latter isn't totally file-system agnostic.

There's some urgency here: I've already had five inquiries about my
pjdfstest rewrite proposal for GSoC.  I hate turning people down, so
I'm wondering if I can extend the proposal to accomodate two students,
or maybe create a second proposal.  Some possibilities:

* Merge fsx into pjdfstest (my first idea)
* Extend fsx to include newer operations like copy_file_range and
fspacectl (probably too small for a whole summer)

Another GSoC idea would be to implement virtio-fs.  However, I haven't
done my own homework on that yet.  I don't know how hard it would be.
If anybody has any other ideas, please add them to the wiki at
https://wiki.freebsd.org/SummerOfCodeIdeas ASAP because there's a lot
of interest this year.

-Alan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2hJ_hnWbgvoivTB4yR3AhC5RKEeE1xHiw=kbYq5yjE=kQ>