fsx
— File System
eXerciser
fsx |
[-hqVv ] [-b
OPNUM] [-f
PATH] [-m
FROM:TO] [-N
NUMOPS] [-P
DIRPATH] [-S
SEED] [FILENAME] |
The fsx
utility tests file system I/O
routines for correctness, with random input. It generates a pseudorandom
sequence of file modifications and applies them to a file on the file system
under test. On every read, it verifies the expected data. It's highly
configurable, and the test sequence is 100% reproducible according to a seed
value. If a failure is detected, fsx
will log the
most recent operations and write the expected file contents to
FILENAME.fsxgood.
The options are as follows:
-b
OPNUM
- Begin real I/O at operation number OPNUM. Previous
operations will be simulated, and their cumulative effect written to the
file just before real I/O starts.
-h
,
--help
- Print usage information.
-f
PATH
- Load configuration from PATH. The configuration file
describes the types of operations that
fsx
will
issue, whereas the other operations describe how
fsx
will issue them. Generally the user should
customize the configuration file for each file system of interest. See the
example configuration file for documentation of its contents.
-m
FROM:TO
- Monitor operations within the byte range [FROM,TO).
All operations in this range will be logged at the
LOG_WARN
log level.
-N
NUMOPS
- Terminate after processing NUMOPS operations. If
this option is not specified,
fsx
will run until
interrupted or a failure is detected.
-q
,
--quiet
- Decrease verbosity. This option may be specified up to two times.
-P
DIRPATH
- On failure, save artifacts to the directory named by
DIRPATH.
-S
SEED
- Seed the random number generator with this value. By default,
fsx
will select a seed pseudorandomly, and log it
to
stderr.
-V
,
--version
- Print the program's version.
-v
,
--verbose
- Increase logging verbosity. This option may be specified up to three
times.
The fsx
utility exits 0 on success,
and >0 if an error occurs.
The first version of fsx
was written in C
at Apple Computer, beginning in 1998, by Avadis Tevanian
Jr. It was imported into FreeBSD 5.0 by
Jordan Hubbard
<jkh@FreeBSD.org>, but
only as a development tool. It was never installed as part of any release.
It's had occasional enhancements since then.
fsx
was independently imported into Linux
in 2001 by user robbiew, and has occasionally merged
in features from the FreeBSD version.
A tool by the same name was included in DEC Unix 4.0, but I don't
think it shared any code.
This version is a full rewrite in Rust, by Alan
Somers
<asomers@FreeBSD.org>.