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

Reply via email to