Mauricio Faria de Oliveira:
> By generic do you specifically mean the xfstests/tests/generic test-suite,
> or just any filesystem testing tools in general?
Both of them.
> Would you suggest to test more than just the combination of one read-write
> branch on top of a read-only branch, or is that good enough for most
> purposes?
It depends on the use-case. I mean what you plan to use aufs. If it is
much simpler one, then overlayfs or something will be a good option.
One RW + one RO is the simplest combination generally. But if you want,
you can add the branches upto 128 (by default), and there are more
branch attributes other than RW and RO. Of course, you can make aufs
with only one branch, but I don't think it meaningful obviously.
> Ok, got it. If you have a description handy of the tools/configuration
> that you run for testing, it would be great to know, just to make sure I
> can catch a breakage before sending it to break on your tests. :-)
I am afraid it won't help you, but I'll try here.
- I have hundreds of test scripts, and it taks about 10 hours to run
them all, including various combinations of branch filesystems. The
words "this version of aufs is fully tested" in aufs web page means
that I run all tests for that version, and "less tested" means I run
them with only one branch combination which takes abount 1 hour.
- Most of the test scripts are written by me, some are posted to this
ML. The test scripts execute several binary commands. Most of these
commands are generic unix commands, but some are written by me or
posted from users.
Here is a sample from my test scripts. It tests readdir (using libau.so
hook )with bind-mount under aufs. You may find a similar script in
xftests, ltp or something.
----------------------------------------
#!/bin/sh
set -e
CWD=$PWD
Module=aufs
RO=${RO:-ext2}
RW=${RW:-ext3}
#Opts=
base=$HOME/transparent/lktr
base=$HOME/transparent/test
cd $base
. ./prolog.sh
. ./libgen.sh
f()
{
set -x
LD_PRELOAD=libau.so LIBAU=all /tmp/bind-readdir $@
/tmp/bind-readdir $@
find $@ -printf '%i %p\n'
set +x
}
mkdir -p $tmp.etc
> $tmp.etc/hosts
f $tmp.etc
sudo mount -o bind /etc/hosts $tmp.etc/hosts
f $tmp.etc
sudo umount $tmp.etc/hosts
Plain
MountUnion
mkdir -p $tmp.tA/tB
echo tmp > $tmp.tA/tB/fC
echo tmp > $tmp.tA/tB/fD
#set -x
cd $Root/u
mkdir -p dirA/dirB
echo au > dirA/dirB/fileC
echo au > dirA/dirB/fileD
f dirA dirA/dirB
sudo mount -o bind $tmp.tA dirA
f dirA dirA/tB
sudo umount dirA
sudo mount -o bind $tmp.tA/tB/fC dirA/dirB/fileC
f dirA dirA/dirB
sudo umount dirA/dirB/fileC
set +x
rm -fr $tmp.*
cd
Umount
----------------------------------------
J. R. Okajima