Testing 16 disk configurations takes how long?
blacky+fai at fluffbunny.de
Sat Mar 16 01:56:23 CET 2013
root at storage-dev:~/_testlab/fai-setup-storage# time ./run-tests
Found the following testcases:
[... output omitted ...]
Processing testcase [31_md] 02_raid1-wipe
Adding sdb to the list of required devices
Adding sdc to the list of required devices
- preparing disk configuration
- executing testcase
- testcase passed verification
Completed 16 testcases, 1 tests did not match expected output.
Yep. 8 seconds.
I felt another need to scratch and this is my prototype ->
It's a reimplementation of my initial attempt to create a test-harness for
setup storage. (I'm mainly interested in FAI 4.x's setup-storage.) It's main
advantage is in being able to test disk configurations without actually
requiring a matching set of physical disks. It does this by replacing the
/dev/sd#, /dev/hd# device links with loop devices mounted on top of sparse
files. (Don't worry to much about the required black magic.) This makes it
easily possible to test configurations with up to 8 256GB disks on a system
with 512MB of RAM and 2GB of disk space.
Sounds good. What's the itch?
Mainly it is to make sure setup-storage delivers the same result over and over
again. Therefor the tool can automatically tell if a result has changed and
warn you about it. And it does this _FAST_. The long term goal is to fix these
stupid LVM-related bugs in setup-storage without introducing any new bugs or
subtle changes. I'd like to be able to change the code and rerun 200+ tests to
make sure everything is still as it should - in about 5 minutes or so...
But I'm too lazy to write these 200+ tests all by myself, so I turn to the
mailing list. (again) Please send me all the disk_configs you care about. I
want to see how my tool and setup-storage copes with these configs. (I request
permission to add these configs to the git repository and therefore make them
publicly available. If you don't want that, then please tell me.)
The procedure for adding a new testcase is quite simple:
* pick/create a directory in t/
* store the disk configuration as t/<directory>/<number>_<name>
* provide a <number>_<name>.preformat disk configuration if you want
to start with a 'dirty' (partitioned) disk setup
* execute run-tests with the '--add-new' / '-a' option
Debugging a failed testcase is very easy too:
* execute run-tests with the '--show-diff' / '-d' option
I'd like to think it's pretty decent for a prototype ;)
 8 is the number of predefined loop devices, 256GB is the upper limit for
files backed by a tmpfs volume. The size limit can definitely be raised to
multi-terabyte values when using a 'real' filesystem instead of tmpfs to store
the loop-mounted device files.
 AB, BK, TT, TU: I still have your configs and will run my tool against
them. Since I don't know which one of these where to be kept private I will
treat all of them confidential.
More information about the linux-fai