On Thu, Feb 13, 2020 at 6:57 AM Amir Goldstein <amir73il@xxxxxxxxx> wrote: > > On Thu, Feb 13, 2020 at 2:05 AM Mauricio Faria de Oliveira > <mfo@xxxxxxxxxxxxx> wrote: > > > > Recently looking for an aufs test suite. The author clarified that > > 'There is no public test suite specific to aufs.' [1] at this time, > > and it looks like 'xfstests/tests/generic' should be enough [1, 2], > > and is clearly an improvement in terms of publicly available tests. > > > > Thus, building on top of the existing infrastructure for overlay, > > just introduce OVL_ALT_FSTYP that can be set to "aufs" to use it. > > (using overlay's upperdir as rw-branch and lowerdir as ro-branch). > > > > This is indeed a workaround^W simple change that does the job vs. > > creating a new FSTYP "aufs" and mechanically changing the number > > of places that check for "overlay" to just handle "aufs" as well. > > (so the effort is still small as aufs has no specific tests now.) > > Very nice! > Please update README.overlay. > Hi Amir, thanks for reviewing! Sure, will do in v2 with your other comments. > FYI, I made a similar small change to enable testing of fuse.overlay > with unionmount-testsuite: > https://github.com/amir73il/unionmount-testsuite/commit/a72c274e0f5d6d05ad7c563fc7eff42356bffd15 > Therefore: > 1. Your changes could be useful for testing fuse.overlay with xfstests > 2. You can just as easily test aufs with unionmount-testsuite - > The test coverage is mostly orthogonal to that of xfstests > (patches are welcome) Glad that you mentioned it; I didn't know about unionmount-testsuite yet. Right, both points are easy to address. I'll work on the changes here. > > > > Currently, running the generic + overlay (i.e., ./check -overlay) > > tests (and excluding a few [3] which either hang or keep looping) > > the numbers for aufs on loop devices on v5.4-based Ubuntu kernel > > show a relatively good starting base in terms of exercising code: > > > > - Ran: 645 tests > > - Not run: 483 tests > > - Failures: 21 tests > > I'd be interested to know the stats for the overlay/* tests. Out of the 71 tests in tests/overlay/*, 70 tests are listed in the log (overlay/061 isn't, not sure why yet.) Out of the 70 tests listed: 41 not run, 18 passed, 10 output mismatch, 1 expunged (overlay/019 hangs.) If you're interested in the individual test results, just let me know and I'll send the details as well. > > > > > So, hopefully this may be a starting point as an aufs test suite. > > > > [1] https://sourceforge.net/p/aufs/mailman/message/36918721/ > > [2] https://sourceforge.net/p/aufs/mailman/message/36918932/ > > [3] Steps: > > > > $ export OVL_ALT_FSTYP=aufs > > $ export FSTYP=ext4 > > $ export TEST_DEV=/dev/loop0 > > $ export TEST_DIR=/mnt/test > > $ export SCRATCH_DEV=/dev/loop1 > > $ export SCRATCH_MNT=/mnt/scratch > > > > $ sudo mkfs.$FSTYP -F $TEST_DEV > > $ sudo mkfs.$FSTYP -F $SCRATCH_DEV > > $ sudo mkdir $TEST_DIR $SCRATCH_MNT > > > > $ cat <<EOF >/tmp/exclude-tests > > generic/013 > > generic/070 > > generic/075 > > generic/112 > > generic/127 > > generic/461 > > generic/476 > > generic/522 > > generic/530 > > overlay/019 > > EOF > > > > $ sudo -E ./check -overlay -E /tmp/exclude-tests > > --- > > common/overlay | 6 ++++++ > > common/rc | 4 ++++ > > 2 files changed, 10 insertions(+) > > > > diff --git a/common/overlay b/common/overlay > > index 65c639e9c6d8..3b3351ed040e 100644 > > --- a/common/overlay > > +++ b/common/overlay > > @@ -20,6 +20,12 @@ _overlay_mount_dirs() > > local workdir=$3 > > shift 3 > > > > + if [ -n "$OVL_ALT_FSTYP" -a "$OVL_ALT_FSTYP" = "aufs" ]; then > > + $MOUNT_PROG -t aufs -o br=$upperdir=rw:$lowerdir=ro \ > > + `_common_dev_mount_options $*` > > + return $? > > + fi > > + > > $MOUNT_PROG -t overlay -o lowerdir=$lowerdir -o upperdir=$upperdir \ > > -o workdir=$workdir `_common_dev_mount_options $*` > > I think it would be better to define (in common/config): > > export OVL_FSTYP=${OVL_FSTYP:="overlay"} > > And make sure to always mount -t $OVL_FSTYP > then you won't need to check if OVL_ALT_FSTYP is non empty. > and setting OVL_FSTYP to "fuse.overlay" should mostly work. > Indeed, that's better. > I did find 5 overlay tests that do mount -t overlay not via any > of the common helpers, so you'll need to handle those, possibly > with another common helper that supports middle layers: > tests/overlay/011 > tests/overlay/035 > tests/overlay/052 > tests/overlay/053 > tests/overlay/062 Thanks for bringing that up, I didn't imagine to look at other mount calls. I'll work on your suggestions and send out a v2 (and look at unionmount-testsuite.) Again, thanks for reviewing, and for the constructive feedback. cheers, > > Thanks, > Amir. -- Mauricio Faria de Oliveira