Re: [git pull] more vfs bits

From: Sedat Dilek
Date: Sun Feb 22 2015 - 10:05:16 EST


On Sun, Feb 22, 2015 at 11:36 AM, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:
> On Sun, Feb 22, 2015 at 10:37 AM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
>> On Sun, Feb 22, 2015 at 10:32:02AM +0100, Sedat Dilek wrote:
>>
>>> How do you test?
>>
>> Mostly xfstests and LTP, plus assorted tests depending on the areas touched...
>> Any extra testing is welcome - the more, the merrier...
>
> As said I wanted to test with unionmount-testsuite from Git HEAD master.
>
> But...
>
> The README is out-of-date and...
>
> ...my python3 throws me a...
>
> $ LC_ALL=C ./run --ov --set-up 2>&1 | tee
> ../unionmount-testsuite-log_ov-set-up_$(uname -r).txt
> Traceback (most recent call last):
> File "./run", line 107, in <module>
> set_up(ctx)
> File "/home/wearefam/src/unionmount-testsuite/unionmount-testsuite-git/set_up.py",
> line 26, in set_up
> os.sync()
> AttributeError: 'module' object has no attribute 'sync'
>
> $ dpkg -l | grep python3
> ii python3
> 3.2.3-0ubuntu1.2 interactive
> high-level object-oriented language (default python3 version)
> ii python3-minimal
> 3.2.3-0ubuntu1.2 minimal subset of
> the Python language (default python3 version)
> ii python3.2
> 3.2.3-0ubuntu3.6 Interactive
> high-level object-oriented language (version 3.2)
> ii python3.2-minimal
> 3.2.3-0ubuntu3.6 Minimal subset of
> the Python language (version 3.2)
>
> AFAICS I had reported already the README needs a refresh.
>
> I will continue with LTP-lite testing and fio.
>

[ +Miklos ]

I switched from python-3.2 to python-3.4 from a 3rd-party PPA (see [1]
and [2]) here on Ubuntu/precise.

$ sudo add-apt-repository ppa:fkrull/deadsnakes
$ sudo apt-get update
$ sudo apt-get install python3.4 python3-deadsnakes

$ cd /usr/bin/
$ ln -sf python3.4 python3

$ python3 --version
Python 3.4.2

David, the requirement of which minimal python3 release should be
documented (README?).
Thanks.

As the mount-type changed mount_union.py needs a refresh, too.
We need to distinguish when OverlayFS is built as a module.

$ grep -i overlay /boot/config-3.19.0-9526.2-iniza-small
CONFIG_OVERLAY_FS=m

Formerly: CONFIG_OVERLAYFS_FS=m

diff --git a/mount_union.py b/mount_union.py
index 4999daa40989..e1963d6eb22a 100644
--- a/mount_union.py
+++ b/mount_union.py
@@ -27,6 +27,6 @@ def mount_union(ctx):
workdir = upper_mntroot + "/work"
os.mkdir(upperdir)
os.mkdir(workdir)
- system("mount -t overlayfs overlayfs " + union_mntroot +
+ system("mount -t overlay overlay " + union_mntroot +
" -olowerdir=" + lower_mntroot + ",upperdir=" +
upperdir + ",workdir=" + workdir)
ctx.note_upper_fs(upper_mntroot, testdir)

In the end I could run unionmount-testsuite on vanilla-upstream (w/o
vfs.git#for-linus, test results will follow).

$ sudo modprobe -v overlay

$ sudo LC_ALL=C ./run --ov 2>&1 | tee
../logs/results_unionmount-testsuite_$(uname -r).txt

Have more fun!

Regards,
- Sedat -


[1] http://askubuntu.com/a/290283
[2] http://askubuntu.com/questions/244544/how-do-i-install-python-3-3
***
*** ./run --ov --ts=0 open-plain
***
TEST open-plain.py:10: Open O_RDONLY
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
TEST open-plain.py:18: Open O_WRONLY
./run --open-file /mnt/a/foo101 -w -W q
./run --open-file /mnt/a/foo101 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/foo101 -w -W p
./run --open-file /mnt/a/foo101 -r -R pxxx:yyy:zzz
TEST open-plain.py:28: Open O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -W q
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/foo102 -a -W p
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzzqp
TEST open-plain.py:38: Open O_RDWR
./run --open-file /mnt/a/foo103 -r -w -W q
./run --open-file /mnt/a/foo103 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/foo103 -r -w -W p
./run --open-file /mnt/a/foo103 -r -R pxxx:yyy:zzz
TEST open-plain.py:48: Open O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -W q
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/foo104 -r -a -W p
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=1 open-plain
***
TEST open-plain.py:10: Open O_RDONLY
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
TEST open-plain.py:18: Open O_WRONLY
./run --open-file /mnt/a/foo101 -w -W q
./run --open-file /mnt/a/foo101 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/foo101 -w -W p
./run --open-file /mnt/a/foo101 -r -R pxxx:yyy:zzz
TEST open-plain.py:28: Open O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -W q
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/foo102 -a -W p
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzzqp
TEST open-plain.py:38: Open O_RDWR
./run --open-file /mnt/a/foo103 -r -w -W q
./run --open-file /mnt/a/foo103 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/foo103 -r -w -W p
./run --open-file /mnt/a/foo103 -r -R pxxx:yyy:zzz
TEST open-plain.py:48: Open O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -W q
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/foo104 -r -a -W p
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=0 open-trunc
***
TEST open-trunc.py:10: Open O_TRUNC|O_RDONLY
./run --open-file /mnt/a/foo100 -r -t -R
./run --open-file /mnt/a/foo100 -r -t -R
TEST open-trunc.py:18: Open O_TRUNC|O_WRONLY
./run --open-file /mnt/a/foo101 -w -t -W q
./run --open-file /mnt/a/foo101 -r -R q
./run --open-file /mnt/a/foo101 -w -t -W p
./run --open-file /mnt/a/foo101 -r -R p
TEST open-trunc.py:28: Open O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -t -W q
./run --open-file /mnt/a/foo102 -r -R q
./run --open-file /mnt/a/foo102 -a -t -W p
./run --open-file /mnt/a/foo102 -r -R p
TEST open-trunc.py:38: Open O_TRUNC|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -t -W q
./run --open-file /mnt/a/foo103 -r -R q
./run --open-file /mnt/a/foo103 -r -w -t -W p
./run --open-file /mnt/a/foo103 -r -R p
TEST open-trunc.py:48: Open O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -t -W q
./run --open-file /mnt/a/foo104 -r -R q
./run --open-file /mnt/a/foo104 -r -a -t -W p
./run --open-file /mnt/a/foo104 -r -R p
***
*** ./run --ov --ts=1 open-trunc
***
TEST open-trunc.py:10: Open O_TRUNC|O_RDONLY
./run --open-file /mnt/a/foo100 -r -t -R
./run --open-file /mnt/a/foo100 -r -t -R
TEST open-trunc.py:18: Open O_TRUNC|O_WRONLY
./run --open-file /mnt/a/foo101 -w -t -W q
./run --open-file /mnt/a/foo101 -r -R q
./run --open-file /mnt/a/foo101 -w -t -W p
./run --open-file /mnt/a/foo101 -r -R p
TEST open-trunc.py:28: Open O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -t -W q
./run --open-file /mnt/a/foo102 -r -R q
./run --open-file /mnt/a/foo102 -a -t -W p
./run --open-file /mnt/a/foo102 -r -R p
TEST open-trunc.py:38: Open O_TRUNC|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -t -W q
./run --open-file /mnt/a/foo103 -r -R q
./run --open-file /mnt/a/foo103 -r -w -t -W p
./run --open-file /mnt/a/foo103 -r -R p
TEST open-trunc.py:48: Open O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -t -W q
./run --open-file /mnt/a/foo104 -r -R q
./run --open-file /mnt/a/foo104 -r -a -t -W p
./run --open-file /mnt/a/foo104 -r -R p
***
*** ./run --ov --ts=0 open-creat
***
TEST open-creat.py:10: Open O_CREAT|O_RDONLY
./run --open-file /mnt/a/foo100 -r -c -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo100 -r -c -R :xxx:yyy:zzz
TEST open-creat.py:18: Open O_CREAT|O_WRONLY
./run --open-file /mnt/a/foo101 -w -c -W q
./run --open-file /mnt/a/foo101 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/foo101 -w -c -W p
./run --open-file /mnt/a/foo101 -r -c -R pxxx:yyy:zzz
TEST open-creat.py:28: Open O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -c -W q
./run --open-file /mnt/a/foo102 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/foo102 -a -c -W p
./run --open-file /mnt/a/foo102 -r -c -R :xxx:yyy:zzzqp
TEST open-creat.py:38: Open O_CREAT|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -c -W q
./run --open-file /mnt/a/foo103 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/foo103 -r -w -c -W p
./run --open-file /mnt/a/foo103 -r -c -R pxxx:yyy:zzz
TEST open-creat.py:48: Open O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -c -W q
./run --open-file /mnt/a/foo104 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/foo104 -r -a -c -W p
./run --open-file /mnt/a/foo104 -r -c -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=1 open-creat
***
TEST open-creat.py:10: Open O_CREAT|O_RDONLY
./run --open-file /mnt/a/foo100 -r -c -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo100 -r -c -R :xxx:yyy:zzz
TEST open-creat.py:18: Open O_CREAT|O_WRONLY
./run --open-file /mnt/a/foo101 -w -c -W q
./run --open-file /mnt/a/foo101 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/foo101 -w -c -W p
./run --open-file /mnt/a/foo101 -r -c -R pxxx:yyy:zzz
TEST open-creat.py:28: Open O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -c -W q
./run --open-file /mnt/a/foo102 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/foo102 -a -c -W p
./run --open-file /mnt/a/foo102 -r -c -R :xxx:yyy:zzzqp
TEST open-creat.py:38: Open O_CREAT|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -c -W q
./run --open-file /mnt/a/foo103 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/foo103 -r -w -c -W p
./run --open-file /mnt/a/foo103 -r -c -R pxxx:yyy:zzz
TEST open-creat.py:48: Open O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -c -W q
./run --open-file /mnt/a/foo104 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/foo104 -r -a -c -W p
./run --open-file /mnt/a/foo104 -r -c -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=0 open-creat-trunc
***
TEST open-creat-trunc.py:10: Open O_CREAT|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/foo100 -r -c -t -R
./run --open-file /mnt/a/foo100 -r -c -t -R
TEST open-creat-trunc.py:18: Open O_CREAT|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/foo101 -w -c -t -W q
./run --open-file /mnt/a/foo101 -r -R q
./run --open-file /mnt/a/foo101 -w -c -t -W p
./run --open-file /mnt/a/foo101 -r -R p
TEST open-creat-trunc.py:28: Open O_CREAT|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -c -t -W q
./run --open-file /mnt/a/foo102 -r -R q
./run --open-file /mnt/a/foo102 -a -c -t -W p
./run --open-file /mnt/a/foo102 -r -R p
TEST open-creat-trunc.py:38: Open O_CREAT|O_TRUNC|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -c -t -W q
./run --open-file /mnt/a/foo103 -r -R q
./run --open-file /mnt/a/foo103 -r -w -c -t -W p
./run --open-file /mnt/a/foo103 -r -R p
TEST open-creat-trunc.py:48: Open O_CREAT|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -c -t -W q
./run --open-file /mnt/a/foo104 -r -R q
./run --open-file /mnt/a/foo104 -r -a -c -t -W p
./run --open-file /mnt/a/foo104 -r -R p
***
*** ./run --ov --ts=1 open-creat-trunc
***
TEST open-creat-trunc.py:10: Open O_CREAT|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/foo100 -r -c -t -R
./run --open-file /mnt/a/foo100 -r -c -t -R
TEST open-creat-trunc.py:18: Open O_CREAT|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/foo101 -w -c -t -W q
./run --open-file /mnt/a/foo101 -r -R q
./run --open-file /mnt/a/foo101 -w -c -t -W p
./run --open-file /mnt/a/foo101 -r -R p
TEST open-creat-trunc.py:28: Open O_CREAT|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -c -t -W q
./run --open-file /mnt/a/foo102 -r -R q
./run --open-file /mnt/a/foo102 -a -c -t -W p
./run --open-file /mnt/a/foo102 -r -R p
TEST open-creat-trunc.py:38: Open O_CREAT|O_TRUNC|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -c -t -W q
./run --open-file /mnt/a/foo103 -r -R q
./run --open-file /mnt/a/foo103 -r -w -c -t -W p
./run --open-file /mnt/a/foo103 -r -R p
TEST open-creat-trunc.py:48: Open O_CREAT|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -c -t -W q
./run --open-file /mnt/a/foo104 -r -R q
./run --open-file /mnt/a/foo104 -r -a -c -t -W p
./run --open-file /mnt/a/foo104 -r -R p
***
*** ./run --ov --ts=0 open-creat-excl
***
TEST open-creat-excl.py:10: Open O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/foo100 -r -c -e -E EEXIST
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
TEST open-creat-excl.py:18: Open O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/foo101 -w -c -e -E EEXIST
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
TEST open-creat-excl.py:26: Open O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -c -e -E EEXIST
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
TEST open-creat-excl.py:34: Open O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
TEST open-creat-excl.py:42: Open O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=1 open-creat-excl
***
TEST open-creat-excl.py:10: Open O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/foo100 -r -c -e -E EEXIST
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
TEST open-creat-excl.py:18: Open O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/foo101 -w -c -e -E EEXIST
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
TEST open-creat-excl.py:26: Open O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -c -e -E EEXIST
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
TEST open-creat-excl.py:34: Open O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
TEST open-creat-excl.py:42: Open O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=0 open-creat-excl-trunc
***
TEST open-creat-excl-trunc.py:10: Open O_CREAT|O_EXCL|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/foo100 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
TEST open-creat-excl-trunc.py:18: Open O_CREAT|O_EXCL|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/foo101 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
TEST open-creat-excl-trunc.py:26: Open O_CREAT|O_EXCL|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -c -e -t -E EEXIST
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
TEST open-creat-excl-trunc.py:34: Open O_CREAT|O_EXCL|O_TRUNC|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -c -e -t -E EEXIST
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
TEST open-creat-excl-trunc.py:42: Open O_CREAT|O_EXCL|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -c -e -t -E EEXIST
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=1 open-creat-excl-trunc
***
TEST open-creat-excl-trunc.py:10: Open O_CREAT|O_EXCL|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/foo100 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
TEST open-creat-excl-trunc.py:18: Open O_CREAT|O_EXCL|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/foo101 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
TEST open-creat-excl-trunc.py:26: Open O_CREAT|O_EXCL|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/foo102 -a -c -e -t -E EEXIST
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
TEST open-creat-excl-trunc.py:34: Open O_CREAT|O_EXCL|O_TRUNC|O_RDWR
./run --open-file /mnt/a/foo103 -r -w -c -e -t -E EEXIST
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
TEST open-creat-excl-trunc.py:42: Open O_CREAT|O_EXCL|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/foo104 -r -a -c -e -t -E EEXIST
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=0 noent-plain
***
TEST noent-plain.py:10: Open O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -E ENOENT
./run --open-file /mnt/a/no_foo100 -r -E ENOENT
TEST noent-plain.py:18: Open O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -E ENOENT
./run --open-file /mnt/a/no_foo101 -w -E ENOENT
TEST noent-plain.py:26: Open O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -E ENOENT
./run --open-file /mnt/a/no_foo102 -a -E ENOENT
TEST noent-plain.py:34: Open O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -E ENOENT
./run --open-file /mnt/a/no_foo103 -r -w -E ENOENT
TEST noent-plain.py:42: Open O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -E ENOENT
./run --open-file /mnt/a/no_foo104 -r -a -E ENOENT
***
*** ./run --ov --ts=1 noent-plain
***
TEST noent-plain.py:10: Open O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -E ENOENT
./run --open-file /mnt/a/no_foo100 -r -E ENOENT
TEST noent-plain.py:18: Open O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -E ENOENT
./run --open-file /mnt/a/no_foo101 -w -E ENOENT
TEST noent-plain.py:26: Open O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -E ENOENT
./run --open-file /mnt/a/no_foo102 -a -E ENOENT
TEST noent-plain.py:34: Open O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -E ENOENT
./run --open-file /mnt/a/no_foo103 -r -w -E ENOENT
TEST noent-plain.py:42: Open O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -E ENOENT
./run --open-file /mnt/a/no_foo104 -r -a -E ENOENT
***
*** ./run --ov --ts=0 noent-trunc
***
TEST noent-trunc.py:10: Open O_TRUNC|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -t -E ENOENT
./run --open-file /mnt/a/no_foo100 -r -t -E ENOENT
TEST noent-trunc.py:18: Open O_TRUNC|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -t -E ENOENT
./run --open-file /mnt/a/no_foo101 -w -t -E ENOENT
TEST noent-trunc.py:26: Open O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -t -E ENOENT
./run --open-file /mnt/a/no_foo102 -a -t -E ENOENT
TEST noent-trunc.py:34: Open O_TRUNC|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -t -E ENOENT
./run --open-file /mnt/a/no_foo103 -r -w -t -E ENOENT
TEST noent-trunc.py:42: Open O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -t -E ENOENT
./run --open-file /mnt/a/no_foo104 -r -a -t -E ENOENT
***
*** ./run --ov --ts=1 noent-trunc
***
TEST noent-trunc.py:10: Open O_TRUNC|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -t -E ENOENT
./run --open-file /mnt/a/no_foo100 -r -t -E ENOENT
TEST noent-trunc.py:18: Open O_TRUNC|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -t -E ENOENT
./run --open-file /mnt/a/no_foo101 -w -t -E ENOENT
TEST noent-trunc.py:26: Open O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -t -E ENOENT
./run --open-file /mnt/a/no_foo102 -a -t -E ENOENT
TEST noent-trunc.py:34: Open O_TRUNC|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -t -E ENOENT
./run --open-file /mnt/a/no_foo103 -r -w -t -E ENOENT
TEST noent-trunc.py:42: Open O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -t -E ENOENT
./run --open-file /mnt/a/no_foo104 -r -a -t -E ENOENT
***
*** ./run --ov --ts=0 noent-creat
***
TEST noent-creat.py:10: Create O_CREAT|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -c -R
./run --open-file /mnt/a/no_foo100 -r -c -R
TEST noent-creat.py:18: Create O_CREAT|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -c -W q
./run --open-file /mnt/a/no_foo101 -r -R q
./run --open-file /mnt/a/no_foo101 -w -c -W p
./run --open-file /mnt/a/no_foo101 -r -R p
TEST noent-creat.py:28: Create O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -c -W q
./run --open-file /mnt/a/no_foo102 -r -R q
./run --open-file /mnt/a/no_foo102 -a -c -W p
./run --open-file /mnt/a/no_foo102 -r -R qp
TEST noent-creat.py:38: Create O_CREAT|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -c -W q
./run --open-file /mnt/a/no_foo103 -r -R q
./run --open-file /mnt/a/no_foo103 -r -w -c -W p
./run --open-file /mnt/a/no_foo103 -r -R p
TEST noent-creat.py:48: Create O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -c -W q
./run --open-file /mnt/a/no_foo104 -r -R q
./run --open-file /mnt/a/no_foo104 -r -a -c -W p
./run --open-file /mnt/a/no_foo104 -r -R qp
***
*** ./run --ov --ts=1 noent-creat
***
TEST noent-creat.py:10: Create O_CREAT|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -c -R
./run --open-file /mnt/a/no_foo100 -r -c -R
TEST noent-creat.py:18: Create O_CREAT|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -c -W q
./run --open-file /mnt/a/no_foo101 -r -R q
./run --open-file /mnt/a/no_foo101 -w -c -W p
./run --open-file /mnt/a/no_foo101 -r -R p
TEST noent-creat.py:28: Create O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -c -W q
./run --open-file /mnt/a/no_foo102 -r -R q
./run --open-file /mnt/a/no_foo102 -a -c -W p
./run --open-file /mnt/a/no_foo102 -r -R qp
TEST noent-creat.py:38: Create O_CREAT|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -c -W q
./run --open-file /mnt/a/no_foo103 -r -R q
./run --open-file /mnt/a/no_foo103 -r -w -c -W p
./run --open-file /mnt/a/no_foo103 -r -R p
TEST noent-creat.py:48: Create O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -c -W q
./run --open-file /mnt/a/no_foo104 -r -R q
./run --open-file /mnt/a/no_foo104 -r -a -c -W p
./run --open-file /mnt/a/no_foo104 -r -R qp
***
*** ./run --ov --ts=0 noent-creat-trunc
***
TEST noent-creat-trunc.py:10: Create O_CREAT|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -c -t -R
./run --open-file /mnt/a/no_foo100 -r -c -t -R
TEST noent-creat-trunc.py:18: Create O_CREAT|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -c -t -W q
./run --open-file /mnt/a/no_foo101 -r -R q
./run --open-file /mnt/a/no_foo101 -w -c -t -W p
./run --open-file /mnt/a/no_foo101 -r -R p
TEST noent-creat-trunc.py:28: Create O_CREAT|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -c -t -W q
./run --open-file /mnt/a/no_foo102 -r -R q
./run --open-file /mnt/a/no_foo102 -a -c -W p
./run --open-file /mnt/a/no_foo102 -r -R qp
TEST noent-creat-trunc.py:38: Create O_CREAT|O_TRUNC|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -c -t -W q
./run --open-file /mnt/a/no_foo103 -r -R q
./run --open-file /mnt/a/no_foo103 -r -w -c -W p
./run --open-file /mnt/a/no_foo103 -r -R p
TEST noent-creat-trunc.py:48: Create O_CREAT|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -c -t -W q
./run --open-file /mnt/a/no_foo104 -r -R q
./run --open-file /mnt/a/no_foo104 -r -a -c -W p
./run --open-file /mnt/a/no_foo104 -r -R qp
***
*** ./run --ov --ts=1 noent-creat-trunc
***
TEST noent-creat-trunc.py:10: Create O_CREAT|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -c -t -R
./run --open-file /mnt/a/no_foo100 -r -c -t -R
TEST noent-creat-trunc.py:18: Create O_CREAT|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -c -t -W q
./run --open-file /mnt/a/no_foo101 -r -R q
./run --open-file /mnt/a/no_foo101 -w -c -t -W p
./run --open-file /mnt/a/no_foo101 -r -R p
TEST noent-creat-trunc.py:28: Create O_CREAT|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -c -t -W q
./run --open-file /mnt/a/no_foo102 -r -R q
./run --open-file /mnt/a/no_foo102 -a -c -W p
./run --open-file /mnt/a/no_foo102 -r -R qp
TEST noent-creat-trunc.py:38: Create O_CREAT|O_TRUNC|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -c -t -W q
./run --open-file /mnt/a/no_foo103 -r -R q
./run --open-file /mnt/a/no_foo103 -r -w -c -W p
./run --open-file /mnt/a/no_foo103 -r -R p
TEST noent-creat-trunc.py:48: Create O_CREAT|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -c -t -W q
./run --open-file /mnt/a/no_foo104 -r -R q
./run --open-file /mnt/a/no_foo104 -r -a -c -W p
./run --open-file /mnt/a/no_foo104 -r -R qp
***
*** ./run --ov --ts=0 noent-creat-excl
***
TEST noent-creat-excl.py:10: Create O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -c -e -R
./run --open-file /mnt/a/no_foo100 -r -c -e -E EEXIST
./run --open-file /mnt/a/no_foo100 -r -R
TEST noent-creat-excl.py:19: Create O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -c -e -W q
./run --open-file /mnt/a/no_foo101 -r -R q
./run --open-file /mnt/a/no_foo101 -w -c -e -E EEXIST
./run --open-file /mnt/a/no_foo101 -r -R q
TEST noent-creat-excl.py:29: Create O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -c -e -W q
./run --open-file /mnt/a/no_foo102 -r -R q
./run --open-file /mnt/a/no_foo102 -a -c -e -E EEXIST
./run --open-file /mnt/a/no_foo102 -r -R q
TEST noent-creat-excl.py:39: Create O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -c -e -W q
./run --open-file /mnt/a/no_foo103 -r -R q
./run --open-file /mnt/a/no_foo103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/no_foo103 -r -R q
TEST noent-creat-excl.py:49: Create O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -c -e -W q
./run --open-file /mnt/a/no_foo104 -r -R q
./run --open-file /mnt/a/no_foo104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/no_foo104 -r -R q
***
*** ./run --ov --ts=1 noent-creat-excl
***
TEST noent-creat-excl.py:10: Create O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -c -e -R
./run --open-file /mnt/a/no_foo100 -r -c -e -E EEXIST
./run --open-file /mnt/a/no_foo100 -r -R
TEST noent-creat-excl.py:19: Create O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -c -e -W q
./run --open-file /mnt/a/no_foo101 -r -R q
./run --open-file /mnt/a/no_foo101 -w -c -e -E EEXIST
./run --open-file /mnt/a/no_foo101 -r -R q
TEST noent-creat-excl.py:29: Create O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -c -e -W q
./run --open-file /mnt/a/no_foo102 -r -R q
./run --open-file /mnt/a/no_foo102 -a -c -e -E EEXIST
./run --open-file /mnt/a/no_foo102 -r -R q
TEST noent-creat-excl.py:39: Create O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -c -e -W q
./run --open-file /mnt/a/no_foo103 -r -R q
./run --open-file /mnt/a/no_foo103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/no_foo103 -r -R q
TEST noent-creat-excl.py:49: Create O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -c -e -W q
./run --open-file /mnt/a/no_foo104 -r -R q
./run --open-file /mnt/a/no_foo104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/no_foo104 -r -R q
***
*** ./run --ov --ts=0 noent-creat-excl-trunc
***
TEST noent-creat-excl-trunc.py:10: Create O_CREAT|O_EXCL|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -c -e -t -R
./run --open-file /mnt/a/no_foo100 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/no_foo100 -r -R
TEST noent-creat-excl-trunc.py:19: Create O_CREAT|O_EXCL|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -c -e -t -W q
./run --open-file /mnt/a/no_foo101 -r -R q
./run --open-file /mnt/a/no_foo101 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/no_foo101 -r -R q
TEST noent-creat-excl-trunc.py:29: Create O_CREAT|O_EXCL|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -c -e -t -W q
./run --open-file /mnt/a/no_foo102 -r -R q
./run --open-file /mnt/a/no_foo102 -a -c -e -E EEXIST
./run --open-file /mnt/a/no_foo102 -r -R q
TEST noent-creat-excl-trunc.py:39: Create O_CREAT|O_EXCL|O_TRUNC|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -c -e -t -W q
./run --open-file /mnt/a/no_foo103 -r -R q
./run --open-file /mnt/a/no_foo103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/no_foo103 -r -R q
TEST noent-creat-excl-trunc.py:49: Create O_CREAT|O_EXCL|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -c -e -t -W q
./run --open-file /mnt/a/no_foo104 -r -R q
./run --open-file /mnt/a/no_foo104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/no_foo104 -r -R q
***
*** ./run --ov --ts=1 noent-creat-excl-trunc
***
TEST noent-creat-excl-trunc.py:10: Create O_CREAT|O_EXCL|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/no_foo100 -r -c -e -t -R
./run --open-file /mnt/a/no_foo100 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/no_foo100 -r -R
TEST noent-creat-excl-trunc.py:19: Create O_CREAT|O_EXCL|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/no_foo101 -w -c -e -t -W q
./run --open-file /mnt/a/no_foo101 -r -R q
./run --open-file /mnt/a/no_foo101 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/no_foo101 -r -R q
TEST noent-creat-excl-trunc.py:29: Create O_CREAT|O_EXCL|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/no_foo102 -a -c -e -t -W q
./run --open-file /mnt/a/no_foo102 -r -R q
./run --open-file /mnt/a/no_foo102 -a -c -e -E EEXIST
./run --open-file /mnt/a/no_foo102 -r -R q
TEST noent-creat-excl-trunc.py:39: Create O_CREAT|O_EXCL|O_TRUNC|O_RDWR
./run --open-file /mnt/a/no_foo103 -r -w -c -e -t -W q
./run --open-file /mnt/a/no_foo103 -r -R q
./run --open-file /mnt/a/no_foo103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/no_foo103 -r -R q
TEST noent-creat-excl-trunc.py:49: Create O_CREAT|O_EXCL|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/no_foo104 -r -a -c -e -t -W q
./run --open-file /mnt/a/no_foo104 -r -R q
./run --open-file /mnt/a/no_foo104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/no_foo104 -r -R q
***
*** ./run --ov --ts=0 sym1-plain
***
TEST sym1-plain.py:10: Open(symlink) O_RDONLY
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
TEST sym1-plain.py:19: Open(symlink) O_WRONLY
./run --open-file /mnt/a/direct_sym101 -w -W q
./run --open-file /mnt/a/direct_sym101 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/direct_sym101 -w -W p
./run --open-file /mnt/a/direct_sym101 -r -R pxxx:yyy:zzz
TEST sym1-plain.py:30: Open(symlink) O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_sym102 -a -W q
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/direct_sym102 -a -W p
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzzqp
TEST sym1-plain.py:41: Open(symlink) O_RDWR
./run --open-file /mnt/a/direct_sym103 -r -w -W q
./run --open-file /mnt/a/direct_sym103 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/direct_sym103 -r -w -W p
./run --open-file /mnt/a/direct_sym103 -r -R pxxx:yyy:zzz
TEST sym1-plain.py:52: Open(symlink) O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_sym104 -r -a -W q
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/direct_sym104 -r -a -W p
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=1 sym1-plain
***
TEST sym1-plain.py:10: Open(symlink) O_RDONLY
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
TEST sym1-plain.py:19: Open(symlink) O_WRONLY
./run --open-file /mnt/a/direct_sym101 -w -W q
./run --open-file /mnt/a/direct_sym101 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/direct_sym101 -w -W p
./run --open-file /mnt/a/direct_sym101 -r -R pxxx:yyy:zzz
TEST sym1-plain.py:30: Open(symlink) O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_sym102 -a -W q
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/direct_sym102 -a -W p
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzzqp
TEST sym1-plain.py:41: Open(symlink) O_RDWR
./run --open-file /mnt/a/direct_sym103 -r -w -W q
./run --open-file /mnt/a/direct_sym103 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/direct_sym103 -r -w -W p
./run --open-file /mnt/a/direct_sym103 -r -R pxxx:yyy:zzz
TEST sym1-plain.py:52: Open(symlink) O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_sym104 -r -a -W q
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/direct_sym104 -r -a -W p
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=0 sym1-trunc
***
TEST sym1-trunc.py:10: Open(symlink) O_TRUNC|O_RDONLY
./run --open-file /mnt/a/direct_sym100 -r -t -R
./run --open-file /mnt/a/direct_sym100 -r -t -R
TEST sym1-trunc.py:19: Open(symlink) O_TRUNC|O_WRONLY
./run --open-file /mnt/a/direct_sym101 -w -t -W q
./run --open-file /mnt/a/direct_sym101 -r -R q
./run --open-file /mnt/a/direct_sym101 -w -t -W p
./run --open-file /mnt/a/direct_sym101 -r -R p
TEST sym1-trunc.py:30: Open(symlink) O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_sym102 -a -t -W q
./run --open-file /mnt/a/direct_sym102 -r -R q
./run --open-file /mnt/a/direct_sym102 -a -t -W p
./run --open-file /mnt/a/direct_sym102 -r -R p
TEST sym1-trunc.py:41: Open(symlink) O_TRUNC|O_RDWR
./run --open-file /mnt/a/direct_sym103 -r -w -t -W q
./run --open-file /mnt/a/direct_sym103 -r -R q
./run --open-file /mnt/a/direct_sym103 -r -w -t -W p
./run --open-file /mnt/a/direct_sym103 -r -R p
TEST sym1-trunc.py:52: Open(symlink) O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_sym104 -r -a -t -W q
./run --open-file /mnt/a/direct_sym104 -r -R q
./run --open-file /mnt/a/direct_sym104 -r -a -t -W p
./run --open-file /mnt/a/direct_sym104 -r -R p
***
*** ./run --ov --ts=1 sym1-trunc
***
TEST sym1-trunc.py:10: Open(symlink) O_TRUNC|O_RDONLY
./run --open-file /mnt/a/direct_sym100 -r -t -R
./run --open-file /mnt/a/direct_sym100 -r -t -R
TEST sym1-trunc.py:19: Open(symlink) O_TRUNC|O_WRONLY
./run --open-file /mnt/a/direct_sym101 -w -t -W q
./run --open-file /mnt/a/direct_sym101 -r -R q
./run --open-file /mnt/a/direct_sym101 -w -t -W p
./run --open-file /mnt/a/direct_sym101 -r -R p
TEST sym1-trunc.py:30: Open(symlink) O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_sym102 -a -t -W q
./run --open-file /mnt/a/direct_sym102 -r -R q
./run --open-file /mnt/a/direct_sym102 -a -t -W p
./run --open-file /mnt/a/direct_sym102 -r -R p
TEST sym1-trunc.py:41: Open(symlink) O_TRUNC|O_RDWR
./run --open-file /mnt/a/direct_sym103 -r -w -t -W q
./run --open-file /mnt/a/direct_sym103 -r -R q
./run --open-file /mnt/a/direct_sym103 -r -w -t -W p
./run --open-file /mnt/a/direct_sym103 -r -R p
TEST sym1-trunc.py:52: Open(symlink) O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_sym104 -r -a -t -W q
./run --open-file /mnt/a/direct_sym104 -r -R q
./run --open-file /mnt/a/direct_sym104 -r -a -t -W p
./run --open-file /mnt/a/direct_sym104 -r -R p
***
*** ./run --ov --ts=0 sym1-creat
***
TEST sym1-creat.py:10: Open(symlink) O_CREAT|O_RDONLY
./run --open-file /mnt/a/direct_sym100 -r -c -R :xxx:yyy:zzz
./run --open-file /mnt/a/direct_sym100 -r -c -R :xxx:yyy:zzz
TEST sym1-creat.py:19: Open(symlink) O_CREAT|O_WRONLY
./run --open-file /mnt/a/direct_sym101 -w -c -W q
./run --open-file /mnt/a/direct_sym101 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/direct_sym101 -w -c -W p
./run --open-file /mnt/a/direct_sym101 -r -c -R pxxx:yyy:zzz
TEST sym1-creat.py:30: Open(symlink) O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_sym102 -a -c -W q
./run --open-file /mnt/a/direct_sym102 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/direct_sym102 -a -c -W p
./run --open-file /mnt/a/direct_sym102 -r -c -R :xxx:yyy:zzzqp
TEST sym1-creat.py:41: Open(symlink) O_CREAT|O_RDWR
./run --open-file /mnt/a/direct_sym103 -r -w -c -W q
./run --open-file /mnt/a/direct_sym103 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/direct_sym103 -r -w -c -W p
./run --open-file /mnt/a/direct_sym103 -r -c -R pxxx:yyy:zzz
TEST sym1-creat.py:52: Open(symlink) O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_sym104 -r -a -c -W q
./run --open-file /mnt/a/direct_sym104 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/direct_sym104 -r -a -c -W p
./run --open-file /mnt/a/direct_sym104 -r -c -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=1 sym1-creat
***
TEST sym1-creat.py:10: Open(symlink) O_CREAT|O_RDONLY
./run --open-file /mnt/a/direct_sym100 -r -c -R :xxx:yyy:zzz
./run --open-file /mnt/a/direct_sym100 -r -c -R :xxx:yyy:zzz
TEST sym1-creat.py:19: Open(symlink) O_CREAT|O_WRONLY
./run --open-file /mnt/a/direct_sym101 -w -c -W q
./run --open-file /mnt/a/direct_sym101 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/direct_sym101 -w -c -W p
./run --open-file /mnt/a/direct_sym101 -r -c -R pxxx:yyy:zzz
TEST sym1-creat.py:30: Open(symlink) O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_sym102 -a -c -W q
./run --open-file /mnt/a/direct_sym102 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/direct_sym102 -a -c -W p
./run --open-file /mnt/a/direct_sym102 -r -c -R :xxx:yyy:zzzqp
TEST sym1-creat.py:41: Open(symlink) O_CREAT|O_RDWR
./run --open-file /mnt/a/direct_sym103 -r -w -c -W q
./run --open-file /mnt/a/direct_sym103 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/direct_sym103 -r -w -c -W p
./run --open-file /mnt/a/direct_sym103 -r -c -R pxxx:yyy:zzz
TEST sym1-creat.py:52: Open(symlink) O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_sym104 -r -a -c -W q
./run --open-file /mnt/a/direct_sym104 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/direct_sym104 -r -a -c -W p
./run --open-file /mnt/a/direct_sym104 -r -c -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=0 sym1-creat-excl
***
TEST sym1-creat-excl.py:10: Open(symlink) O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/direct_sym100 -r -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
TEST sym1-creat-excl.py:19: Open(symlink) O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/direct_sym101 -w -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym101 -r -R :xxx:yyy:zzz
TEST sym1-creat-excl.py:28: Open(symlink) O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_sym102 -a -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
TEST sym1-creat-excl.py:37: Open(symlink) O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/direct_sym103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym103 -r -R :xxx:yyy:zzz
TEST sym1-creat-excl.py:46: Open(symlink) O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_sym104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=1 sym1-creat-excl
***
TEST sym1-creat-excl.py:10: Open(symlink) O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/direct_sym100 -r -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
TEST sym1-creat-excl.py:19: Open(symlink) O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/direct_sym101 -w -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym101 -r -R :xxx:yyy:zzz
TEST sym1-creat-excl.py:28: Open(symlink) O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_sym102 -a -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
TEST sym1-creat-excl.py:37: Open(symlink) O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/direct_sym103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym103 -r -R :xxx:yyy:zzz
TEST sym1-creat-excl.py:46: Open(symlink) O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_sym104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=0 sym2-plain
***
TEST sym2-plain.py:10: Open(symlink->symlink) O_RDONLY
./run --open-file /mnt/a/indirect_sym100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym100 -r -R :xxx:yyy:zzz
TEST sym2-plain.py:20: Open(symlink->symlink) O_WRONLY
./run --open-file /mnt/a/indirect_sym101 -w -W q
./run --open-file /mnt/a/indirect_sym101 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym101 -w -W p
./run --open-file /mnt/a/indirect_sym101 -r -R pxxx:yyy:zzz
TEST sym2-plain.py:32: Open(symlink->symlink) O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_sym102 -a -W q
./run --open-file /mnt/a/indirect_sym102 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/indirect_sym102 -a -W p
./run --open-file /mnt/a/indirect_sym102 -r -R :xxx:yyy:zzzqp
TEST sym2-plain.py:44: Open(symlink->symlink) O_RDWR
./run --open-file /mnt/a/indirect_sym103 -r -w -W q
./run --open-file /mnt/a/indirect_sym103 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym103 -r -w -W p
./run --open-file /mnt/a/indirect_sym103 -r -R pxxx:yyy:zzz
TEST sym2-plain.py:56: Open(symlink->symlink) O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_sym104 -r -a -W q
./run --open-file /mnt/a/indirect_sym104 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/indirect_sym104 -r -a -W p
./run --open-file /mnt/a/indirect_sym104 -r -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=1 sym2-plain
***
TEST sym2-plain.py:10: Open(symlink->symlink) O_RDONLY
./run --open-file /mnt/a/indirect_sym100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym100 -r -R :xxx:yyy:zzz
TEST sym2-plain.py:20: Open(symlink->symlink) O_WRONLY
./run --open-file /mnt/a/indirect_sym101 -w -W q
./run --open-file /mnt/a/indirect_sym101 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym101 -w -W p
./run --open-file /mnt/a/indirect_sym101 -r -R pxxx:yyy:zzz
TEST sym2-plain.py:32: Open(symlink->symlink) O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_sym102 -a -W q
./run --open-file /mnt/a/indirect_sym102 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/indirect_sym102 -a -W p
./run --open-file /mnt/a/indirect_sym102 -r -R :xxx:yyy:zzzqp
TEST sym2-plain.py:44: Open(symlink->symlink) O_RDWR
./run --open-file /mnt/a/indirect_sym103 -r -w -W q
./run --open-file /mnt/a/indirect_sym103 -r -R qxxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym103 -r -w -W p
./run --open-file /mnt/a/indirect_sym103 -r -R pxxx:yyy:zzz
TEST sym2-plain.py:56: Open(symlink->symlink) O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_sym104 -r -a -W q
./run --open-file /mnt/a/indirect_sym104 -r -R :xxx:yyy:zzzq
./run --open-file /mnt/a/indirect_sym104 -r -a -W p
./run --open-file /mnt/a/indirect_sym104 -r -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=0 sym2-trunc
***
TEST sym2-trunc.py:10: Open(symlink->symlink) O_TRUNC|O_RDONLY
./run --open-file /mnt/a/indirect_sym100 -r -t -R
./run --open-file /mnt/a/indirect_sym100 -r -t -R
TEST sym2-trunc.py:20: Open(symlink->symlink) O_TRUNC|O_WRONLY
./run --open-file /mnt/a/indirect_sym101 -w -t -W q
./run --open-file /mnt/a/indirect_sym101 -r -R q
./run --open-file /mnt/a/indirect_sym101 -w -t -W p
./run --open-file /mnt/a/indirect_sym101 -r -R p
TEST sym2-trunc.py:32: Open(symlink->symlink) O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_sym102 -a -t -W q
./run --open-file /mnt/a/indirect_sym102 -r -R q
./run --open-file /mnt/a/indirect_sym102 -a -t -W p
./run --open-file /mnt/a/indirect_sym102 -r -R p
TEST sym2-trunc.py:44: Open(symlink->symlink) O_TRUNC|O_RDWR
./run --open-file /mnt/a/indirect_sym103 -r -w -t -W q
./run --open-file /mnt/a/indirect_sym103 -r -R q
./run --open-file /mnt/a/indirect_sym103 -r -w -t -W p
./run --open-file /mnt/a/indirect_sym103 -r -R p
TEST sym2-trunc.py:56: Open(symlink->symlink) O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_sym104 -r -a -t -W q
./run --open-file /mnt/a/indirect_sym104 -r -R q
./run --open-file /mnt/a/indirect_sym104 -r -a -t -W p
./run --open-file /mnt/a/indirect_sym104 -r -R p
***
*** ./run --ov --ts=1 sym2-trunc
***
TEST sym2-trunc.py:10: Open(symlink->symlink) O_TRUNC|O_RDONLY
./run --open-file /mnt/a/indirect_sym100 -r -t -R
./run --open-file /mnt/a/indirect_sym100 -r -t -R
TEST sym2-trunc.py:20: Open(symlink->symlink) O_TRUNC|O_WRONLY
./run --open-file /mnt/a/indirect_sym101 -w -t -W q
./run --open-file /mnt/a/indirect_sym101 -r -R q
./run --open-file /mnt/a/indirect_sym101 -w -t -W p
./run --open-file /mnt/a/indirect_sym101 -r -R p
TEST sym2-trunc.py:32: Open(symlink->symlink) O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_sym102 -a -t -W q
./run --open-file /mnt/a/indirect_sym102 -r -R q
./run --open-file /mnt/a/indirect_sym102 -a -t -W p
./run --open-file /mnt/a/indirect_sym102 -r -R p
TEST sym2-trunc.py:44: Open(symlink->symlink) O_TRUNC|O_RDWR
./run --open-file /mnt/a/indirect_sym103 -r -w -t -W q
./run --open-file /mnt/a/indirect_sym103 -r -R q
./run --open-file /mnt/a/indirect_sym103 -r -w -t -W p
./run --open-file /mnt/a/indirect_sym103 -r -R p
TEST sym2-trunc.py:56: Open(symlink->symlink) O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_sym104 -r -a -t -W q
./run --open-file /mnt/a/indirect_sym104 -r -R q
./run --open-file /mnt/a/indirect_sym104 -r -a -t -W p
./run --open-file /mnt/a/indirect_sym104 -r -R p
***
*** ./run --ov --ts=0 sym2-creat
***
TEST sym2-creat.py:10: Open(symlink->symlink) O_CREAT|O_RDONLY
./run --open-file /mnt/a/indirect_sym100 -r -c -R :xxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym100 -r -c -R :xxx:yyy:zzz
TEST sym2-creat.py:20: Open(symlink->symlink) O_CREAT|O_WRONLY
./run --open-file /mnt/a/indirect_sym101 -w -c -W q
./run --open-file /mnt/a/indirect_sym101 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym101 -w -c -W p
./run --open-file /mnt/a/indirect_sym101 -r -c -R pxxx:yyy:zzz
TEST sym2-creat.py:32: Open(symlink->symlink) O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_sym102 -a -c -W q
./run --open-file /mnt/a/indirect_sym102 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/indirect_sym102 -a -c -W p
./run --open-file /mnt/a/indirect_sym102 -r -c -R :xxx:yyy:zzzqp
TEST sym2-creat.py:44: Open(symlink->symlink) O_CREAT|O_RDWR
./run --open-file /mnt/a/indirect_sym103 -r -w -c -W q
./run --open-file /mnt/a/indirect_sym103 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym103 -r -w -c -W p
./run --open-file /mnt/a/indirect_sym103 -r -c -R pxxx:yyy:zzz
TEST sym2-creat.py:56: Open(symlink->symlink) O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_sym104 -r -a -c -W q
./run --open-file /mnt/a/indirect_sym104 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/indirect_sym104 -r -a -c -W p
./run --open-file /mnt/a/indirect_sym104 -r -c -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=1 sym2-creat
***
TEST sym2-creat.py:10: Open(symlink->symlink) O_CREAT|O_RDONLY
./run --open-file /mnt/a/indirect_sym100 -r -c -R :xxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym100 -r -c -R :xxx:yyy:zzz
TEST sym2-creat.py:20: Open(symlink->symlink) O_CREAT|O_WRONLY
./run --open-file /mnt/a/indirect_sym101 -w -c -W q
./run --open-file /mnt/a/indirect_sym101 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym101 -w -c -W p
./run --open-file /mnt/a/indirect_sym101 -r -c -R pxxx:yyy:zzz
TEST sym2-creat.py:32: Open(symlink->symlink) O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_sym102 -a -c -W q
./run --open-file /mnt/a/indirect_sym102 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/indirect_sym102 -a -c -W p
./run --open-file /mnt/a/indirect_sym102 -r -c -R :xxx:yyy:zzzqp
TEST sym2-creat.py:44: Open(symlink->symlink) O_CREAT|O_RDWR
./run --open-file /mnt/a/indirect_sym103 -r -w -c -W q
./run --open-file /mnt/a/indirect_sym103 -r -c -R qxxx:yyy:zzz
./run --open-file /mnt/a/indirect_sym103 -r -w -c -W p
./run --open-file /mnt/a/indirect_sym103 -r -c -R pxxx:yyy:zzz
TEST sym2-creat.py:56: Open(symlink->symlink) O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_sym104 -r -a -c -W q
./run --open-file /mnt/a/indirect_sym104 -r -c -R :xxx:yyy:zzzq
./run --open-file /mnt/a/indirect_sym104 -r -a -c -W p
./run --open-file /mnt/a/indirect_sym104 -r -c -R :xxx:yyy:zzzqp
***
*** ./run --ov --ts=0 sym2-creat-excl
***
TEST sym2-creat-excl.py:10: Open(symlink->symlink) O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/indirect_sym100 -r -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym100 -r -R :xxx:yyy:zzz
TEST sym2-creat-excl.py:20: Open(symlink->symlink) O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/indirect_sym101 -w -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym101 -r -R :xxx:yyy:zzz
TEST sym2-creat-excl.py:30: Open(symlink->symlink) O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_sym102 -a -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym102 -r -R :xxx:yyy:zzz
TEST sym2-creat-excl.py:40: Open(symlink->symlink) O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/indirect_sym103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym103 -r -R :xxx:yyy:zzz
TEST sym2-creat-excl.py:50: Open(symlink->symlink) O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_sym104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=1 sym2-creat-excl
***
TEST sym2-creat-excl.py:10: Open(symlink->symlink) O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/indirect_sym100 -r -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym100 -r -R :xxx:yyy:zzz
TEST sym2-creat-excl.py:20: Open(symlink->symlink) O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/indirect_sym101 -w -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym101 -r -R :xxx:yyy:zzz
TEST sym2-creat-excl.py:30: Open(symlink->symlink) O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_sym102 -a -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym102 -r -R :xxx:yyy:zzz
TEST sym2-creat-excl.py:40: Open(symlink->symlink) O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/indirect_sym103 -r -w -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym103 -r -R :xxx:yyy:zzz
TEST sym2-creat-excl.py:50: Open(symlink->symlink) O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_sym104 -r -a -c -e -E EEXIST
./run --open-file /mnt/a/indirect_sym104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=0 symx-plain
***
TEST symx-plain.py:10: Open(broken) O_RDONLY
./run --open-file /mnt/a/pointless100 -r -E ENOENT
./run --open-file /mnt/a/no_foo100 -r -E ENOENT
TEST symx-plain.py:19: Open(broken) O_WRONLY
./run --open-file /mnt/a/pointless101 -w -E ENOENT
./run --open-file /mnt/a/no_foo101 -r -E ENOENT
TEST symx-plain.py:28: Open(broken) O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -E ENOENT
./run --open-file /mnt/a/no_foo102 -r -E ENOENT
TEST symx-plain.py:37: Open(broken) O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -E ENOENT
./run --open-file /mnt/a/no_foo103 -r -E ENOENT
TEST symx-plain.py:46: Open(broken) O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -E ENOENT
./run --open-file /mnt/a/no_foo104 -r -E ENOENT
***
*** ./run --ov --ts=1 symx-plain
***
TEST symx-plain.py:10: Open(broken) O_RDONLY
./run --open-file /mnt/a/pointless100 -r -E ENOENT
./run --open-file /mnt/a/no_foo100 -r -E ENOENT
TEST symx-plain.py:19: Open(broken) O_WRONLY
./run --open-file /mnt/a/pointless101 -w -E ENOENT
./run --open-file /mnt/a/no_foo101 -r -E ENOENT
TEST symx-plain.py:28: Open(broken) O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -E ENOENT
./run --open-file /mnt/a/no_foo102 -r -E ENOENT
TEST symx-plain.py:37: Open(broken) O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -E ENOENT
./run --open-file /mnt/a/no_foo103 -r -E ENOENT
TEST symx-plain.py:46: Open(broken) O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -E ENOENT
./run --open-file /mnt/a/no_foo104 -r -E ENOENT
***
*** ./run --ov --ts=0 symx-trunc
***
TEST symx-trunc.py:10: Open(broken) O_TRUNC|O_RDONLY
./run --open-file /mnt/a/pointless100 -r -t -E ENOENT
TEST symx-trunc.py:18: Open(broken) O_TRUNC|O_WRONLY
./run --open-file /mnt/a/pointless101 -w -t -E ENOENT
TEST symx-trunc.py:26: Open(broken) O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -t -E ENOENT
TEST symx-trunc.py:34: Open(broken) O_TRUNC|O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -t -E ENOENT
TEST symx-trunc.py:42: Open(broken) O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -t -E ENOENT
***
*** ./run --ov --ts=1 symx-trunc
***
TEST symx-trunc.py:10: Open(broken) O_TRUNC|O_RDONLY
./run --open-file /mnt/a/pointless100 -r -t -E ENOENT
TEST symx-trunc.py:18: Open(broken) O_TRUNC|O_WRONLY
./run --open-file /mnt/a/pointless101 -w -t -E ENOENT
TEST symx-trunc.py:26: Open(broken) O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -t -E ENOENT
TEST symx-trunc.py:34: Open(broken) O_TRUNC|O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -t -E ENOENT
TEST symx-trunc.py:42: Open(broken) O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -t -E ENOENT
***
*** ./run --ov --ts=0 symx-creat
***
TEST symx-creat.py:10: Open(broken) O_CREAT|O_RDONLY
./run --open-file /mnt/a/pointless100 -r -c -R
./run --open-file /mnt/a/no_foo100 -r -R
TEST symx-creat.py:19: Open(broken) O_CREAT|O_WRONLY
./run --open-file /mnt/a/pointless101 -w -c -W q
./run --open-file /mnt/a/no_foo101 -r -R q
TEST symx-creat.py:28: Open(broken) O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -c -W q
./run --open-file /mnt/a/no_foo102 -r -R q
TEST symx-creat.py:37: Open(broken) O_CREAT|O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -c -W q
./run --open-file /mnt/a/no_foo103 -r -R q
TEST symx-creat.py:46: Open(broken) O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -c -W q
./run --open-file /mnt/a/no_foo104 -r -R q
***
*** ./run --ov --ts=1 symx-creat
***
TEST symx-creat.py:10: Open(broken) O_CREAT|O_RDONLY
./run --open-file /mnt/a/pointless100 -r -c -R
./run --open-file /mnt/a/no_foo100 -r -R
TEST symx-creat.py:19: Open(broken) O_CREAT|O_WRONLY
./run --open-file /mnt/a/pointless101 -w -c -W q
./run --open-file /mnt/a/no_foo101 -r -R q
TEST symx-creat.py:28: Open(broken) O_CREAT|O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -c -W q
./run --open-file /mnt/a/no_foo102 -r -R q
TEST symx-creat.py:37: Open(broken) O_CREAT|O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -c -W q
./run --open-file /mnt/a/no_foo103 -r -R q
TEST symx-creat.py:46: Open(broken) O_CREAT|O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -c -W q
./run --open-file /mnt/a/no_foo104 -r -R q
***
*** ./run --ov --ts=0 symx-creat-excl
***
TEST symx-creat-excl.py:10: Open(broken) O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/pointless100 -r -c -e -E EEXIST
TEST symx-creat-excl.py:18: Open(broken) O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/pointless101 -w -c -e -E EEXIST
TEST symx-creat-excl.py:26: Open(broken) O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -c -e -E EEXIST
TEST symx-creat-excl.py:34: Open(broken) O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -c -e -E EEXIST
TEST symx-creat-excl.py:42: Open(broken) O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -c -e -E EEXIST
***
*** ./run --ov --ts=1 symx-creat-excl
***
TEST symx-creat-excl.py:10: Open(broken) O_CREAT|O_EXCL|O_RDONLY
./run --open-file /mnt/a/pointless100 -r -c -e -E EEXIST
TEST symx-creat-excl.py:18: Open(broken) O_CREAT|O_EXCL|O_WRONLY
./run --open-file /mnt/a/pointless101 -w -c -e -E EEXIST
TEST symx-creat-excl.py:26: Open(broken) O_CREAT|O_EXCL|O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -c -e -E EEXIST
TEST symx-creat-excl.py:34: Open(broken) O_CREAT|O_EXCL|O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -c -e -E EEXIST
TEST symx-creat-excl.py:42: Open(broken) O_CREAT|O_EXCL|O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -c -e -E EEXIST
***
*** ./run --ov --ts=0 symx-creat-trunc
***
TEST symx-creat-trunc.py:10: Open(broken) O_CREAT|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/pointless100 -r -c -t -R
./run --open-file /mnt/a/no_foo100 -r -R
TEST symx-creat-trunc.py:19: Open(broken) O_CREAT|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/pointless101 -w -c -t -W q
./run --open-file /mnt/a/no_foo101 -r -R q
TEST symx-creat-trunc.py:28: Open(broken) O_CREAT|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -c -t -W q
./run --open-file /mnt/a/no_foo102 -r -R q
TEST symx-creat-trunc.py:37: Open(broken) O_CREAT|O_TRUNC|O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -c -t -W q
./run --open-file /mnt/a/no_foo103 -r -R q
TEST symx-creat-trunc.py:46: Open(broken) O_CREAT|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -c -t -W q
./run --open-file /mnt/a/no_foo104 -r -R q
***
*** ./run --ov --ts=1 symx-creat-trunc
***
TEST symx-creat-trunc.py:10: Open(broken) O_CREAT|O_TRUNC|O_RDONLY
./run --open-file /mnt/a/pointless100 -r -c -t -R
./run --open-file /mnt/a/no_foo100 -r -R
TEST symx-creat-trunc.py:19: Open(broken) O_CREAT|O_TRUNC|O_WRONLY
./run --open-file /mnt/a/pointless101 -w -c -t -W q
./run --open-file /mnt/a/no_foo101 -r -R q
TEST symx-creat-trunc.py:28: Open(broken) O_CREAT|O_TRUNC|O_APPEND|O_WRONLY
./run --open-file /mnt/a/pointless102 -a -c -t -W q
./run --open-file /mnt/a/no_foo102 -r -R q
TEST symx-creat-trunc.py:37: Open(broken) O_CREAT|O_TRUNC|O_RDWR
./run --open-file /mnt/a/pointless103 -r -w -c -t -W q
./run --open-file /mnt/a/no_foo103 -r -R q
TEST symx-creat-trunc.py:46: Open(broken) O_CREAT|O_TRUNC|O_APPEND|O_RDWR
./run --open-file /mnt/a/pointless104 -r -a -c -t -W q
./run --open-file /mnt/a/no_foo104 -r -R q
***
*** ./run --ov --ts=0 truncate
***
TEST truncate.py:9: Truncate file
./run --truncate /mnt/a/foo100 0
./run --truncate /mnt/a/foo101 1
./run --open-file /mnt/a/foo101 -r -R :
./run --truncate /mnt/a/foo102 2
./run --open-file /mnt/a/foo102 -r -R :x
./run --truncate /mnt/a/foo103 3
./run --open-file /mnt/a/foo103 -r -R :xx
./run --truncate /mnt/a/foo104 4
./run --open-file /mnt/a/foo104 -r -R :xxx
./run --truncate /mnt/a/foo105 5
./run --open-file /mnt/a/foo105 -r -R :xxx:
./run --truncate /mnt/a/foo106 6
./run --open-file /mnt/a/foo106 -r -R :xxx:y
./run --truncate /mnt/a/foo107 7
./run --open-file /mnt/a/foo107 -r -R :xxx:yy
./run --truncate /mnt/a/foo108 8
./run --open-file /mnt/a/foo108 -r -R :xxx:yyy
./run --truncate /mnt/a/foo109 9
./run --open-file /mnt/a/foo109 -r -R :xxx:yyy:
./run --truncate /mnt/a/foo110 10
./run --open-file /mnt/a/foo110 -r -R :xxx:yyy:z
./run --truncate /mnt/a/foo111 11
./run --open-file /mnt/a/foo111 -r -R :xxx:yyy:zz
./run --truncate /mnt/a/foo112 12
./run --open-file /mnt/a/foo112 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo113 13
./run --open-file /mnt/a/foo113 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo114 14
./run --open-file /mnt/a/foo114 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo115 15
./run --open-file /mnt/a/foo115 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo116 16
./run --open-file /mnt/a/foo116 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo117 17
./run --open-file /mnt/a/foo117 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo118 18
./run --open-file /mnt/a/foo118 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo119 19
./run --open-file /mnt/a/foo119 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo120 20
./run --open-file /mnt/a/foo120 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo121 21
./run --open-file /mnt/a/foo121 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo122 22
./run --open-file /mnt/a/foo122 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo123 23
./run --open-file /mnt/a/foo123 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo124 24
./run --open-file /mnt/a/foo124 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo125 25
./run --open-file /mnt/a/foo125 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo126 26
./run --open-file /mnt/a/foo126 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo127 27
./run --open-file /mnt/a/foo127 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo128 28
./run --open-file /mnt/a/foo128 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=1 truncate
***
TEST truncate.py:9: Truncate file
./run --truncate /mnt/a/foo100 0
./run --truncate /mnt/a/foo101 1
./run --open-file /mnt/a/foo101 -r -R :
./run --truncate /mnt/a/foo102 2
./run --open-file /mnt/a/foo102 -r -R :x
./run --truncate /mnt/a/foo103 3
./run --open-file /mnt/a/foo103 -r -R :xx
./run --truncate /mnt/a/foo104 4
./run --open-file /mnt/a/foo104 -r -R :xxx
./run --truncate /mnt/a/foo105 5
./run --open-file /mnt/a/foo105 -r -R :xxx:
./run --truncate /mnt/a/foo106 6
./run --open-file /mnt/a/foo106 -r -R :xxx:y
./run --truncate /mnt/a/foo107 7
./run --open-file /mnt/a/foo107 -r -R :xxx:yy
./run --truncate /mnt/a/foo108 8
./run --open-file /mnt/a/foo108 -r -R :xxx:yyy
./run --truncate /mnt/a/foo109 9
./run --open-file /mnt/a/foo109 -r -R :xxx:yyy:
./run --truncate /mnt/a/foo110 10
./run --open-file /mnt/a/foo110 -r -R :xxx:yyy:z
./run --truncate /mnt/a/foo111 11
./run --open-file /mnt/a/foo111 -r -R :xxx:yyy:zz
./run --truncate /mnt/a/foo112 12
./run --open-file /mnt/a/foo112 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo113 13
./run --open-file /mnt/a/foo113 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo114 14
./run --open-file /mnt/a/foo114 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo115 15
./run --open-file /mnt/a/foo115 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo116 16
./run --open-file /mnt/a/foo116 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo117 17
./run --open-file /mnt/a/foo117 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo118 18
./run --open-file /mnt/a/foo118 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo119 19
./run --open-file /mnt/a/foo119 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo120 20
./run --open-file /mnt/a/foo120 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo121 21
./run --open-file /mnt/a/foo121 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo122 22
./run --open-file /mnt/a/foo122 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo123 23
./run --open-file /mnt/a/foo123 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo124 24
./run --open-file /mnt/a/foo124 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo125 25
./run --open-file /mnt/a/foo125 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo126 26
./run --open-file /mnt/a/foo126 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo127 27
./run --open-file /mnt/a/foo127 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/foo128 28
./run --open-file /mnt/a/foo128 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=0 dir-open
***
TEST dir-open.py:10: Open O_RDONLY
./run --open-file /mnt/a/dir100 -r
./run --open-file /mnt/a/dir100 -r
TEST dir-open.py:18: Open O_WRONLY
./run --open-file /mnt/a/dir101 -w -E EISDIR
./run --open-file /mnt/a/dir101 -r
./run --open-file /mnt/a/dir101 -w -E EISDIR
./run --open-file /mnt/a/dir101 -r
TEST dir-open.py:28: Open O_WRONLY * 2
./run --open-file /mnt/a/dir102 -w -E EISDIR
./run --open-file /mnt/a/dir102 -w -E EISDIR
./run --open-file /mnt/a/dir102 -r
TEST dir-open.py:37: Open O_APPEND|O_WRONLY
./run --open-file /mnt/a/dir103 -a -E EISDIR
./run --open-file /mnt/a/dir103 -r
./run --open-file /mnt/a/dir103 -a -E EISDIR
./run --open-file /mnt/a/dir103 -r
TEST dir-open.py:47: Open O_RDWR
./run --open-file /mnt/a/dir104 -r -w -E EISDIR
./run --open-file /mnt/a/dir104 -r
./run --open-file /mnt/a/dir104 -r -w -E EISDIR
./run --open-file /mnt/a/dir104 -r
TEST dir-open.py:57: Open O_APPEND|O_RDWR
./run --open-file /mnt/a/dir105 -r -a -E EISDIR
./run --open-file /mnt/a/dir105 -r
./run --open-file /mnt/a/dir105 -r -a -E EISDIR
./run --open-file /mnt/a/dir105 -r
***
*** ./run --ov --ts=1 dir-open
***
TEST dir-open.py:10: Open O_RDONLY
./run --open-file /mnt/a/dir100 -r
./run --open-file /mnt/a/dir100 -r
TEST dir-open.py:18: Open O_WRONLY
./run --open-file /mnt/a/dir101 -w -E EISDIR
./run --open-file /mnt/a/dir101 -r
./run --open-file /mnt/a/dir101 -w -E EISDIR
./run --open-file /mnt/a/dir101 -r
TEST dir-open.py:28: Open O_WRONLY * 2
./run --open-file /mnt/a/dir102 -w -E EISDIR
./run --open-file /mnt/a/dir102 -w -E EISDIR
./run --open-file /mnt/a/dir102 -r
TEST dir-open.py:37: Open O_APPEND|O_WRONLY
./run --open-file /mnt/a/dir103 -a -E EISDIR
./run --open-file /mnt/a/dir103 -r
./run --open-file /mnt/a/dir103 -a -E EISDIR
./run --open-file /mnt/a/dir103 -r
TEST dir-open.py:47: Open O_RDWR
./run --open-file /mnt/a/dir104 -r -w -E EISDIR
./run --open-file /mnt/a/dir104 -r
./run --open-file /mnt/a/dir104 -r -w -E EISDIR
./run --open-file /mnt/a/dir104 -r
TEST dir-open.py:57: Open O_APPEND|O_RDWR
./run --open-file /mnt/a/dir105 -r -a -E EISDIR
./run --open-file /mnt/a/dir105 -r
./run --open-file /mnt/a/dir105 -r -a -E EISDIR
./run --open-file /mnt/a/dir105 -r
***
*** ./run --ov --ts=0 dir-weird-open
***
TEST dir-weird-open.py:10: Open O_RDONLY | O_CREAT
./run --open-file /mnt/a/dir100 -r -c -E EISDIR
./run --open-file /mnt/a/dir100 -r
TEST dir-weird-open.py:18: Open O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir101 -r -c -e -E EEXIST
./run --open-file /mnt/a/dir101 -r
TEST dir-weird-open.py:26: Open O_RDONLY | O_TRUNC
./run --open-file /mnt/a/dir102 -r -t -E EISDIR
./run --open-file /mnt/a/dir102 -r
TEST dir-weird-open.py:34: Open O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/dir103 -r -c -t -E EISDIR
./run --open-file /mnt/a/dir103 -r
TEST dir-weird-open.py:42: Open O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir104 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/dir104 -r
TEST dir-weird-open.py:50: Open O_RDONLY | O_CREAT
./run --open-file /mnt/a/dir105 -w -c -E EISDIR
./run --open-file /mnt/a/dir105 -r
TEST dir-weird-open.py:58: Open O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir106 -w -c -e -E EEXIST
./run --open-file /mnt/a/dir106 -r
TEST dir-weird-open.py:66: Open O_RDONLY | O_TRUNC
./run --open-file /mnt/a/dir107 -w -t -E EISDIR
./run --open-file /mnt/a/dir107 -r
TEST dir-weird-open.py:74: Open O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/dir108 -w -c -t -E EISDIR
./run --open-file /mnt/a/dir108 -r
TEST dir-weird-open.py:82: Open O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir109 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/dir109 -r
***
*** ./run --ov --ts=1 dir-weird-open
***
TEST dir-weird-open.py:10: Open O_RDONLY | O_CREAT
./run --open-file /mnt/a/dir100 -r -c -E EISDIR
./run --open-file /mnt/a/dir100 -r
TEST dir-weird-open.py:18: Open O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir101 -r -c -e -E EEXIST
./run --open-file /mnt/a/dir101 -r
TEST dir-weird-open.py:26: Open O_RDONLY | O_TRUNC
./run --open-file /mnt/a/dir102 -r -t -E EISDIR
./run --open-file /mnt/a/dir102 -r
TEST dir-weird-open.py:34: Open O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/dir103 -r -c -t -E EISDIR
./run --open-file /mnt/a/dir103 -r
TEST dir-weird-open.py:42: Open O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir104 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/dir104 -r
TEST dir-weird-open.py:50: Open O_RDONLY | O_CREAT
./run --open-file /mnt/a/dir105 -w -c -E EISDIR
./run --open-file /mnt/a/dir105 -r
TEST dir-weird-open.py:58: Open O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir106 -w -c -e -E EEXIST
./run --open-file /mnt/a/dir106 -r
TEST dir-weird-open.py:66: Open O_RDONLY | O_TRUNC
./run --open-file /mnt/a/dir107 -w -t -E EISDIR
./run --open-file /mnt/a/dir107 -r
TEST dir-weird-open.py:74: Open O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/dir108 -w -c -t -E EISDIR
./run --open-file /mnt/a/dir108 -r
TEST dir-weird-open.py:82: Open O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir109 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/dir109 -r
***
*** ./run --ov --ts=0 dir-open-dir
***
TEST dir-open-dir.py:10: Open O_DIRECTORY | O_RDONLY
./run --open-file /mnt/a/dir100 -r -d
./run --open-file /mnt/a/dir100 -r -d
TEST dir-open-dir.py:18: Open O_DIRECTORY | O_WRONLY
./run --open-file /mnt/a/dir101 -w -d -E EISDIR
./run --open-file /mnt/a/dir101 -r -d
./run --open-file /mnt/a/dir101 -w -d -E EISDIR
./run --open-file /mnt/a/dir101 -r -d
TEST dir-open-dir.py:28: Open O_DIRECTORY | O_WRONLY * 2
./run --open-file /mnt/a/dir102 -w -d -E EISDIR
./run --open-file /mnt/a/dir102 -w -d -E EISDIR
./run --open-file /mnt/a/dir102 -r -d
TEST dir-open-dir.py:37: Open O_DIRECTORY | O_APPEND|O_WRONLY
./run --open-file /mnt/a/dir103 -a -d -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
./run --open-file /mnt/a/dir103 -a -d -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
TEST dir-open-dir.py:47: Open O_DIRECTORY | O_RDWR
./run --open-file /mnt/a/dir104 -r -w -d -E EISDIR
./run --open-file /mnt/a/dir104 -r -d
./run --open-file /mnt/a/dir104 -r -w -d -E EISDIR
./run --open-file /mnt/a/dir104 -r -d
TEST dir-open-dir.py:57: Open O_DIRECTORY | O_APPEND|O_RDWR
./run --open-file /mnt/a/dir105 -r -a -d -E EISDIR
./run --open-file /mnt/a/dir105 -r -d
./run --open-file /mnt/a/dir105 -r -a -d -E EISDIR
./run --open-file /mnt/a/dir105 -r -d
***
*** ./run --ov --ts=1 dir-open-dir
***
TEST dir-open-dir.py:10: Open O_DIRECTORY | O_RDONLY
./run --open-file /mnt/a/dir100 -r -d
./run --open-file /mnt/a/dir100 -r -d
TEST dir-open-dir.py:18: Open O_DIRECTORY | O_WRONLY
./run --open-file /mnt/a/dir101 -w -d -E EISDIR
./run --open-file /mnt/a/dir101 -r -d
./run --open-file /mnt/a/dir101 -w -d -E EISDIR
./run --open-file /mnt/a/dir101 -r -d
TEST dir-open-dir.py:28: Open O_DIRECTORY | O_WRONLY * 2
./run --open-file /mnt/a/dir102 -w -d -E EISDIR
./run --open-file /mnt/a/dir102 -w -d -E EISDIR
./run --open-file /mnt/a/dir102 -r -d
TEST dir-open-dir.py:37: Open O_DIRECTORY | O_APPEND|O_WRONLY
./run --open-file /mnt/a/dir103 -a -d -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
./run --open-file /mnt/a/dir103 -a -d -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
TEST dir-open-dir.py:47: Open O_DIRECTORY | O_RDWR
./run --open-file /mnt/a/dir104 -r -w -d -E EISDIR
./run --open-file /mnt/a/dir104 -r -d
./run --open-file /mnt/a/dir104 -r -w -d -E EISDIR
./run --open-file /mnt/a/dir104 -r -d
TEST dir-open-dir.py:57: Open O_DIRECTORY | O_APPEND|O_RDWR
./run --open-file /mnt/a/dir105 -r -a -d -E EISDIR
./run --open-file /mnt/a/dir105 -r -d
./run --open-file /mnt/a/dir105 -r -a -d -E EISDIR
./run --open-file /mnt/a/dir105 -r -d
***
*** ./run --ov --ts=0 dir-weird-open-dir
***
TEST dir-weird-open-dir.py:10: Open O_DIRECTORY | O_RDONLY | O_CREAT
./run --open-file /mnt/a/dir100 -r -d -c -E EISDIR
./run --open-file /mnt/a/dir100 -r -d
TEST dir-weird-open-dir.py:18: Open O_DIRECTORY | O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir101 -r -d -c -e -E EEXIST
./run --open-file /mnt/a/dir101 -r -d
TEST dir-weird-open-dir.py:26: Open O_DIRECTORY | O_RDONLY | O_TRUNC
./run --open-file /mnt/a/dir102 -r -d -t -E EISDIR
./run --open-file /mnt/a/dir102 -r -d
TEST dir-weird-open-dir.py:34: Open O_DIRECTORY | O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/dir103 -r -d -c -t -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
TEST dir-weird-open-dir.py:42: Open O_DIRECTORY | O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir104 -r -d -c -e -t -E EEXIST
./run --open-file /mnt/a/dir104 -r -d
TEST dir-weird-open-dir.py:50: Open O_DIRECTORY | O_RDONLY | O_CREAT
./run --open-file /mnt/a/dir105 -w -d -c -E EISDIR
./run --open-file /mnt/a/dir105 -r -d
TEST dir-weird-open-dir.py:58: Open O_DIRECTORY | O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir106 -w -d -c -e -E EEXIST
./run --open-file /mnt/a/dir106 -r -d
TEST dir-weird-open-dir.py:66: Open O_DIRECTORY | O_RDONLY | O_TRUNC
./run --open-file /mnt/a/dir107 -w -d -t -E EISDIR
./run --open-file /mnt/a/dir107 -r -d
TEST dir-weird-open-dir.py:74: Open O_DIRECTORY | O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/dir108 -w -d -c -t -E EISDIR
./run --open-file /mnt/a/dir108 -r -d
TEST dir-weird-open-dir.py:82: Open O_DIRECTORY | O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir109 -w -d -c -e -t -E EEXIST
./run --open-file /mnt/a/dir109 -r -d
***
*** ./run --ov --ts=1 dir-weird-open-dir
***
TEST dir-weird-open-dir.py:10: Open O_DIRECTORY | O_RDONLY | O_CREAT
./run --open-file /mnt/a/dir100 -r -d -c -E EISDIR
./run --open-file /mnt/a/dir100 -r -d
TEST dir-weird-open-dir.py:18: Open O_DIRECTORY | O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir101 -r -d -c -e -E EEXIST
./run --open-file /mnt/a/dir101 -r -d
TEST dir-weird-open-dir.py:26: Open O_DIRECTORY | O_RDONLY | O_TRUNC
./run --open-file /mnt/a/dir102 -r -d -t -E EISDIR
./run --open-file /mnt/a/dir102 -r -d
TEST dir-weird-open-dir.py:34: Open O_DIRECTORY | O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/dir103 -r -d -c -t -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
TEST dir-weird-open-dir.py:42: Open O_DIRECTORY | O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir104 -r -d -c -e -t -E EEXIST
./run --open-file /mnt/a/dir104 -r -d
TEST dir-weird-open-dir.py:50: Open O_DIRECTORY | O_RDONLY | O_CREAT
./run --open-file /mnt/a/dir105 -w -d -c -E EISDIR
./run --open-file /mnt/a/dir105 -r -d
TEST dir-weird-open-dir.py:58: Open O_DIRECTORY | O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir106 -w -d -c -e -E EEXIST
./run --open-file /mnt/a/dir106 -r -d
TEST dir-weird-open-dir.py:66: Open O_DIRECTORY | O_RDONLY | O_TRUNC
./run --open-file /mnt/a/dir107 -w -d -t -E EISDIR
./run --open-file /mnt/a/dir107 -r -d
TEST dir-weird-open-dir.py:74: Open O_DIRECTORY | O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/dir108 -w -d -c -t -E EISDIR
./run --open-file /mnt/a/dir108 -r -d
TEST dir-weird-open-dir.py:82: Open O_DIRECTORY | O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/dir109 -w -d -c -e -t -E EEXIST
./run --open-file /mnt/a/dir109 -r -d
***
*** ./run --ov --ts=0 dir-sym1-open
***
TEST dir-sym1-open.py:10: Open(dir symlink) O_RDONLY
./run --open-file /mnt/a/direct_dir_sym100 -r
./run --open-file /mnt/a/direct_dir_sym100 -r
TEST dir-sym1-open.py:19: Open(dir symlink) O_WRONLY
./run --open-file /mnt/a/direct_dir_sym101 -w -E EISDIR
./run --open-file /mnt/a/direct_dir_sym101 -r
./run --open-file /mnt/a/direct_dir_sym101 -w -E EISDIR
./run --open-file /mnt/a/direct_dir_sym101 -r
TEST dir-sym1-open.py:30: Open(dir symlink) O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_dir_sym102 -a -E EISDIR
./run --open-file /mnt/a/direct_dir_sym102 -r
./run --open-file /mnt/a/direct_dir_sym102 -a -E EISDIR
./run --open-file /mnt/a/direct_dir_sym102 -r
TEST dir-sym1-open.py:41: Open(dir symlink) O_RDWR
./run --open-file /mnt/a/direct_dir_sym103 -r -w -E EISDIR
./run --open-file /mnt/a/direct_dir_sym103 -r
./run --open-file /mnt/a/direct_dir_sym103 -r -w -E EISDIR
./run --open-file /mnt/a/direct_dir_sym103 -r
TEST dir-sym1-open.py:52: Open(dir symlink) O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_dir_sym104 -r -a -E EISDIR
./run --open-file /mnt/a/direct_dir_sym104 -r
./run --open-file /mnt/a/direct_dir_sym104 -r -a -E EISDIR
./run --open-file /mnt/a/direct_dir_sym104 -r
***
*** ./run --ov --ts=1 dir-sym1-open
***
TEST dir-sym1-open.py:10: Open(dir symlink) O_RDONLY
./run --open-file /mnt/a/direct_dir_sym100 -r
./run --open-file /mnt/a/direct_dir_sym100 -r
TEST dir-sym1-open.py:19: Open(dir symlink) O_WRONLY
./run --open-file /mnt/a/direct_dir_sym101 -w -E EISDIR
./run --open-file /mnt/a/direct_dir_sym101 -r
./run --open-file /mnt/a/direct_dir_sym101 -w -E EISDIR
./run --open-file /mnt/a/direct_dir_sym101 -r
TEST dir-sym1-open.py:30: Open(dir symlink) O_APPEND|O_WRONLY
./run --open-file /mnt/a/direct_dir_sym102 -a -E EISDIR
./run --open-file /mnt/a/direct_dir_sym102 -r
./run --open-file /mnt/a/direct_dir_sym102 -a -E EISDIR
./run --open-file /mnt/a/direct_dir_sym102 -r
TEST dir-sym1-open.py:41: Open(dir symlink) O_RDWR
./run --open-file /mnt/a/direct_dir_sym103 -r -w -E EISDIR
./run --open-file /mnt/a/direct_dir_sym103 -r
./run --open-file /mnt/a/direct_dir_sym103 -r -w -E EISDIR
./run --open-file /mnt/a/direct_dir_sym103 -r
TEST dir-sym1-open.py:52: Open(dir symlink) O_APPEND|O_RDWR
./run --open-file /mnt/a/direct_dir_sym104 -r -a -E EISDIR
./run --open-file /mnt/a/direct_dir_sym104 -r
./run --open-file /mnt/a/direct_dir_sym104 -r -a -E EISDIR
./run --open-file /mnt/a/direct_dir_sym104 -r
***
*** ./run --ov --ts=0 dir-sym1-weird-open
***
TEST dir-sym1-weird-open.py:11: Open(dir symlink) O_RDONLY | O_CREAT
./run --open-file /mnt/a/direct_dir_sym100 -r -c -E EISDIR
./run --open-file /mnt/a/direct_dir_sym100 -r
TEST dir-sym1-weird-open.py:20: Open(dir symlink) O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/direct_dir_sym101 -r -c -e -E EEXIST
./run --open-file /mnt/a/direct_dir_sym101 -r
TEST dir-sym1-weird-open.py:29: Open(dir symlink) O_RDONLY | O_TRUNC
./run --open-file /mnt/a/direct_dir_sym102 -r -t -E EISDIR
./run --open-file /mnt/a/direct_dir_sym102 -r
TEST dir-sym1-weird-open.py:38: Open(dir symlink) O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/direct_dir_sym103 -r -c -t -E EISDIR
./run --open-file /mnt/a/direct_dir_sym103 -r
TEST dir-sym1-weird-open.py:47: Open(dir symlink) O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/direct_dir_sym104 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/direct_dir_sym104 -r
TEST dir-sym1-weird-open.py:56: Open(dir symlink) O_WRONLY | O_CREAT
./run --open-file /mnt/a/direct_dir_sym105 -w -c -E EISDIR
./run --open-file /mnt/a/direct_dir_sym105 -r
TEST dir-sym1-weird-open.py:65: Open(dir symlink) O_WRONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/direct_dir_sym106 -w -c -e -E EEXIST
./run --open-file /mnt/a/direct_dir_sym106 -r
TEST dir-sym1-weird-open.py:74: Open(dir symlink) O_WRONLY | O_TRUNC
./run --open-file /mnt/a/direct_dir_sym107 -w -t -E EISDIR
./run --open-file /mnt/a/direct_dir_sym107 -r
TEST dir-sym1-weird-open.py:83: Open(dir symlink) O_WRONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/direct_dir_sym108 -w -c -t -E EISDIR
./run --open-file /mnt/a/direct_dir_sym108 -r
TEST dir-sym1-weird-open.py:92: Open(dir symlink) O_WRONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/direct_dir_sym109 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/direct_dir_sym109 -r
***
*** ./run --ov --ts=1 dir-sym1-weird-open
***
TEST dir-sym1-weird-open.py:11: Open(dir symlink) O_RDONLY | O_CREAT
./run --open-file /mnt/a/direct_dir_sym100 -r -c -E EISDIR
./run --open-file /mnt/a/direct_dir_sym100 -r
TEST dir-sym1-weird-open.py:20: Open(dir symlink) O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/direct_dir_sym101 -r -c -e -E EEXIST
./run --open-file /mnt/a/direct_dir_sym101 -r
TEST dir-sym1-weird-open.py:29: Open(dir symlink) O_RDONLY | O_TRUNC
./run --open-file /mnt/a/direct_dir_sym102 -r -t -E EISDIR
./run --open-file /mnt/a/direct_dir_sym102 -r
TEST dir-sym1-weird-open.py:38: Open(dir symlink) O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/direct_dir_sym103 -r -c -t -E EISDIR
./run --open-file /mnt/a/direct_dir_sym103 -r
TEST dir-sym1-weird-open.py:47: Open(dir symlink) O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/direct_dir_sym104 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/direct_dir_sym104 -r
TEST dir-sym1-weird-open.py:56: Open(dir symlink) O_WRONLY | O_CREAT
./run --open-file /mnt/a/direct_dir_sym105 -w -c -E EISDIR
./run --open-file /mnt/a/direct_dir_sym105 -r
TEST dir-sym1-weird-open.py:65: Open(dir symlink) O_WRONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/direct_dir_sym106 -w -c -e -E EEXIST
./run --open-file /mnt/a/direct_dir_sym106 -r
TEST dir-sym1-weird-open.py:74: Open(dir symlink) O_WRONLY | O_TRUNC
./run --open-file /mnt/a/direct_dir_sym107 -w -t -E EISDIR
./run --open-file /mnt/a/direct_dir_sym107 -r
TEST dir-sym1-weird-open.py:83: Open(dir symlink) O_WRONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/direct_dir_sym108 -w -c -t -E EISDIR
./run --open-file /mnt/a/direct_dir_sym108 -r
TEST dir-sym1-weird-open.py:92: Open(dir symlink) O_WRONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/direct_dir_sym109 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/direct_dir_sym109 -r
***
*** ./run --ov --ts=0 dir-sym2-open
***
TEST dir-sym2-open.py:10: Open(dir symlink) O_RDONLY
./run --open-file /mnt/a/indirect_dir_sym100 -r
./run --open-file /mnt/a/indirect_dir_sym100 -r
TEST dir-sym2-open.py:20: Open(dir symlink) O_WRONLY
./run --open-file /mnt/a/indirect_dir_sym101 -w -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym101 -r
./run --open-file /mnt/a/indirect_dir_sym101 -w -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym101 -r
TEST dir-sym2-open.py:32: Open(dir symlink) O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_dir_sym102 -a -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym102 -r
./run --open-file /mnt/a/indirect_dir_sym102 -a -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym102 -r
TEST dir-sym2-open.py:44: Open(dir symlink) O_RDWR
./run --open-file /mnt/a/indirect_dir_sym103 -r -w -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym103 -r
./run --open-file /mnt/a/indirect_dir_sym103 -r -w -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym103 -r
TEST dir-sym2-open.py:56: Open(dir symlink) O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_dir_sym104 -r -a -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym104 -r
./run --open-file /mnt/a/indirect_dir_sym104 -r -a -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym104 -r
***
*** ./run --ov --ts=1 dir-sym2-open
***
TEST dir-sym2-open.py:10: Open(dir symlink) O_RDONLY
./run --open-file /mnt/a/indirect_dir_sym100 -r
./run --open-file /mnt/a/indirect_dir_sym100 -r
TEST dir-sym2-open.py:20: Open(dir symlink) O_WRONLY
./run --open-file /mnt/a/indirect_dir_sym101 -w -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym101 -r
./run --open-file /mnt/a/indirect_dir_sym101 -w -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym101 -r
TEST dir-sym2-open.py:32: Open(dir symlink) O_APPEND|O_WRONLY
./run --open-file /mnt/a/indirect_dir_sym102 -a -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym102 -r
./run --open-file /mnt/a/indirect_dir_sym102 -a -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym102 -r
TEST dir-sym2-open.py:44: Open(dir symlink) O_RDWR
./run --open-file /mnt/a/indirect_dir_sym103 -r -w -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym103 -r
./run --open-file /mnt/a/indirect_dir_sym103 -r -w -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym103 -r
TEST dir-sym2-open.py:56: Open(dir symlink) O_APPEND|O_RDWR
./run --open-file /mnt/a/indirect_dir_sym104 -r -a -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym104 -r
./run --open-file /mnt/a/indirect_dir_sym104 -r -a -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym104 -r
***
*** ./run --ov --ts=0 dir-sym2-weird-open
***
TEST dir-sym2-weird-open.py:11: Open(dir symlink) O_RDONLY | O_CREAT
./run --open-file /mnt/a/indirect_dir_sym100 -r -c -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym100 -r
TEST dir-sym2-weird-open.py:21: Open(dir symlink) O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/indirect_dir_sym101 -r -c -e -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym101 -r
TEST dir-sym2-weird-open.py:31: Open(dir symlink) O_RDONLY | O_TRUNC
./run --open-file /mnt/a/indirect_dir_sym102 -r -t -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym102 -r
TEST dir-sym2-weird-open.py:41: Open(dir symlink) O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/indirect_dir_sym103 -r -c -t -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym103 -r
TEST dir-sym2-weird-open.py:51: Open(dir symlink) O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/indirect_dir_sym104 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym104 -r
TEST dir-sym2-weird-open.py:61: Open(dir symlink) O_WRONLY | O_CREAT
./run --open-file /mnt/a/indirect_dir_sym105 -w -c -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym105 -r
TEST dir-sym2-weird-open.py:71: Open(dir symlink) O_WRONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/indirect_dir_sym106 -w -c -e -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym106 -r
TEST dir-sym2-weird-open.py:81: Open(dir symlink) O_WRONLY | O_TRUNC
./run --open-file /mnt/a/indirect_dir_sym107 -w -t -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym107 -r
TEST dir-sym2-weird-open.py:91: Open(dir symlink) O_WRONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/indirect_dir_sym108 -w -c -t -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym108 -r
TEST dir-sym2-weird-open.py:101: Open(dir symlink) O_WRONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/indirect_dir_sym109 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym109 -r
***
*** ./run --ov --ts=1 dir-sym2-weird-open
***
TEST dir-sym2-weird-open.py:11: Open(dir symlink) O_RDONLY | O_CREAT
./run --open-file /mnt/a/indirect_dir_sym100 -r -c -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym100 -r
TEST dir-sym2-weird-open.py:21: Open(dir symlink) O_RDONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/indirect_dir_sym101 -r -c -e -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym101 -r
TEST dir-sym2-weird-open.py:31: Open(dir symlink) O_RDONLY | O_TRUNC
./run --open-file /mnt/a/indirect_dir_sym102 -r -t -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym102 -r
TEST dir-sym2-weird-open.py:41: Open(dir symlink) O_RDONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/indirect_dir_sym103 -r -c -t -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym103 -r
TEST dir-sym2-weird-open.py:51: Open(dir symlink) O_RDONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/indirect_dir_sym104 -r -c -e -t -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym104 -r
TEST dir-sym2-weird-open.py:61: Open(dir symlink) O_WRONLY | O_CREAT
./run --open-file /mnt/a/indirect_dir_sym105 -w -c -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym105 -r
TEST dir-sym2-weird-open.py:71: Open(dir symlink) O_WRONLY | O_CREAT | O_EXCL
./run --open-file /mnt/a/indirect_dir_sym106 -w -c -e -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym106 -r
TEST dir-sym2-weird-open.py:81: Open(dir symlink) O_WRONLY | O_TRUNC
./run --open-file /mnt/a/indirect_dir_sym107 -w -t -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym107 -r
TEST dir-sym2-weird-open.py:91: Open(dir symlink) O_WRONLY | O_TRUNC | O_CREAT
./run --open-file /mnt/a/indirect_dir_sym108 -w -c -t -E EISDIR
./run --open-file /mnt/a/indirect_dir_sym108 -r
TEST dir-sym2-weird-open.py:101: Open(dir symlink) O_WRONLY | O_TRUNC | O_CREAT | O_EXCL
./run --open-file /mnt/a/indirect_dir_sym109 -w -c -e -t -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym109 -r
***
*** ./run --ov --ts=0 readlink
***
TEST readlink.py:9: Readlink file
./run --readlink /mnt/a/foo100 -E EINVAL
TEST readlink.py:15: Readlink direct symlink to file
./run --readlink /mnt/a/direct_sym101 -R ../a/foo101
TEST readlink.py:21: Readlink indirect symlink to file
./run --readlink /mnt/a/indirect_sym102 -R direct_sym102
TEST readlink.py:30: Readlink dir
./run --readlink /mnt/a/dir103 -E EINVAL
TEST readlink.py:36: Readlink direct symlink to dir
./run --readlink /mnt/a/direct_dir_sym104 -R ../a/dir104
TEST readlink.py:42: Readlink indirect symlink to dir
./run --readlink /mnt/a/indirect_dir_sym105 -R direct_dir_sym105
TEST readlink.py:51: Readlink absent file
./run --readlink /mnt/a/no_foo106 -E ENOENT
TEST readlink.py:57: Readlink broken symlink to absent file
./run --readlink /mnt/a/pointless107 -R no_foo107
TEST readlink.py:63: Readlink broken symlink
./run --readlink /mnt/a/pointless108 -R no_foo108
TEST readlink.py:69: Readlink absent file pointed to by broken symlink
./run --readlink /mnt/a/no_foo109 -E ENOENT
***
*** ./run --ov --ts=1 readlink
***
TEST readlink.py:9: Readlink file
./run --readlink /mnt/a/foo100 -E EINVAL
TEST readlink.py:15: Readlink direct symlink to file
./run --readlink /mnt/a/direct_sym101 -R ../a/foo101
TEST readlink.py:21: Readlink indirect symlink to file
./run --readlink /mnt/a/indirect_sym102 -R direct_sym102
TEST readlink.py:30: Readlink dir
./run --readlink /mnt/a/dir103 -E EINVAL
TEST readlink.py:36: Readlink direct symlink to dir
./run --readlink /mnt/a/direct_dir_sym104 -R ../a/dir104
TEST readlink.py:42: Readlink indirect symlink to dir
./run --readlink /mnt/a/indirect_dir_sym105 -R direct_dir_sym105
TEST readlink.py:51: Readlink absent file
./run --readlink /mnt/a/no_foo106 -E ENOENT
TEST readlink.py:57: Readlink broken symlink to absent file
./run --readlink /mnt/a/pointless107 -R no_foo107
TEST readlink.py:63: Readlink broken symlink
./run --readlink /mnt/a/pointless108 -R no_foo108
TEST readlink.py:69: Readlink absent file pointed to by broken symlink
./run --readlink /mnt/a/no_foo109 -E ENOENT
***
*** ./run --ov --ts=0 mkdir
***
TEST mkdir.py:10: Create directory
./run --mkdir /mnt/a/no_dir100 0755
./run --mkdir /mnt/a/no_dir100 0755 -E EEXIST
TEST mkdir.py:18: Create directory over file
./run --mkdir /mnt/a/foo101 0755 -E EEXIST
./run --mkdir /mnt/a/foo101 0755 -E EEXIST
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
TEST mkdir.py:28: Create directory over empty dir
./run --mkdir /mnt/a/empty102 0755 -E EEXIST
TEST mkdir.py:35: Create directory in empty dir
./run --mkdir /mnt/a/empty103/sub 0755
./run --mkdir /mnt/a/empty103/sub 0755 -E EEXIST
TEST mkdir.py:43: Create directory over dir
./run --mkdir /mnt/a/dir104 0755 -E EEXIST
./run --open-file /mnt/a/dir104/a -r -R
TEST mkdir.py:51: Create directory in dir
./run --mkdir /mnt/a/dir105/sub 0755
./run --mkdir /mnt/a/dir105/sub 0755 -E EEXIST
./run --open-file /mnt/a/dir105/a -r -R
TEST mkdir.py:61: Create directory over sym to file
./run --mkdir /mnt/a/direct_sym106 0755 -E EEXIST
./run --mkdir /mnt/a/direct_sym106 0755 -E EEXIST
./run --mkdir /mnt/a/foo106 0755 -E EEXIST
./run --open-file /mnt/a/foo106 -r -R :xxx:yyy:zzz
TEST mkdir.py:73: Create directory over sym to sym to file
./run --mkdir /mnt/a/indirect_sym107 0755 -E EEXIST
./run --mkdir /mnt/a/indirect_sym107 0755 -E EEXIST
./run --mkdir /mnt/a/direct_sym107 0755 -E EEXIST
./run --mkdir /mnt/a/foo107 0755 -E EEXIST
./run --open-file /mnt/a/foo107 -r -R :xxx:yyy:zzz
TEST mkdir.py:87: Create directory over sym to dir
./run --mkdir /mnt/a/direct_dir_sym108 0755 -E EEXIST
./run --mkdir /mnt/a/direct_dir_sym108 0755 -E EEXIST
./run --mkdir /mnt/a/dir108 0755 -E EEXIST
./run --open-file /mnt/a/direct_dir_sym108/a -r -R
./run --open-file /mnt/a/dir108/a -r -R
TEST mkdir.py:99: Create directory over sym to sym to dir
./run --mkdir /mnt/a/indirect_dir_sym109 0755 -E EEXIST
./run --mkdir /mnt/a/indirect_dir_sym109 0755 -E EEXIST
./run --mkdir /mnt/a/direct_dir_sym109 0755 -E EEXIST
./run --mkdir /mnt/a/dir109 0755 -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym109/a -r -R
./run --open-file /mnt/a/direct_dir_sym109/a -r -R
./run --open-file /mnt/a/dir109/a -r -R
TEST mkdir.py:114: Create directory over dangling sym
./run --mkdir /mnt/a/pointless110 0755 -E EEXIST
./run --mkdir /mnt/a/pointless110 0755 -E EEXIST
***
*** ./run --ov --ts=1 mkdir
***
TEST mkdir.py:10: Create directory
./run --mkdir /mnt/a/no_dir100 0755
./run --mkdir /mnt/a/no_dir100 0755 -E EEXIST
TEST mkdir.py:18: Create directory over file
./run --mkdir /mnt/a/foo101 0755 -E EEXIST
./run --mkdir /mnt/a/foo101 0755 -E EEXIST
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
TEST mkdir.py:28: Create directory over empty dir
./run --mkdir /mnt/a/empty102 0755 -E EEXIST
TEST mkdir.py:35: Create directory in empty dir
./run --mkdir /mnt/a/empty103/sub 0755
./run --mkdir /mnt/a/empty103/sub 0755 -E EEXIST
TEST mkdir.py:43: Create directory over dir
./run --mkdir /mnt/a/dir104 0755 -E EEXIST
./run --open-file /mnt/a/dir104/a -r -R
TEST mkdir.py:51: Create directory in dir
./run --mkdir /mnt/a/dir105/sub 0755
./run --mkdir /mnt/a/dir105/sub 0755 -E EEXIST
./run --open-file /mnt/a/dir105/a -r -R
TEST mkdir.py:61: Create directory over sym to file
./run --mkdir /mnt/a/direct_sym106 0755 -E EEXIST
./run --mkdir /mnt/a/direct_sym106 0755 -E EEXIST
./run --mkdir /mnt/a/foo106 0755 -E EEXIST
./run --open-file /mnt/a/foo106 -r -R :xxx:yyy:zzz
TEST mkdir.py:73: Create directory over sym to sym to file
./run --mkdir /mnt/a/indirect_sym107 0755 -E EEXIST
./run --mkdir /mnt/a/indirect_sym107 0755 -E EEXIST
./run --mkdir /mnt/a/direct_sym107 0755 -E EEXIST
./run --mkdir /mnt/a/foo107 0755 -E EEXIST
./run --open-file /mnt/a/foo107 -r -R :xxx:yyy:zzz
TEST mkdir.py:87: Create directory over sym to dir
./run --mkdir /mnt/a/direct_dir_sym108 0755 -E EEXIST
./run --mkdir /mnt/a/direct_dir_sym108 0755 -E EEXIST
./run --mkdir /mnt/a/dir108 0755 -E EEXIST
./run --open-file /mnt/a/direct_dir_sym108/a -r -R
./run --open-file /mnt/a/dir108/a -r -R
TEST mkdir.py:99: Create directory over sym to sym to dir
./run --mkdir /mnt/a/indirect_dir_sym109 0755 -E EEXIST
./run --mkdir /mnt/a/indirect_dir_sym109 0755 -E EEXIST
./run --mkdir /mnt/a/direct_dir_sym109 0755 -E EEXIST
./run --mkdir /mnt/a/dir109 0755 -E EEXIST
./run --open-file /mnt/a/indirect_dir_sym109/a -r -R
./run --open-file /mnt/a/direct_dir_sym109/a -r -R
./run --open-file /mnt/a/dir109/a -r -R
TEST mkdir.py:114: Create directory over dangling sym
./run --mkdir /mnt/a/pointless110 0755 -E EEXIST
./run --mkdir /mnt/a/pointless110 0755 -E EEXIST
***
*** ./run --ov --ts=0 rmdir
***
TEST rmdir.py:10: Remove nonexistent directory
./run --rmdir /mnt/a/no_dir100 -E ENOENT
./run --rmdir /mnt/a/no_dir100 -E ENOENT
TEST rmdir.py:18: Remove subdir from nonexistent directory
./run --rmdir /mnt/a/no_dir101/sub -E ENOENT
./run --rmdir /mnt/a/no_dir101/sub -E ENOENT
TEST rmdir.py:26: Remove-dir a file
./run --rmdir /mnt/a/foo102 -E ENOTDIR
./run --rmdir /mnt/a/foo102 -E ENOTDIR
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
TEST rmdir.py:36: Remove subdir from file
./run --rmdir /mnt/a/foo103/sub -E ENOTDIR
./run --rmdir /mnt/a/foo103/sub -E ENOTDIR
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
TEST rmdir.py:46: Remove empty dir
./run --rmdir /mnt/a/empty104
./run --rmdir /mnt/a/empty104 -E ENOENT
./run --rmdir /mnt/a/empty104/sub -E ENOENT
TEST rmdir.py:56: Remove directory from empty dir
./run --rmdir /mnt/a/empty105/sub -E ENOENT
./run --rmdir /mnt/a/empty105/sub -E ENOENT
TEST rmdir.py:64: Remove populated directory
./run --rmdir /mnt/a/dir106 -E ENOTEMPTY
./run --open-file /mnt/a/dir106/a -r -R
./run --unlink /mnt/a/dir106/a
./run --open-file /mnt/a/dir106/a -r -E ENOENT
./run --unlink /mnt/a/dir106/a -E ENOENT
- rmtree /mnt/a/dir106
./run --open-file /mnt/a/dir106/a -r -R -E ENOENT
TEST rmdir.py:78: Remove populated directory with created file
./run --open-file /mnt/a/empty107/b -w -c -e -W abcq
./run --rmdir /mnt/a/empty107 -E ENOTEMPTY
./run --unlink /mnt/a/empty107/b
./run --open-file /mnt/a/empty107/b -r -E ENOENT
./run --unlink /mnt/a/empty107/b -E ENOENT
- rmtree /mnt/a/empty107
./run --open-file /mnt/a/empty107/b -r -R -E ENOENT
TEST rmdir.py:92: Remove populated directory with copied up file
./run --rmdir /mnt/a/dir108 -E ENOTEMPTY
./run --open-file /mnt/a/dir108/a -r -R
./run --open-file /mnt/a/dir108/a -w -W abcd
./run --open-file /mnt/a/dir108/a -r -R abcd
./run --unlink /mnt/a/dir108/a
./run --open-file /mnt/a/dir108/a -r -E ENOENT
./run --unlink /mnt/a/dir108/a -E ENOENT
- rmtree /mnt/a/dir108
./run --open-file /mnt/a/dir108/a -r -R -E ENOENT
TEST rmdir.py:108: Remove populated directory with mkdir after unlink
./run --rmdir /mnt/a/dir109 -E ENOTEMPTY
./run --open-file /mnt/a/dir109/a -r -R
./run --rmdir /mnt/a/dir109 -E ENOTEMPTY
./run --unlink /mnt/a/dir109/a
./run --open-file /mnt/a/dir109/a -r -E ENOENT
./run --unlink /mnt/a/dir109/a -E ENOENT
./run --mkdir /mnt/a/dir109/a 0755
./run --mkdir /mnt/a/dir109/a 0755 -E EEXIST
./run --rmdir /mnt/a/dir109 -E ENOTEMPTY
./run --rmdir /mnt/a/dir109/a
./run --rmdir /mnt/a/dir109/a -E ENOENT
- rmtree /mnt/a/dir109
./run --open-file /mnt/a/dir109/a -r -R -E ENOENT
TEST rmdir.py:131: Remove directory from dir
./run --rmdir /mnt/a/dir110/pop/c
./run --rmdir /mnt/a/dir110/pop/c -E ENOENT
./run --mkdir /mnt/a/dir110/pop/c 0755
./run --mkdir /mnt/a/dir110/pop/c 0755 -E EEXIST
./run --open-file /mnt/a/dir110/pop/b -r -R :aaa:bbb:ccc
- rmtree /mnt/a/dir110
./run --open-file /mnt/a/dir110/pop/b -r -E ENOENT
TEST rmdir.py:148: Remove-dir symlinks to file
./run --rmdir /mnt/a/indirect_sym111 -E ENOTDIR
./run --rmdir /mnt/a/indirect_sym111 -E ENOTDIR
./run --rmdir /mnt/a/direct_sym111 -E ENOTDIR
./run --rmdir /mnt/a/direct_sym111 -E ENOTDIR
./run --rmdir /mnt/a/foo111 -E ENOTDIR
./run --rmdir /mnt/a/foo111 -E ENOTDIR
./run --open-file /mnt/a/foo111 -r -R :xxx:yyy:zzz
TEST rmdir.py:164: Remove directory over sym to dir
./run --rmdir /mnt/a/direct_dir_sym112 -E ENOTDIR
./run --rmdir /mnt/a/direct_dir_sym112 -E ENOTDIR
./run --rmdir /mnt/a/dir112 -E ENOTEMPTY
./run --open-file /mnt/a/direct_dir_sym112/a -r -R
./run --open-file /mnt/a/dir112/a -r -R
- rmtree /mnt/a/dir112
./run --open-file /mnt/a/direct_dir_sym112/a -r -E ENOENT
./run --open-file /mnt/a/dir112/a -r -E ENOENT
TEST rmdir.py:179: Remove directory over sym to sym to dir
./run --rmdir /mnt/a/indirect_dir_sym113 -E ENOTDIR
./run --rmdir /mnt/a/indirect_dir_sym113 -E ENOTDIR
./run --rmdir /mnt/a/direct_dir_sym113 -E ENOTDIR
./run --rmdir /mnt/a/dir113 -E ENOTEMPTY
./run --open-file /mnt/a/indirect_dir_sym113/a -r -R
./run --open-file /mnt/a/direct_dir_sym113/a -r -R
./run --open-file /mnt/a/dir113/a -r -R
- rmtree /mnt/a/dir113
./run --open-file /mnt/a/indirect_dir_sym113/a -r -E ENOENT
./run --open-file /mnt/a/direct_dir_sym113/a -r -E ENOENT
./run --open-file /mnt/a/dir113/a -r -E ENOENT
TEST rmdir.py:198: Remove directory over dangling sym
./run --rmdir /mnt/a/pointless114 -E ENOTDIR
./run --rmdir /mnt/a/pointless114 -E ENOTDIR
./run --rmdir /mnt/a/no_foo114 -E ENOENT
***
*** ./run --ov --ts=1 rmdir
***
TEST rmdir.py:10: Remove nonexistent directory
./run --rmdir /mnt/a/no_dir100 -E ENOENT
./run --rmdir /mnt/a/no_dir100 -E ENOENT
TEST rmdir.py:18: Remove subdir from nonexistent directory
./run --rmdir /mnt/a/no_dir101/sub -E ENOENT
./run --rmdir /mnt/a/no_dir101/sub -E ENOENT
TEST rmdir.py:26: Remove-dir a file
./run --rmdir /mnt/a/foo102 -E ENOTDIR
./run --rmdir /mnt/a/foo102 -E ENOTDIR
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
TEST rmdir.py:36: Remove subdir from file
./run --rmdir /mnt/a/foo103/sub -E ENOTDIR
./run --rmdir /mnt/a/foo103/sub -E ENOTDIR
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
TEST rmdir.py:46: Remove empty dir
./run --rmdir /mnt/a/empty104
./run --rmdir /mnt/a/empty104 -E ENOENT
./run --rmdir /mnt/a/empty104/sub -E ENOENT
TEST rmdir.py:56: Remove directory from empty dir
./run --rmdir /mnt/a/empty105/sub -E ENOENT
./run --rmdir /mnt/a/empty105/sub -E ENOENT
TEST rmdir.py:64: Remove populated directory
./run --rmdir /mnt/a/dir106 -E ENOTEMPTY
./run --open-file /mnt/a/dir106/a -r -R
./run --unlink /mnt/a/dir106/a
./run --open-file /mnt/a/dir106/a -r -E ENOENT
./run --unlink /mnt/a/dir106/a -E ENOENT
- rmtree /mnt/a/dir106
./run --open-file /mnt/a/dir106/a -r -R -E ENOENT
TEST rmdir.py:78: Remove populated directory with created file
./run --open-file /mnt/a/empty107/b -w -c -e -W abcq
./run --rmdir /mnt/a/empty107 -E ENOTEMPTY
./run --unlink /mnt/a/empty107/b
./run --open-file /mnt/a/empty107/b -r -E ENOENT
./run --unlink /mnt/a/empty107/b -E ENOENT
- rmtree /mnt/a/empty107
./run --open-file /mnt/a/empty107/b -r -R -E ENOENT
TEST rmdir.py:92: Remove populated directory with copied up file
./run --rmdir /mnt/a/dir108 -E ENOTEMPTY
./run --open-file /mnt/a/dir108/a -r -R
./run --open-file /mnt/a/dir108/a -w -W abcd
./run --open-file /mnt/a/dir108/a -r -R abcd
./run --unlink /mnt/a/dir108/a
./run --open-file /mnt/a/dir108/a -r -E ENOENT
./run --unlink /mnt/a/dir108/a -E ENOENT
- rmtree /mnt/a/dir108
./run --open-file /mnt/a/dir108/a -r -R -E ENOENT
TEST rmdir.py:108: Remove populated directory with mkdir after unlink
./run --rmdir /mnt/a/dir109 -E ENOTEMPTY
./run --open-file /mnt/a/dir109/a -r -R
./run --rmdir /mnt/a/dir109 -E ENOTEMPTY
./run --unlink /mnt/a/dir109/a
./run --open-file /mnt/a/dir109/a -r -E ENOENT
./run --unlink /mnt/a/dir109/a -E ENOENT
./run --mkdir /mnt/a/dir109/a 0755
./run --mkdir /mnt/a/dir109/a 0755 -E EEXIST
./run --rmdir /mnt/a/dir109 -E ENOTEMPTY
./run --rmdir /mnt/a/dir109/a
./run --rmdir /mnt/a/dir109/a -E ENOENT
- rmtree /mnt/a/dir109
./run --open-file /mnt/a/dir109/a -r -R -E ENOENT
TEST rmdir.py:131: Remove directory from dir
./run --rmdir /mnt/a/dir110/pop/c
./run --rmdir /mnt/a/dir110/pop/c -E ENOENT
./run --mkdir /mnt/a/dir110/pop/c 0755
./run --mkdir /mnt/a/dir110/pop/c 0755 -E EEXIST
./run --open-file /mnt/a/dir110/pop/b -r -R :aaa:bbb:ccc
- rmtree /mnt/a/dir110
./run --open-file /mnt/a/dir110/pop/b -r -E ENOENT
TEST rmdir.py:148: Remove-dir symlinks to file
./run --rmdir /mnt/a/indirect_sym111 -E ENOTDIR
./run --rmdir /mnt/a/indirect_sym111 -E ENOTDIR
./run --rmdir /mnt/a/direct_sym111 -E ENOTDIR
./run --rmdir /mnt/a/direct_sym111 -E ENOTDIR
./run --rmdir /mnt/a/foo111 -E ENOTDIR
./run --rmdir /mnt/a/foo111 -E ENOTDIR
./run --open-file /mnt/a/foo111 -r -R :xxx:yyy:zzz
TEST rmdir.py:164: Remove directory over sym to dir
./run --rmdir /mnt/a/direct_dir_sym112 -E ENOTDIR
./run --rmdir /mnt/a/direct_dir_sym112 -E ENOTDIR
./run --rmdir /mnt/a/dir112 -E ENOTEMPTY
./run --open-file /mnt/a/direct_dir_sym112/a -r -R
./run --open-file /mnt/a/dir112/a -r -R
- rmtree /mnt/a/dir112
./run --open-file /mnt/a/direct_dir_sym112/a -r -E ENOENT
./run --open-file /mnt/a/dir112/a -r -E ENOENT
TEST rmdir.py:179: Remove directory over sym to sym to dir
./run --rmdir /mnt/a/indirect_dir_sym113 -E ENOTDIR
./run --rmdir /mnt/a/indirect_dir_sym113 -E ENOTDIR
./run --rmdir /mnt/a/direct_dir_sym113 -E ENOTDIR
./run --rmdir /mnt/a/dir113 -E ENOTEMPTY
./run --open-file /mnt/a/indirect_dir_sym113/a -r -R
./run --open-file /mnt/a/direct_dir_sym113/a -r -R
./run --open-file /mnt/a/dir113/a -r -R
- rmtree /mnt/a/dir113
./run --open-file /mnt/a/indirect_dir_sym113/a -r -E ENOENT
./run --open-file /mnt/a/direct_dir_sym113/a -r -E ENOENT
./run --open-file /mnt/a/dir113/a -r -E ENOENT
TEST rmdir.py:198: Remove directory over dangling sym
./run --rmdir /mnt/a/pointless114 -E ENOTDIR
./run --rmdir /mnt/a/pointless114 -E ENOTDIR
./run --rmdir /mnt/a/no_foo114 -E ENOENT
***
*** ./run --ov --ts=0 hard-link
***
TEST hard-link.py:10: Hard link file
./run --link /mnt/a/foo100 /mnt/a/no_foo100
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo100 -r -R :xxx:yyy:zzz
TEST hard-link.py:20: Hard link non-existent file
./run --link /mnt/a/no_foo101 /mnt/a/no_foo101a -E ENOENT
./run --open-file /mnt/a/no_foo101 -r -E ENOENT
./run --open-file /mnt/a/no_foo101a -r -E ENOENT
TEST hard-link.py:30: Hard link non-existent file over a file
./run --link /mnt/a/no_foo102 /mnt/a/foo102 -E ENOENT
./run --open-file /mnt/a/no_foo102 -r -E ENOENT
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
TEST hard-link.py:40: Hard link file over file
./run --link /mnt/a/foo103 /mnt/a/dir103/a -E EEXIST
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/dir103/a -r -R
TEST hard-link.py:50: Hard link file over new file
./run --open-file /mnt/a/foo104-new -w -c -W aaaa
./run --link /mnt/a/foo104 /mnt/a/foo104-new -E EEXIST
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo104-new -r -R aaaa
TEST hard-link.py:61: Hard link new file over lower file
./run --open-file /mnt/a/foo105-new -w -c -W aaaa
./run --link /mnt/a/foo105-new /mnt/a/foo105 -E EEXIST
./run --open-file /mnt/a/foo105-new -r -R aaaa
./run --open-file /mnt/a/foo105 -r -R :xxx:yyy:zzz
TEST hard-link.py:72: Hard link file over itself
./run --link /mnt/a/foo106 /mnt/a/foo106 -E EEXIST
./run --open-file /mnt/a/foo106 -r -R :xxx:yyy:zzz
TEST hard-link.py:80: Hard link new file over itself
./run --open-file /mnt/a/foo107-new -w -c -W aaaa
./run --link /mnt/a/foo107-new /mnt/a/foo107-new -E EEXIST
./run --open-file /mnt/a/foo107-new -r -R aaaa
TEST hard-link.py:89: Hard link non-existent file over itself
./run --link /mnt/a/no_foo108 /mnt/a/no_foo108 -E ENOENT
./run --open-file /mnt/a/no_foo108 -r -E ENOENT
TEST hard-link.py:97: Hard link unlinked file
./run --unlink /mnt/a/foo109
./run --link /mnt/a/foo109 /mnt/a/no_foo109 -E ENOENT
./run --open-file /mnt/a/foo109 -r -E ENOENT
./run --open-file /mnt/a/no_foo109 -r -E ENOENT
TEST hard-link.py:108: Hard link renamed file
./run --rename /mnt/a/foo110 /mnt/a/no_foo110
./run --link /mnt/a/foo110 /mnt/a/no_foo110-a -E ENOENT
./run --link /mnt/a/no_foo110 /mnt/a/foo110
./run --open-file /mnt/a/foo110 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo110 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo110-a -r -E ENOENT
***
*** ./run --ov --ts=1 hard-link
***
TEST hard-link.py:10: Hard link file
./run --link /mnt/a/foo100 /mnt/a/no_foo100
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo100 -r -R :xxx:yyy:zzz
TEST hard-link.py:20: Hard link non-existent file
./run --link /mnt/a/no_foo101 /mnt/a/no_foo101a -E ENOENT
./run --open-file /mnt/a/no_foo101 -r -E ENOENT
./run --open-file /mnt/a/no_foo101a -r -E ENOENT
TEST hard-link.py:30: Hard link non-existent file over a file
./run --link /mnt/a/no_foo102 /mnt/a/foo102 -E ENOENT
./run --open-file /mnt/a/no_foo102 -r -E ENOENT
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
TEST hard-link.py:40: Hard link file over file
./run --link /mnt/a/foo103 /mnt/a/dir103/a -E EEXIST
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/dir103/a -r -R
TEST hard-link.py:50: Hard link file over new file
./run --open-file /mnt/a/foo104-new -w -c -W aaaa
./run --link /mnt/a/foo104 /mnt/a/foo104-new -E EEXIST
./run --open-file /mnt/a/foo104 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo104-new -r -R aaaa
TEST hard-link.py:61: Hard link new file over lower file
./run --open-file /mnt/a/foo105-new -w -c -W aaaa
./run --link /mnt/a/foo105-new /mnt/a/foo105 -E EEXIST
./run --open-file /mnt/a/foo105-new -r -R aaaa
./run --open-file /mnt/a/foo105 -r -R :xxx:yyy:zzz
TEST hard-link.py:72: Hard link file over itself
./run --link /mnt/a/foo106 /mnt/a/foo106 -E EEXIST
./run --open-file /mnt/a/foo106 -r -R :xxx:yyy:zzz
TEST hard-link.py:80: Hard link new file over itself
./run --open-file /mnt/a/foo107-new -w -c -W aaaa
./run --link /mnt/a/foo107-new /mnt/a/foo107-new -E EEXIST
./run --open-file /mnt/a/foo107-new -r -R aaaa
TEST hard-link.py:89: Hard link non-existent file over itself
./run --link /mnt/a/no_foo108 /mnt/a/no_foo108 -E ENOENT
./run --open-file /mnt/a/no_foo108 -r -E ENOENT
TEST hard-link.py:97: Hard link unlinked file
./run --unlink /mnt/a/foo109
./run --link /mnt/a/foo109 /mnt/a/no_foo109 -E ENOENT
./run --open-file /mnt/a/foo109 -r -E ENOENT
./run --open-file /mnt/a/no_foo109 -r -E ENOENT
TEST hard-link.py:108: Hard link renamed file
./run --rename /mnt/a/foo110 /mnt/a/no_foo110
./run --link /mnt/a/foo110 /mnt/a/no_foo110-a -E ENOENT
./run --link /mnt/a/no_foo110 /mnt/a/foo110
./run --open-file /mnt/a/foo110 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo110 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo110-a -r -E ENOENT
***
*** ./run --ov --ts=0 hard-link-dir
***
TEST hard-link-dir.py:10: Hard link dir
./run --link /mnt/a/empty100 /mnt/a/no_dir100 -E EPERM
./run --open-file /mnt/a/empty100 -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST hard-link-dir.py:20: Hard link file over dir
./run --link /mnt/a/foo101 /mnt/a/empty101 -E EEXIST
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/empty101 -r -d
TEST hard-link-dir.py:30: Hard link dir over dir
./run --link /mnt/a/dir102 /mnt/a/empty102 -E EEXIST
./run --open-file /mnt/a/dir102 -r -d
./run --open-file /mnt/a/empty102 -r -d
TEST hard-link-dir.py:40: Hard link dir over dir
./run --link /mnt/a/dir103 /mnt/a/foo103 -E EEXIST
./run --open-file /mnt/a/dir103 -r -d
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
TEST hard-link-dir.py:50: Hard link dir over itself
./run --link /mnt/a/dir104 /mnt/a/dir104 -E EEXIST
./run --open-file /mnt/a/dir104 -r -d
TEST hard-link-dir.py:58: Hard link dir over its parent
./run --link /mnt/a/dir105/pop /mnt/a/dir105 -E EEXIST
./run --open-file /mnt/a/dir105/pop -r -d
./run --open-file /mnt/a/dir105 -r -d
TEST hard-link-dir.py:68: Hard link removed dir
./run --rmdir /mnt/a/empty106
./run --link /mnt/a/empty106 /mnt/a/no_dir106 -E ENOENT
./run --open-file /mnt/a/empty106 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir106 -r -d -E ENOENT
TEST hard-link-dir.py:79: Hard link renamed dir
./run --mkdir /mnt/a/empty107/new 0755
./run --rename /mnt/a/empty107/new /mnt/a/no_dir107
./run --link /mnt/a/empty107/new /mnt/a/no_dir107-a -E ENOENT
./run --link /mnt/a/no_dir107 /mnt/a/empty107/new -E EPERM
./run --open-file /mnt/a/empty107/new -r -d -E ENOENT
./run --open-file /mnt/a/no_dir107 -r -d
./run --open-file /mnt/a/no_dir107-a -r -d -E ENOENT
***
*** ./run --ov --ts=1 hard-link-dir
***
TEST hard-link-dir.py:10: Hard link dir
./run --link /mnt/a/empty100 /mnt/a/no_dir100 -E EPERM
./run --open-file /mnt/a/empty100 -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST hard-link-dir.py:20: Hard link file over dir
./run --link /mnt/a/foo101 /mnt/a/empty101 -E EEXIST
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/empty101 -r -d
TEST hard-link-dir.py:30: Hard link dir over dir
./run --link /mnt/a/dir102 /mnt/a/empty102 -E EEXIST
./run --open-file /mnt/a/dir102 -r -d
./run --open-file /mnt/a/empty102 -r -d
TEST hard-link-dir.py:40: Hard link dir over dir
./run --link /mnt/a/dir103 /mnt/a/foo103 -E EEXIST
./run --open-file /mnt/a/dir103 -r -d
./run --open-file /mnt/a/foo103 -r -R :xxx:yyy:zzz
TEST hard-link-dir.py:50: Hard link dir over itself
./run --link /mnt/a/dir104 /mnt/a/dir104 -E EEXIST
./run --open-file /mnt/a/dir104 -r -d
TEST hard-link-dir.py:58: Hard link dir over its parent
./run --link /mnt/a/dir105/pop /mnt/a/dir105 -E EEXIST
./run --open-file /mnt/a/dir105/pop -r -d
./run --open-file /mnt/a/dir105 -r -d
TEST hard-link-dir.py:68: Hard link removed dir
./run --rmdir /mnt/a/empty106
./run --link /mnt/a/empty106 /mnt/a/no_dir106 -E ENOENT
./run --open-file /mnt/a/empty106 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir106 -r -d -E ENOENT
TEST hard-link-dir.py:79: Hard link renamed dir
./run --mkdir /mnt/a/empty107/new 0755
./run --rename /mnt/a/empty107/new /mnt/a/no_dir107
./run --link /mnt/a/empty107/new /mnt/a/no_dir107-a -E ENOENT
./run --link /mnt/a/no_dir107 /mnt/a/empty107/new -E EPERM
./run --open-file /mnt/a/empty107/new -r -d -E ENOENT
./run --open-file /mnt/a/no_dir107 -r -d
./run --open-file /mnt/a/no_dir107-a -r -d -E ENOENT
***
*** ./run --ov --ts=0 hard-link-sym
***
TEST hard-link-sym.py:10: Hard link symlink
./run --link /mnt/a/direct_sym100 /mnt/a/no_foo100
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo100 -r -R :xxx:yyy:zzz
TEST hard-link-sym.py:20: Hard link dangling symlink
./run --link /mnt/a/pointless101 /mnt/a/no_foo101
./run --open-file /mnt/a/pointless101 -r -E ELOOP
./run --open-file /mnt/a/no_foo101 -r -E ELOOP
TEST hard-link-sym.py:30: Hard link non-existent file over a symlink
./run --link /mnt/a/no_foo102 /mnt/a/direct_sym102 -E ENOENT
./run --open-file /mnt/a/no_foo102 -r -E ENOENT
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
TEST hard-link-sym.py:40: Hard link symlink over file
./run --link /mnt/a/direct_sym103 /mnt/a/dir103/a -E EEXIST
./run --open-file /mnt/a/direct_sym103 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/dir103/a -r -R
TEST hard-link-sym.py:50: Hard link symlink over new file
./run --open-file /mnt/a/foo104-new -w -c -W aaaa
./run --link /mnt/a/direct_sym104 /mnt/a/foo104-new -E EEXIST
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo104-new -r -R aaaa
TEST hard-link-sym.py:61: Hard link new file over symlink
./run --open-file /mnt/a/foo105-new -w -c -W aaaa
./run --link /mnt/a/foo105-new /mnt/a/direct_sym105 -E EEXIST
./run --open-file /mnt/a/foo105-new -r -R aaaa
./run --open-file /mnt/a/direct_sym105 -r -R :xxx:yyy:zzz
TEST hard-link-sym.py:72: Hard link symlink over itself
./run --link /mnt/a/direct_sym106 /mnt/a/direct_sym106 -E EEXIST
./run --open-file /mnt/a/direct_sym106 -r -R :xxx:yyy:zzz
TEST hard-link-sym.py:80: Hard link symlink over another symlink
./run --link /mnt/a/direct_sym107 /mnt/a/pointless107 -E EEXIST
./run --open-file /mnt/a/direct_sym107 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/pointless107 -r -E ENOENT
TEST hard-link-sym.py:90: Hard link unlinked symlink
./run --unlink /mnt/a/direct_sym108
./run --link /mnt/a/direct_sym108 /mnt/a/no_foo108 -E ENOENT
./run --open-file /mnt/a/direct_sym108 -r -E ENOENT
./run --open-file /mnt/a/no_foo108 -r -E ENOENT
TEST hard-link-sym.py:101: Hard link renamed symlink
./run --rename /mnt/a/direct_sym109 /mnt/a/no_foo109
./run --link /mnt/a/direct_sym109 /mnt/a/no_foo109-a -E ENOENT
./run --link /mnt/a/no_foo109 /mnt/a/direct_sym109
./run --open-file /mnt/a/direct_sym109 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo109 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo109-a -r -E ENOENT
***
*** ./run --ov --ts=1 hard-link-sym
***
TEST hard-link-sym.py:10: Hard link symlink
./run --link /mnt/a/direct_sym100 /mnt/a/no_foo100
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo100 -r -R :xxx:yyy:zzz
TEST hard-link-sym.py:20: Hard link dangling symlink
./run --link /mnt/a/pointless101 /mnt/a/no_foo101
./run --open-file /mnt/a/pointless101 -r -E ELOOP
./run --open-file /mnt/a/no_foo101 -r -E ELOOP
TEST hard-link-sym.py:30: Hard link non-existent file over a symlink
./run --link /mnt/a/no_foo102 /mnt/a/direct_sym102 -E ENOENT
./run --open-file /mnt/a/no_foo102 -r -E ENOENT
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
TEST hard-link-sym.py:40: Hard link symlink over file
./run --link /mnt/a/direct_sym103 /mnt/a/dir103/a -E EEXIST
./run --open-file /mnt/a/direct_sym103 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/dir103/a -r -R
TEST hard-link-sym.py:50: Hard link symlink over new file
./run --open-file /mnt/a/foo104-new -w -c -W aaaa
./run --link /mnt/a/direct_sym104 /mnt/a/foo104-new -E EEXIST
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo104-new -r -R aaaa
TEST hard-link-sym.py:61: Hard link new file over symlink
./run --open-file /mnt/a/foo105-new -w -c -W aaaa
./run --link /mnt/a/foo105-new /mnt/a/direct_sym105 -E EEXIST
./run --open-file /mnt/a/foo105-new -r -R aaaa
./run --open-file /mnt/a/direct_sym105 -r -R :xxx:yyy:zzz
TEST hard-link-sym.py:72: Hard link symlink over itself
./run --link /mnt/a/direct_sym106 /mnt/a/direct_sym106 -E EEXIST
./run --open-file /mnt/a/direct_sym106 -r -R :xxx:yyy:zzz
TEST hard-link-sym.py:80: Hard link symlink over another symlink
./run --link /mnt/a/direct_sym107 /mnt/a/pointless107 -E EEXIST
./run --open-file /mnt/a/direct_sym107 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/pointless107 -r -E ENOENT
TEST hard-link-sym.py:90: Hard link unlinked symlink
./run --unlink /mnt/a/direct_sym108
./run --link /mnt/a/direct_sym108 /mnt/a/no_foo108 -E ENOENT
./run --open-file /mnt/a/direct_sym108 -r -E ENOENT
./run --open-file /mnt/a/no_foo108 -r -E ENOENT
TEST hard-link-sym.py:101: Hard link renamed symlink
./run --rename /mnt/a/direct_sym109 /mnt/a/no_foo109
./run --link /mnt/a/direct_sym109 /mnt/a/no_foo109-a -E ENOENT
./run --link /mnt/a/no_foo109 /mnt/a/direct_sym109
./run --open-file /mnt/a/direct_sym109 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo109 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo109-a -r -E ENOENT
***
*** ./run --ov --ts=0 unlink
***
TEST unlink.py:9: Unlink file
./run --unlink /mnt/a/foo100
./run --open-file /mnt/a/foo100 -r -E ENOENT
./run --unlink /mnt/a/foo100 -E ENOENT
./run --open-file /mnt/a/foo100 -r -E ENOENT
TEST unlink.py:19: Unlink direct symlink to file
./run --open-file /mnt/a/direct_sym101 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/direct_sym101
./run --open-file /mnt/a/direct_sym101 -r -E ENOENT
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/direct_sym101 -E ENOENT
./run --open-file /mnt/a/direct_sym101 -r -E ENOENT
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
TEST unlink.py:33: Unlink indirect symlink to file
./run --open-file /mnt/a/indirect_sym102 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/indirect_sym102
./run --open-file /mnt/a/indirect_sym102 -r -E ENOENT
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/indirect_sym102 -E ENOENT
./run --open-file /mnt/a/indirect_sym102 -r -E ENOENT
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
TEST unlink.py:52: Unlink dir
./run --unlink /mnt/a/dir103 -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
./run --unlink /mnt/a/dir103 -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
TEST unlink.py:62: Unlink direct symlink to dir
./run --open-file /mnt/a/direct_dir_sym104 -r -d
./run --unlink /mnt/a/direct_dir_sym104
./run --open-file /mnt/a/direct_dir_sym104 -r -d -E ENOENT
./run --open-file /mnt/a/dir104 -r -d
./run --unlink /mnt/a/direct_dir_sym104 -E ENOENT
./run --open-file /mnt/a/direct_dir_sym104 -r -d -E ENOENT
./run --open-file /mnt/a/dir104 -r -d
TEST unlink.py:82: Unlink indirect symlink to dir
./run --open-file /mnt/a/indirect_dir_sym105 -r -d
./run --unlink /mnt/a/indirect_dir_sym105
./run --open-file /mnt/a/indirect_dir_sym105 -r -d -E ENOENT
./run --open-file /mnt/a/direct_dir_sym105 -r -d
./run --open-file /mnt/a/dir105 -r -d
./run --unlink /mnt/a/indirect_dir_sym105 -E ENOENT
./run --open-file /mnt/a/indirect_dir_sym105 -r -d -E ENOENT
./run --open-file /mnt/a/direct_dir_sym105 -r -d
TEST unlink.py:107: Unlink absent file
./run --unlink /mnt/a/no_foo106 -E ENOENT
./run --unlink /mnt/a/no_foo106 -E ENOENT
TEST unlink.py:114: Unlink broken symlink to absent file
./run --unlink /mnt/a/pointless107
./run --unlink /mnt/a/pointless107 -E ENOENT
TEST unlink.py:121: Unlink broken symlink
./run --unlink /mnt/a/pointless108
./run --unlink /mnt/a/pointless108 -E ENOENT
TEST unlink.py:128: Unlink absent file pointed to by broken symlink
./run --unlink /mnt/a/no_foo109 -E ENOENT
./run --unlink /mnt/a/no_foo109 -E ENOENT
***
*** ./run --ov --ts=1 unlink
***
TEST unlink.py:9: Unlink file
./run --unlink /mnt/a/foo100
./run --open-file /mnt/a/foo100 -r -E ENOENT
./run --unlink /mnt/a/foo100 -E ENOENT
./run --open-file /mnt/a/foo100 -r -E ENOENT
TEST unlink.py:19: Unlink direct symlink to file
./run --open-file /mnt/a/direct_sym101 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/direct_sym101
./run --open-file /mnt/a/direct_sym101 -r -E ENOENT
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/direct_sym101 -E ENOENT
./run --open-file /mnt/a/direct_sym101 -r -E ENOENT
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
TEST unlink.py:33: Unlink indirect symlink to file
./run --open-file /mnt/a/indirect_sym102 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/indirect_sym102
./run --open-file /mnt/a/indirect_sym102 -r -E ENOENT
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/indirect_sym102 -E ENOENT
./run --open-file /mnt/a/indirect_sym102 -r -E ENOENT
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
TEST unlink.py:52: Unlink dir
./run --unlink /mnt/a/dir103 -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
./run --unlink /mnt/a/dir103 -E EISDIR
./run --open-file /mnt/a/dir103 -r -d
TEST unlink.py:62: Unlink direct symlink to dir
./run --open-file /mnt/a/direct_dir_sym104 -r -d
./run --unlink /mnt/a/direct_dir_sym104
./run --open-file /mnt/a/direct_dir_sym104 -r -d -E ENOENT
./run --open-file /mnt/a/dir104 -r -d
./run --unlink /mnt/a/direct_dir_sym104 -E ENOENT
./run --open-file /mnt/a/direct_dir_sym104 -r -d -E ENOENT
./run --open-file /mnt/a/dir104 -r -d
TEST unlink.py:82: Unlink indirect symlink to dir
./run --open-file /mnt/a/indirect_dir_sym105 -r -d
./run --unlink /mnt/a/indirect_dir_sym105
./run --open-file /mnt/a/indirect_dir_sym105 -r -d -E ENOENT
./run --open-file /mnt/a/direct_dir_sym105 -r -d
./run --open-file /mnt/a/dir105 -r -d
./run --unlink /mnt/a/indirect_dir_sym105 -E ENOENT
./run --open-file /mnt/a/indirect_dir_sym105 -r -d -E ENOENT
./run --open-file /mnt/a/direct_dir_sym105 -r -d
TEST unlink.py:107: Unlink absent file
./run --unlink /mnt/a/no_foo106 -E ENOENT
./run --unlink /mnt/a/no_foo106 -E ENOENT
TEST unlink.py:114: Unlink broken symlink to absent file
./run --unlink /mnt/a/pointless107
./run --unlink /mnt/a/pointless107 -E ENOENT
TEST unlink.py:121: Unlink broken symlink
./run --unlink /mnt/a/pointless108
./run --unlink /mnt/a/pointless108 -E ENOENT
TEST unlink.py:128: Unlink absent file pointed to by broken symlink
./run --unlink /mnt/a/no_foo109 -E ENOENT
./run --unlink /mnt/a/no_foo109 -E ENOENT
***
*** ./run --ov --ts=0 rename-file
***
TEST rename-file.py:10: Rename file and rename back
./run --rename /mnt/a/foo100 /mnt/a/no_foo100
./run --rename /mnt/a/foo100 /mnt/a/no_foo100 -E ENOENT
./run --rename /mnt/a/no_foo100 /mnt/a/foo100
./run --rename /mnt/a/no_foo100 /mnt/a/foo100 -E ENOENT
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo100 -r -E ENOENT
TEST rename-file.py:23: Rename file and unlink old name
./run --rename /mnt/a/foo101 /mnt/a/no_foo101
./run --unlink /mnt/a/foo101 -E ENOENT
./run --rename /mnt/a/no_foo101 /mnt/a/foo101
./run --rename /mnt/a/no_foo101 /mnt/a/foo101 -E ENOENT
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/foo101
./run --unlink /mnt/a/foo101 -E ENOENT
./run --open-file /mnt/a/foo101 -r -E ENOENT
./run --open-file /mnt/a/no_foo101 -r -E ENOENT
TEST rename-file.py:39: Rename file and rmdir old name
./run --rename /mnt/a/foo102 /mnt/a/no_foo102
./run --rmdir /mnt/a/foo102 -E ENOENT
./run --rename /mnt/a/no_foo102 /mnt/a/foo102
./run --rename /mnt/a/no_foo102 /mnt/a/foo102 -E ENOENT
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
./run --rmdir /mnt/a/foo102 -E ENOTDIR
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo102 -r -E ENOENT
TEST rename-file.py:54: Unlink file and rename old name
./run --unlink /mnt/a/foo103
./run --rename /mnt/a/foo103 /mnt/a/no_foo103 -E ENOENT
./run --unlink /mnt/a/foo103 -E ENOENT
./run --unlink /mnt/a/no_foo103 -E ENOENT
TEST rename-file.py:65: Rmdir file and rename old name
./run --rmdir /mnt/a/foo104 -E ENOTDIR
./run --rename /mnt/a/foo104 /mnt/a/no_foo104
./run --rmdir /mnt/a/foo104 -E ENOENT
./run --unlink /mnt/a/no_foo104
TEST rename-file.py:76: Rename file twice
./run --rename /mnt/a/foo105 /mnt/a/no_foo105
./run --rename /mnt/a/foo105 /mnt/a/no_foo105 -E ENOENT
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo105x
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo105x -E ENOENT
./run --open-file /mnt/a/foo105 -r -E ENOENT
./run --open-file /mnt/a/no_foo105 -r -E ENOENT
./run --open-file /mnt/a/no_foo105x -r -R :xxx:yyy:zzz
TEST rename-file.py:91: Rename file over another
./run --rename /mnt/a/foo106 /mnt/a/dir106/a
./run --rename /mnt/a/foo106 /mnt/a/dir106/a -E ENOENT
./run --open-file /mnt/a/foo106 -r -E ENOENT
./run --open-file /mnt/a/dir106/a -r -R :xxx:yyy:zzz
TEST rename-file.py:102: Rename file over itself
./run --rename /mnt/a/foo107 /mnt/a/foo107
./run --open-file /mnt/a/foo107 -r -R :xxx:yyy:zzz
TEST rename-file.py:110: Rename file over a dir
./run --rename /mnt/a/foo108 /mnt/a/empty108 -E EISDIR
./run --rename /mnt/a/foo108 /mnt/a/dir108 -E EISDIR
./run --open-file /mnt/a/foo108 -r -R :xxx:yyy:zzz
TEST rename-file.py:121: Rename file over parent dir
./run --rename /mnt/a/foo109 /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/foo109 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=1 rename-file
***
TEST rename-file.py:10: Rename file and rename back
./run --rename /mnt/a/foo100 /mnt/a/no_foo100
./run --rename /mnt/a/foo100 /mnt/a/no_foo100 -E ENOENT
./run --rename /mnt/a/no_foo100 /mnt/a/foo100
./run --rename /mnt/a/no_foo100 /mnt/a/foo100 -E ENOENT
./run --open-file /mnt/a/foo100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo100 -r -E ENOENT
TEST rename-file.py:23: Rename file and unlink old name
./run --rename /mnt/a/foo101 /mnt/a/no_foo101
./run --unlink /mnt/a/foo101 -E ENOENT
./run --rename /mnt/a/no_foo101 /mnt/a/foo101
./run --rename /mnt/a/no_foo101 /mnt/a/foo101 -E ENOENT
./run --open-file /mnt/a/foo101 -r -R :xxx:yyy:zzz
./run --unlink /mnt/a/foo101
./run --unlink /mnt/a/foo101 -E ENOENT
./run --open-file /mnt/a/foo101 -r -E ENOENT
./run --open-file /mnt/a/no_foo101 -r -E ENOENT
TEST rename-file.py:39: Rename file and rmdir old name
./run --rename /mnt/a/foo102 /mnt/a/no_foo102
./run --rmdir /mnt/a/foo102 -E ENOENT
./run --rename /mnt/a/no_foo102 /mnt/a/foo102
./run --rename /mnt/a/no_foo102 /mnt/a/foo102 -E ENOENT
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
./run --rmdir /mnt/a/foo102 -E ENOTDIR
./run --open-file /mnt/a/foo102 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/no_foo102 -r -E ENOENT
TEST rename-file.py:54: Unlink file and rename old name
./run --unlink /mnt/a/foo103
./run --rename /mnt/a/foo103 /mnt/a/no_foo103 -E ENOENT
./run --unlink /mnt/a/foo103 -E ENOENT
./run --unlink /mnt/a/no_foo103 -E ENOENT
TEST rename-file.py:65: Rmdir file and rename old name
./run --rmdir /mnt/a/foo104 -E ENOTDIR
./run --rename /mnt/a/foo104 /mnt/a/no_foo104
./run --rmdir /mnt/a/foo104 -E ENOENT
./run --unlink /mnt/a/no_foo104
TEST rename-file.py:76: Rename file twice
./run --rename /mnt/a/foo105 /mnt/a/no_foo105
./run --rename /mnt/a/foo105 /mnt/a/no_foo105 -E ENOENT
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo105x
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo105x -E ENOENT
./run --open-file /mnt/a/foo105 -r -E ENOENT
./run --open-file /mnt/a/no_foo105 -r -E ENOENT
./run --open-file /mnt/a/no_foo105x -r -R :xxx:yyy:zzz
TEST rename-file.py:91: Rename file over another
./run --rename /mnt/a/foo106 /mnt/a/dir106/a
./run --rename /mnt/a/foo106 /mnt/a/dir106/a -E ENOENT
./run --open-file /mnt/a/foo106 -r -E ENOENT
./run --open-file /mnt/a/dir106/a -r -R :xxx:yyy:zzz
TEST rename-file.py:102: Rename file over itself
./run --rename /mnt/a/foo107 /mnt/a/foo107
./run --open-file /mnt/a/foo107 -r -R :xxx:yyy:zzz
TEST rename-file.py:110: Rename file over a dir
./run --rename /mnt/a/foo108 /mnt/a/empty108 -E EISDIR
./run --rename /mnt/a/foo108 /mnt/a/dir108 -E EISDIR
./run --open-file /mnt/a/foo108 -r -R :xxx:yyy:zzz
TEST rename-file.py:121: Rename file over parent dir
./run --rename /mnt/a/foo109 /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/foo109 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=0 rename-empty-dir
***
TEST rename-empty-dir.py:10: Rename empty dir and rename back
./run --rename /mnt/a/empty100 /mnt/a/no_dir100 -E EXDEV
./run --rename /mnt/a/empty100 /mnt/a/no_dir100 -E EXDEV
./run --rename /mnt/a/no_dir100 /mnt/a/empty100 -E ENOENT
./run --rename /mnt/a/no_dir100 /mnt/a/empty100 -E ENOENT
./run --open-file /mnt/a/empty100 -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST rename-empty-dir.py:23: Rename empty dir and remove old name
./run --rename /mnt/a/empty101 /mnt/a/no_dir101 -E EXDEV
./run --rmdir /mnt/a/empty101
./run --rename /mnt/a/no_dir101 /mnt/a/empty101 -E ENOENT
./run --rename /mnt/a/no_dir101 /mnt/a/empty101 -E ENOENT
./run --open-file /mnt/a/empty101 -r -d -E ENOENT
./run --rmdir /mnt/a/empty101 -E ENOENT
./run --rmdir /mnt/a/empty101 -E ENOENT
./run --open-file /mnt/a/empty101 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir101 -r -d -E ENOENT
TEST rename-empty-dir.py:39: Rename empty dir and unlink old name
./run --rename /mnt/a/empty102 /mnt/a/no_dir102 -E EXDEV
./run --unlink /mnt/a/empty102 -E EISDIR
./run --rename /mnt/a/no_dir102 /mnt/a/empty102 -E ENOENT
./run --rename /mnt/a/no_dir102 /mnt/a/empty102 -E ENOENT
./run --open-file /mnt/a/empty102 -r -d
./run --unlink /mnt/a/empty102 -E EISDIR
./run --open-file /mnt/a/empty102 -r -d
./run --open-file /mnt/a/no_dir102 -r -d -E ENOENT
TEST rename-empty-dir.py:54: Remove dir and rename old name
./run --rmdir /mnt/a/empty103
./run --rename /mnt/a/empty103 /mnt/a/no_dir103 -E ENOENT
./run --rmdir /mnt/a/empty103 -E ENOENT
./run --rmdir /mnt/a/no_dir103 -E ENOENT
TEST rename-empty-dir.py:65: Unlink dir and rename old name
./run --unlink /mnt/a/empty104 -E EISDIR
./run --rename /mnt/a/empty104 /mnt/a/no_dir104 -E EXDEV
./run --unlink /mnt/a/empty104 -E EISDIR
./run --rmdir /mnt/a/no_dir104 -E ENOENT
TEST rename-empty-dir.py:76: Rename empty dir twice
./run --rename /mnt/a/empty105 /mnt/a/no_dir105 -E EXDEV
./run --rename /mnt/a/empty105 /mnt/a/no_dir105 -E EXDEV
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --open-file /mnt/a/empty105 -r -d
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105x -r -d -E ENOENT
TEST rename-empty-dir.py:91: Rename empty dir over another populated dir
./run --rename /mnt/a/empty106 /mnt/a/dir106 -E EXDEV
./run --open-file /mnt/a/empty106 -r -d
./run --open-file /mnt/a/dir106 -r -d
TEST rename-empty-dir.py:101: Rename empty dir over itself
./run --rename /mnt/a/empty107 /mnt/a/empty107
./run --open-file /mnt/a/empty107 -r -d
TEST rename-empty-dir.py:109: Rename empty dir over a file
./run --rename /mnt/a/empty108 /mnt/a/foo108 -E ENOTDIR
./run --rename /mnt/a/empty108 /mnt/a/dir108/a -E ENOTDIR
./run --open-file /mnt/a/empty108 -r -d
TEST rename-empty-dir.py:120: Rename empty dir over parent dir
./run --rename /mnt/a/empty109 /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/empty109 -r -d
***
*** ./run --ov --ts=1 rename-empty-dir
***
TEST rename-empty-dir.py:10: Rename empty dir and rename back
./run --rename /mnt/a/empty100 /mnt/a/no_dir100 -E EXDEV
./run --rename /mnt/a/empty100 /mnt/a/no_dir100 -E EXDEV
./run --rename /mnt/a/no_dir100 /mnt/a/empty100 -E ENOENT
./run --rename /mnt/a/no_dir100 /mnt/a/empty100 -E ENOENT
./run --open-file /mnt/a/empty100 -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST rename-empty-dir.py:23: Rename empty dir and remove old name
./run --rename /mnt/a/empty101 /mnt/a/no_dir101 -E EXDEV
./run --rmdir /mnt/a/empty101
./run --rename /mnt/a/no_dir101 /mnt/a/empty101 -E ENOENT
./run --rename /mnt/a/no_dir101 /mnt/a/empty101 -E ENOENT
./run --open-file /mnt/a/empty101 -r -d -E ENOENT
./run --rmdir /mnt/a/empty101 -E ENOENT
./run --rmdir /mnt/a/empty101 -E ENOENT
./run --open-file /mnt/a/empty101 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir101 -r -d -E ENOENT
TEST rename-empty-dir.py:39: Rename empty dir and unlink old name
./run --rename /mnt/a/empty102 /mnt/a/no_dir102 -E EXDEV
./run --unlink /mnt/a/empty102 -E EISDIR
./run --rename /mnt/a/no_dir102 /mnt/a/empty102 -E ENOENT
./run --rename /mnt/a/no_dir102 /mnt/a/empty102 -E ENOENT
./run --open-file /mnt/a/empty102 -r -d
./run --unlink /mnt/a/empty102 -E EISDIR
./run --open-file /mnt/a/empty102 -r -d
./run --open-file /mnt/a/no_dir102 -r -d -E ENOENT
TEST rename-empty-dir.py:54: Remove dir and rename old name
./run --rmdir /mnt/a/empty103
./run --rename /mnt/a/empty103 /mnt/a/no_dir103 -E ENOENT
./run --rmdir /mnt/a/empty103 -E ENOENT
./run --rmdir /mnt/a/no_dir103 -E ENOENT
TEST rename-empty-dir.py:65: Unlink dir and rename old name
./run --unlink /mnt/a/empty104 -E EISDIR
./run --rename /mnt/a/empty104 /mnt/a/no_dir104 -E EXDEV
./run --unlink /mnt/a/empty104 -E EISDIR
./run --rmdir /mnt/a/no_dir104 -E ENOENT
TEST rename-empty-dir.py:76: Rename empty dir twice
./run --rename /mnt/a/empty105 /mnt/a/no_dir105 -E EXDEV
./run --rename /mnt/a/empty105 /mnt/a/no_dir105 -E EXDEV
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --open-file /mnt/a/empty105 -r -d
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105x -r -d -E ENOENT
TEST rename-empty-dir.py:91: Rename empty dir over another populated dir
./run --rename /mnt/a/empty106 /mnt/a/dir106 -E EXDEV
./run --open-file /mnt/a/empty106 -r -d
./run --open-file /mnt/a/dir106 -r -d
TEST rename-empty-dir.py:101: Rename empty dir over itself
./run --rename /mnt/a/empty107 /mnt/a/empty107
./run --open-file /mnt/a/empty107 -r -d
TEST rename-empty-dir.py:109: Rename empty dir over a file
./run --rename /mnt/a/empty108 /mnt/a/foo108 -E ENOTDIR
./run --rename /mnt/a/empty108 /mnt/a/dir108/a -E ENOTDIR
./run --open-file /mnt/a/empty108 -r -d
TEST rename-empty-dir.py:120: Rename empty dir over parent dir
./run --rename /mnt/a/empty109 /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/empty109 -r -d
***
*** ./run --ov --ts=0 rename-new-dir
***
TEST rename-new-dir.py:10: Rename empty dir and rename back
./run --mkdir /mnt/a/empty100-new 0755
./run --rename /mnt/a/empty100-new /mnt/a/no_dir100
./run --rename /mnt/a/empty100-new /mnt/a/no_dir100 -E ENOENT
./run --rename /mnt/a/no_dir100 /mnt/a/empty100-new
./run --rename /mnt/a/no_dir100 /mnt/a/empty100-new -E ENOENT
./run --open-file /mnt/a/empty100-new -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST rename-new-dir.py:24: Rename empty dir and remove old name
./run --mkdir /mnt/a/empty101-new 0755
./run --rename /mnt/a/empty101-new /mnt/a/no_dir101
./run --rmdir /mnt/a/empty101-new -E ENOENT
./run --rename /mnt/a/no_dir101 /mnt/a/empty101-new
./run --rename /mnt/a/no_dir101 /mnt/a/empty101-new -E ENOENT
./run --open-file /mnt/a/empty101-new -r -d
./run --rmdir /mnt/a/empty101-new
./run --rmdir /mnt/a/empty101-new -E ENOENT
./run --open-file /mnt/a/empty101-new -r -d -E ENOENT
./run --open-file /mnt/a/no_dir101 -r -d -E ENOENT
TEST rename-new-dir.py:41: Rename empty dir and unlink old name
./run --mkdir /mnt/a/empty102-new 0755
./run --rename /mnt/a/empty102-new /mnt/a/no_dir102
./run --unlink /mnt/a/empty102-new -E ENOENT
./run --rename /mnt/a/no_dir102 /mnt/a/empty102-new
./run --rename /mnt/a/no_dir102 /mnt/a/empty102-new -E ENOENT
./run --open-file /mnt/a/empty102-new -r -d
./run --unlink /mnt/a/empty102-new -E EISDIR
./run --open-file /mnt/a/empty102-new -r -d
./run --open-file /mnt/a/no_dir102 -r -d -E ENOENT
TEST rename-new-dir.py:57: Remove dir and rename old name
./run --mkdir /mnt/a/empty103-new 0755
./run --rmdir /mnt/a/empty103-new
./run --rename /mnt/a/empty103-new /mnt/a/no_dir103 -E ENOENT
./run --rmdir /mnt/a/empty103-new -E ENOENT
./run --rmdir /mnt/a/no_dir103 -E ENOENT
TEST rename-new-dir.py:69: Unlink dir and rename old name
./run --mkdir /mnt/a/empty104-new 0755
./run --unlink /mnt/a/empty104-new -E EISDIR
./run --rename /mnt/a/empty104-new /mnt/a/no_dir104
./run --unlink /mnt/a/empty104-new -E ENOENT
./run --rmdir /mnt/a/no_dir104
TEST rename-new-dir.py:81: Rename empty dir twice
./run --mkdir /mnt/a/empty105-new 0755
./run --rename /mnt/a/empty105-new /mnt/a/no_dir105
./run --rename /mnt/a/empty105-new /mnt/a/no_dir105 -E ENOENT
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105x -r -d
TEST rename-new-dir.py:97: Rename empty dir over another populated dir
./run --mkdir /mnt/a/empty106-new 0755
./run --rename /mnt/a/empty106-new /mnt/a/dir106 -E ENOTEMPTY
./run --open-file /mnt/a/empty106-new -r -d
./run --open-file /mnt/a/dir106 -r -d
TEST rename-new-dir.py:108: Rename empty dir over itself
./run --mkdir /mnt/a/empty107-new 0755
./run --rename /mnt/a/empty107-new /mnt/a/empty107-new
./run --open-file /mnt/a/empty107-new -r -d
TEST rename-new-dir.py:117: Rename empty dir over a file
./run --mkdir /mnt/a/empty108-new 0755
./run --rename /mnt/a/empty108-new /mnt/a/foo108 -E ENOTDIR
./run --rename /mnt/a/empty108-new /mnt/a/dir108/a -E ENOTDIR
./run --open-file /mnt/a/empty108-new -r -d
TEST rename-new-dir.py:129: Rename empty dir over parent dir
./run --mkdir /mnt/a/empty109-new 0755
./run --rename /mnt/a/empty109-new /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/empty109-new -r -d
TEST rename-new-dir.py:161: Rename empty dir over removed empty lower dir
./run --mkdir /mnt/a/empty110-new 0755
./run --rmdir /mnt/a/empty110
./run --rename /mnt/a/empty110-new /mnt/a/empty110
./run --open-file /mnt/a/empty110 -r -d
TEST rename-new-dir.py:172: Rename empty dir over removed populated lower dir
./run --mkdir /mnt/a/empty111-new 0755
- rmtree /mnt/a/dir111
./run --rename /mnt/a/empty111-new /mnt/a/dir111
./run --open-file /mnt/a/dir111/a -r -E ENOENT
./run --open-file /mnt/a/dir111/pop -r -d -E ENOENT
./run --open-file /mnt/a/dir111 -r -d
***
*** ./run --ov --ts=1 rename-new-dir
***
TEST rename-new-dir.py:10: Rename empty dir and rename back
./run --mkdir /mnt/a/empty100-new 0755
./run --rename /mnt/a/empty100-new /mnt/a/no_dir100
./run --rename /mnt/a/empty100-new /mnt/a/no_dir100 -E ENOENT
./run --rename /mnt/a/no_dir100 /mnt/a/empty100-new
./run --rename /mnt/a/no_dir100 /mnt/a/empty100-new -E ENOENT
./run --open-file /mnt/a/empty100-new -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST rename-new-dir.py:24: Rename empty dir and remove old name
./run --mkdir /mnt/a/empty101-new 0755
./run --rename /mnt/a/empty101-new /mnt/a/no_dir101
./run --rmdir /mnt/a/empty101-new -E ENOENT
./run --rename /mnt/a/no_dir101 /mnt/a/empty101-new
./run --rename /mnt/a/no_dir101 /mnt/a/empty101-new -E ENOENT
./run --open-file /mnt/a/empty101-new -r -d
./run --rmdir /mnt/a/empty101-new
./run --rmdir /mnt/a/empty101-new -E ENOENT
./run --open-file /mnt/a/empty101-new -r -d -E ENOENT
./run --open-file /mnt/a/no_dir101 -r -d -E ENOENT
TEST rename-new-dir.py:41: Rename empty dir and unlink old name
./run --mkdir /mnt/a/empty102-new 0755
./run --rename /mnt/a/empty102-new /mnt/a/no_dir102
./run --unlink /mnt/a/empty102-new -E ENOENT
./run --rename /mnt/a/no_dir102 /mnt/a/empty102-new
./run --rename /mnt/a/no_dir102 /mnt/a/empty102-new -E ENOENT
./run --open-file /mnt/a/empty102-new -r -d
./run --unlink /mnt/a/empty102-new -E EISDIR
./run --open-file /mnt/a/empty102-new -r -d
./run --open-file /mnt/a/no_dir102 -r -d -E ENOENT
TEST rename-new-dir.py:57: Remove dir and rename old name
./run --mkdir /mnt/a/empty103-new 0755
./run --rmdir /mnt/a/empty103-new
./run --rename /mnt/a/empty103-new /mnt/a/no_dir103 -E ENOENT
./run --rmdir /mnt/a/empty103-new -E ENOENT
./run --rmdir /mnt/a/no_dir103 -E ENOENT
TEST rename-new-dir.py:69: Unlink dir and rename old name
./run --mkdir /mnt/a/empty104-new 0755
./run --unlink /mnt/a/empty104-new -E EISDIR
./run --rename /mnt/a/empty104-new /mnt/a/no_dir104
./run --unlink /mnt/a/empty104-new -E ENOENT
./run --rmdir /mnt/a/no_dir104
TEST rename-new-dir.py:81: Rename empty dir twice
./run --mkdir /mnt/a/empty105-new 0755
./run --rename /mnt/a/empty105-new /mnt/a/no_dir105
./run --rename /mnt/a/empty105-new /mnt/a/no_dir105 -E ENOENT
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105x -r -d
TEST rename-new-dir.py:97: Rename empty dir over another populated dir
./run --mkdir /mnt/a/empty106-new 0755
./run --rename /mnt/a/empty106-new /mnt/a/dir106 -E ENOTEMPTY
./run --open-file /mnt/a/empty106-new -r -d
./run --open-file /mnt/a/dir106 -r -d
TEST rename-new-dir.py:108: Rename empty dir over itself
./run --mkdir /mnt/a/empty107-new 0755
./run --rename /mnt/a/empty107-new /mnt/a/empty107-new
./run --open-file /mnt/a/empty107-new -r -d
TEST rename-new-dir.py:117: Rename empty dir over a file
./run --mkdir /mnt/a/empty108-new 0755
./run --rename /mnt/a/empty108-new /mnt/a/foo108 -E ENOTDIR
./run --rename /mnt/a/empty108-new /mnt/a/dir108/a -E ENOTDIR
./run --open-file /mnt/a/empty108-new -r -d
TEST rename-new-dir.py:129: Rename empty dir over parent dir
./run --mkdir /mnt/a/empty109-new 0755
./run --rename /mnt/a/empty109-new /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/empty109-new -r -d
TEST rename-new-dir.py:161: Rename empty dir over removed empty lower dir
./run --mkdir /mnt/a/empty110-new 0755
./run --rmdir /mnt/a/empty110
./run --rename /mnt/a/empty110-new /mnt/a/empty110
./run --open-file /mnt/a/empty110 -r -d
TEST rename-new-dir.py:172: Rename empty dir over removed populated lower dir
./run --mkdir /mnt/a/empty111-new 0755
- rmtree /mnt/a/dir111
./run --rename /mnt/a/empty111-new /mnt/a/dir111
./run --open-file /mnt/a/dir111/a -r -E ENOENT
./run --open-file /mnt/a/dir111/pop -r -d -E ENOENT
./run --open-file /mnt/a/dir111 -r -d
***
*** ./run --ov --ts=0 rename-pop-dir
***
TEST rename-pop-dir.py:10: Rename dir and rename back
./run --rename /mnt/a/dir100 /mnt/a/no_dir100 -E EXDEV
./run --rename /mnt/a/dir100 /mnt/a/no_dir100 -E EXDEV
./run --rename /mnt/a/no_dir100 /mnt/a/dir100 -E ENOENT
./run --rename /mnt/a/no_dir100 /mnt/a/dir100 -E ENOENT
./run --open-file /mnt/a/dir100 -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST rename-pop-dir.py:23: Rename dir and remove old name
./run --rename /mnt/a/dir101 /mnt/a/no_dir101 -E EXDEV
./run --rmdir /mnt/a/dir101 -E ENOTEMPTY
./run --rename /mnt/a/no_dir101 /mnt/a/dir101 -E ENOENT
./run --rename /mnt/a/no_dir101 /mnt/a/dir101 -E ENOENT
./run --open-file /mnt/a/dir101 -r -d
./run --rmdir /mnt/a/dir101 -E ENOTEMPTY
./run --open-file /mnt/a/dir101 -r -d
./run --open-file /mnt/a/no_dir101 -r -d -E ENOENT
TEST rename-pop-dir.py:38: Rename dir and unlink old name
./run --rename /mnt/a/dir102 /mnt/a/no_dir102 -E EXDEV
./run --unlink /mnt/a/dir102 -E EISDIR
./run --rename /mnt/a/no_dir102 /mnt/a/dir102 -E ENOENT
./run --rename /mnt/a/no_dir102 /mnt/a/dir102 -E ENOENT
./run --open-file /mnt/a/dir102 -r -d
./run --unlink /mnt/a/dir102 -E EISDIR
./run --open-file /mnt/a/dir102 -r -d
./run --open-file /mnt/a/no_dir102 -r -d -E ENOENT
TEST rename-pop-dir.py:53: Remove dir and rename old name
./run --rmdir /mnt/a/dir103 -E ENOTEMPTY
./run --rename /mnt/a/dir103 /mnt/a/no_dir103 -E EXDEV
./run --rmdir /mnt/a/dir103 -E ENOTEMPTY
./run --rmdir /mnt/a/no_dir103 -E ENOENT
TEST rename-pop-dir.py:64: Unlink dir and rename old name
./run --unlink /mnt/a/dir104 -E EISDIR
./run --rename /mnt/a/dir104 /mnt/a/no_dir104 -E EXDEV
./run --unlink /mnt/a/dir104 -E EISDIR
./run --rmdir /mnt/a/no_dir104 -E ENOENT
TEST rename-pop-dir.py:75: Rename dir twice
./run --rename /mnt/a/dir105 /mnt/a/no_dir105 -E EXDEV
./run --rename /mnt/a/dir105 /mnt/a/no_dir105 -E EXDEV
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --open-file /mnt/a/dir105 -r -d
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105x -r -d -E ENOENT
TEST rename-pop-dir.py:90: Rename dir over another populated dir
./run --rename /mnt/a/dir106 /mnt/a/empty106 -E EXDEV
./run --open-file /mnt/a/dir106 -r -d
./run --open-file /mnt/a/empty106 -r -d
TEST rename-pop-dir.py:100: Rename dir over itself
./run --rename /mnt/a/dir107 /mnt/a/dir107
./run --open-file /mnt/a/dir107 -r -d
TEST rename-pop-dir.py:108: Rename dir over a child file
./run --rename /mnt/a/dir108 /mnt/a/foo108 -E ENOTDIR
./run --rename /mnt/a/dir108 /mnt/a/dir108/a -E EINVAL
./run --open-file /mnt/a/dir108 -r -d
TEST rename-pop-dir.py:119: Rename dir over a file
./run --rename /mnt/a/dir109/pop /mnt/a/dir109/a -E ENOTDIR
./run --open-file /mnt/a/dir109/pop -r -d
TEST rename-pop-dir.py:128: Rename dir over parent dir
./run --rename /mnt/a/dir110 /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/dir110 -r -d
***
*** ./run --ov --ts=1 rename-pop-dir
***
TEST rename-pop-dir.py:10: Rename dir and rename back
./run --rename /mnt/a/dir100 /mnt/a/no_dir100 -E EXDEV
./run --rename /mnt/a/dir100 /mnt/a/no_dir100 -E EXDEV
./run --rename /mnt/a/no_dir100 /mnt/a/dir100 -E ENOENT
./run --rename /mnt/a/no_dir100 /mnt/a/dir100 -E ENOENT
./run --open-file /mnt/a/dir100 -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST rename-pop-dir.py:23: Rename dir and remove old name
./run --rename /mnt/a/dir101 /mnt/a/no_dir101 -E EXDEV
./run --rmdir /mnt/a/dir101 -E ENOTEMPTY
./run --rename /mnt/a/no_dir101 /mnt/a/dir101 -E ENOENT
./run --rename /mnt/a/no_dir101 /mnt/a/dir101 -E ENOENT
./run --open-file /mnt/a/dir101 -r -d
./run --rmdir /mnt/a/dir101 -E ENOTEMPTY
./run --open-file /mnt/a/dir101 -r -d
./run --open-file /mnt/a/no_dir101 -r -d -E ENOENT
TEST rename-pop-dir.py:38: Rename dir and unlink old name
./run --rename /mnt/a/dir102 /mnt/a/no_dir102 -E EXDEV
./run --unlink /mnt/a/dir102 -E EISDIR
./run --rename /mnt/a/no_dir102 /mnt/a/dir102 -E ENOENT
./run --rename /mnt/a/no_dir102 /mnt/a/dir102 -E ENOENT
./run --open-file /mnt/a/dir102 -r -d
./run --unlink /mnt/a/dir102 -E EISDIR
./run --open-file /mnt/a/dir102 -r -d
./run --open-file /mnt/a/no_dir102 -r -d -E ENOENT
TEST rename-pop-dir.py:53: Remove dir and rename old name
./run --rmdir /mnt/a/dir103 -E ENOTEMPTY
./run --rename /mnt/a/dir103 /mnt/a/no_dir103 -E EXDEV
./run --rmdir /mnt/a/dir103 -E ENOTEMPTY
./run --rmdir /mnt/a/no_dir103 -E ENOENT
TEST rename-pop-dir.py:64: Unlink dir and rename old name
./run --unlink /mnt/a/dir104 -E EISDIR
./run --rename /mnt/a/dir104 /mnt/a/no_dir104 -E EXDEV
./run --unlink /mnt/a/dir104 -E EISDIR
./run --rmdir /mnt/a/no_dir104 -E ENOENT
TEST rename-pop-dir.py:75: Rename dir twice
./run --rename /mnt/a/dir105 /mnt/a/no_dir105 -E EXDEV
./run --rename /mnt/a/dir105 /mnt/a/no_dir105 -E EXDEV
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --open-file /mnt/a/dir105 -r -d
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105x -r -d -E ENOENT
TEST rename-pop-dir.py:90: Rename dir over another populated dir
./run --rename /mnt/a/dir106 /mnt/a/empty106 -E EXDEV
./run --open-file /mnt/a/dir106 -r -d
./run --open-file /mnt/a/empty106 -r -d
TEST rename-pop-dir.py:100: Rename dir over itself
./run --rename /mnt/a/dir107 /mnt/a/dir107
./run --open-file /mnt/a/dir107 -r -d
TEST rename-pop-dir.py:108: Rename dir over a child file
./run --rename /mnt/a/dir108 /mnt/a/foo108 -E ENOTDIR
./run --rename /mnt/a/dir108 /mnt/a/dir108/a -E EINVAL
./run --open-file /mnt/a/dir108 -r -d
TEST rename-pop-dir.py:119: Rename dir over a file
./run --rename /mnt/a/dir109/pop /mnt/a/dir109/a -E ENOTDIR
./run --open-file /mnt/a/dir109/pop -r -d
TEST rename-pop-dir.py:128: Rename dir over parent dir
./run --rename /mnt/a/dir110 /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/dir110 -r -d
***
*** ./run --ov --ts=0 rename-new-pop-dir
***
TEST rename-new-pop-dir.py:10: Rename new dir and rename back
./run --mkdir /mnt/a/dir100-new 0755
./run --open-file /mnt/a/dir100-new/a -w -c -W aaaa
./run --rename /mnt/a/dir100-new /mnt/a/no_dir100
./run --rename /mnt/a/dir100-new /mnt/a/no_dir100 -E ENOENT
./run --rename /mnt/a/no_dir100 /mnt/a/dir100-new
./run --rename /mnt/a/no_dir100 /mnt/a/dir100-new -E ENOENT
./run --open-file /mnt/a/dir100-new -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST rename-new-pop-dir.py:25: Rename new dir and remove old name
./run --mkdir /mnt/a/dir101-new 0755
./run --open-file /mnt/a/dir101-new/a -w -c -W aaaa
./run --rename /mnt/a/dir101-new /mnt/a/no_dir101
./run --rmdir /mnt/a/dir101-new -E ENOENT
./run --rename /mnt/a/no_dir101 /mnt/a/dir101-new
./run --rename /mnt/a/no_dir101 /mnt/a/dir101-new -E ENOENT
./run --open-file /mnt/a/dir101-new -r -d
./run --rmdir /mnt/a/dir101-new -E ENOTEMPTY
./run --open-file /mnt/a/dir101-new -r -d
./run --open-file /mnt/a/no_dir101 -r -d -E ENOENT
TEST rename-new-pop-dir.py:42: Rename new dir and unlink old name
./run --mkdir /mnt/a/dir102-new 0755
./run --open-file /mnt/a/dir102-new/a -w -c -W aaaa
./run --rename /mnt/a/dir102-new /mnt/a/no_dir102
./run --unlink /mnt/a/dir102-new -E ENOENT
./run --rename /mnt/a/no_dir102 /mnt/a/dir102-new
./run --rename /mnt/a/no_dir102 /mnt/a/dir102-new -E ENOENT
./run --open-file /mnt/a/dir102-new -r -d
./run --unlink /mnt/a/dir102-new -E EISDIR
./run --open-file /mnt/a/dir102-new -r -d
./run --open-file /mnt/a/no_dir102 -r -d -E ENOENT
TEST rename-new-pop-dir.py:59: Remove dir and rename old name
./run --mkdir /mnt/a/dir103-new 0755
./run --open-file /mnt/a/dir103-new/a -w -c -W aaaa
./run --rmdir /mnt/a/dir103-new -E ENOTEMPTY
./run --rename /mnt/a/dir103-new /mnt/a/no_dir103
./run --rmdir /mnt/a/dir103-new -E ENOENT
./run --rmdir /mnt/a/no_dir103 -E ENOTEMPTY
TEST rename-new-pop-dir.py:72: Unlink dir and rename old name
./run --mkdir /mnt/a/dir104-new 0755
./run --open-file /mnt/a/dir104-new/a -w -c -W aaaa
./run --unlink /mnt/a/dir104-new -E EISDIR
./run --rename /mnt/a/dir104-new /mnt/a/no_dir104
./run --unlink /mnt/a/dir104-new -E ENOENT
./run --rmdir /mnt/a/no_dir104 -E ENOTEMPTY
TEST rename-new-pop-dir.py:85: Rename new dir twice
./run --mkdir /mnt/a/dir105-new 0755
./run --open-file /mnt/a/dir105-new/a -w -c -W aaaa
./run --rename /mnt/a/dir105-new /mnt/a/no_dir105
./run --rename /mnt/a/dir105-new /mnt/a/no_dir105 -E ENOENT
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --open-file /mnt/a/dir105-new -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105x -r -d
TEST rename-new-pop-dir.py:102: Rename new dir over another populated dir
./run --mkdir /mnt/a/dir106-new 0755
./run --open-file /mnt/a/dir106-new/a -w -c -W aaaa
./run --rename /mnt/a/dir106-new /mnt/a/empty106
./run --open-file /mnt/a/dir106-new -r -d -E ENOENT
./run --open-file /mnt/a/empty106 -r -d
TEST rename-new-pop-dir.py:114: Rename new dir over itself
./run --mkdir /mnt/a/dir107-new 0755
./run --open-file /mnt/a/dir107-new/a -w -c -W aaaa
./run --rename /mnt/a/dir107-new /mnt/a/dir107-new
./run --open-file /mnt/a/dir107-new -r -d
TEST rename-new-pop-dir.py:124: Rename new dir over a child file
./run --mkdir /mnt/a/dir108-new 0755
./run --open-file /mnt/a/dir108-new/a -w -c -W aaaa
./run --rename /mnt/a/dir108-new /mnt/a/foo108 -E ENOTDIR
./run --rename /mnt/a/dir108-new /mnt/a/dir108-new/a -E EINVAL
./run --open-file /mnt/a/dir108-new -r -d
TEST rename-new-pop-dir.py:137: Rename new dir over a file
./run --mkdir /mnt/a/dir109-new 0755
./run --open-file /mnt/a/dir109-new/a -w -c -W aaaa
./run --rename /mnt/a/dir109-new /mnt/a/dir109/a -E ENOTDIR
./run --open-file /mnt/a/dir109-new -r -d
TEST rename-new-pop-dir.py:148: Rename new dir over parent dir
./run --mkdir /mnt/a/dir110-new 0755
./run --open-file /mnt/a/dir110-new/a -w -c -W aaaa
./run --rename /mnt/a/dir110-new /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/dir110-new -r -d
TEST rename-new-pop-dir.py:159: Rename new dir over unioned dir
./run --mkdir /mnt/a/dir111-new 0755
./run --open-file /mnt/a/dir111-new/a -w -c -W aaaa
./run --rename /mnt/a/dir111-new /mnt/a/dir111 -E ENOTEMPTY
./run --open-file /mnt/a/dir111-new -r -d
TEST rename-new-pop-dir.py:170: Rename new dir over removed unioned empty dir
./run --mkdir /mnt/a/dir112-new 0755
./run --open-file /mnt/a/dir112-new/a -w -c -W aaaa
./run --rmdir /mnt/a/dir112/pop/c
./run --rename /mnt/a/dir112-new /mnt/a/dir112/pop/c
./run --open-file /mnt/a/dir112/pop/c -r -d
./run --open-file /mnt/a/dir112/pop/c/a -r -R aaaa
TEST rename-new-pop-dir.py:183: Rename new dir over removed unioned dir, different files
./run --mkdir /mnt/a/dir113-new 0755
./run --open-file /mnt/a/dir113-new/a -w -c -W aaaa
- rmtree /mnt/a/dir113/pop
./run --rename /mnt/a/dir113-new /mnt/a/dir113/pop
./run --open-file /mnt/a/dir113/pop -r -d
./run --open-file /mnt/a/dir113/pop/a -r -R aaaa
./run --open-file /mnt/a/dir113/pop/b -r -E ENOENT
TEST rename-new-pop-dir.py:197: Rename new dir over removed unioned dir, same files
./run --mkdir /mnt/a/dir114-new 0755
./run --open-file /mnt/a/dir114-new/b -w -c -W aaaa
- rmtree /mnt/a/dir114/pop
./run --rename /mnt/a/dir114-new /mnt/a/dir114/pop
./run --open-file /mnt/a/dir114-new -r -d -E ENOENT
./run --open-file /mnt/a/dir114/pop -r -d
./run --open-file /mnt/a/dir114/pop/b -r -R aaaa
TEST rename-new-pop-dir.py:211: Rename new dir over removed unioned dir, different dirs
./run --mkdir /mnt/a/dir115-new 0755
./run --mkdir /mnt/a/dir115-new/pop 0755
./run --open-file /mnt/a/dir115-new/pop/x -w -c -W aaaa
- rmtree /mnt/a/dir115
./run --rename /mnt/a/dir115-new /mnt/a/dir115
./run --open-file /mnt/a/dir115-new -r -d -E ENOENT
./run --open-file /mnt/a/dir115 -r -d
./run --open-file /mnt/a/dir115/pop/x -r -R aaaa
./run --open-file /mnt/a/dir115/pop/b -r -E ENOENT
TEST rename-new-pop-dir.py:227: Rename new dir over removed unioned dir, same dirs
./run --mkdir /mnt/a/dir116-new 0755
./run --mkdir /mnt/a/dir116-new/pop 0755
./run --open-file /mnt/a/dir116-new/pop/b -w -c -W aaaa
- rmtree /mnt/a/dir116
./run --rename /mnt/a/dir116-new /mnt/a/dir116
./run --open-file /mnt/a/dir116-new -r -d -E ENOENT
./run --open-file /mnt/a/dir116 -r -d
./run --open-file /mnt/a/dir116/pop/b -r -R aaaa
TEST rename-new-pop-dir.py:242: Rename new dir over unlinked unioned dir
./run --mkdir /mnt/a/dir117-new 0755
./run --mkdir /mnt/a/dir117-new/pop 0755
./run --open-file /mnt/a/dir117-new/pop/b -w -c -W aaaa
./run --unlink /mnt/a/dir117 -E EISDIR
./run --rename /mnt/a/dir117-new /mnt/a/dir117 -E ENOTEMPTY
./run --open-file /mnt/a/dir117-new -r -d
./run --open-file /mnt/a/dir117 -r -d
./run --open-file /mnt/a/dir117-new/pop/b -r -R aaaa
./run --open-file /mnt/a/dir117/pop/b -r -R :aaa:bbb:ccc
***
*** ./run --ov --ts=1 rename-new-pop-dir
***
TEST rename-new-pop-dir.py:10: Rename new dir and rename back
./run --mkdir /mnt/a/dir100-new 0755
./run --open-file /mnt/a/dir100-new/a -w -c -W aaaa
./run --rename /mnt/a/dir100-new /mnt/a/no_dir100
./run --rename /mnt/a/dir100-new /mnt/a/no_dir100 -E ENOENT
./run --rename /mnt/a/no_dir100 /mnt/a/dir100-new
./run --rename /mnt/a/no_dir100 /mnt/a/dir100-new -E ENOENT
./run --open-file /mnt/a/dir100-new -r -d
./run --open-file /mnt/a/no_dir100 -r -d -E ENOENT
TEST rename-new-pop-dir.py:25: Rename new dir and remove old name
./run --mkdir /mnt/a/dir101-new 0755
./run --open-file /mnt/a/dir101-new/a -w -c -W aaaa
./run --rename /mnt/a/dir101-new /mnt/a/no_dir101
./run --rmdir /mnt/a/dir101-new -E ENOENT
./run --rename /mnt/a/no_dir101 /mnt/a/dir101-new
./run --rename /mnt/a/no_dir101 /mnt/a/dir101-new -E ENOENT
./run --open-file /mnt/a/dir101-new -r -d
./run --rmdir /mnt/a/dir101-new -E ENOTEMPTY
./run --open-file /mnt/a/dir101-new -r -d
./run --open-file /mnt/a/no_dir101 -r -d -E ENOENT
TEST rename-new-pop-dir.py:42: Rename new dir and unlink old name
./run --mkdir /mnt/a/dir102-new 0755
./run --open-file /mnt/a/dir102-new/a -w -c -W aaaa
./run --rename /mnt/a/dir102-new /mnt/a/no_dir102
./run --unlink /mnt/a/dir102-new -E ENOENT
./run --rename /mnt/a/no_dir102 /mnt/a/dir102-new
./run --rename /mnt/a/no_dir102 /mnt/a/dir102-new -E ENOENT
./run --open-file /mnt/a/dir102-new -r -d
./run --unlink /mnt/a/dir102-new -E EISDIR
./run --open-file /mnt/a/dir102-new -r -d
./run --open-file /mnt/a/no_dir102 -r -d -E ENOENT
TEST rename-new-pop-dir.py:59: Remove dir and rename old name
./run --mkdir /mnt/a/dir103-new 0755
./run --open-file /mnt/a/dir103-new/a -w -c -W aaaa
./run --rmdir /mnt/a/dir103-new -E ENOTEMPTY
./run --rename /mnt/a/dir103-new /mnt/a/no_dir103
./run --rmdir /mnt/a/dir103-new -E ENOENT
./run --rmdir /mnt/a/no_dir103 -E ENOTEMPTY
TEST rename-new-pop-dir.py:72: Unlink dir and rename old name
./run --mkdir /mnt/a/dir104-new 0755
./run --open-file /mnt/a/dir104-new/a -w -c -W aaaa
./run --unlink /mnt/a/dir104-new -E EISDIR
./run --rename /mnt/a/dir104-new /mnt/a/no_dir104
./run --unlink /mnt/a/dir104-new -E ENOENT
./run --rmdir /mnt/a/no_dir104 -E ENOTEMPTY
TEST rename-new-pop-dir.py:85: Rename new dir twice
./run --mkdir /mnt/a/dir105-new 0755
./run --open-file /mnt/a/dir105-new/a -w -c -W aaaa
./run --rename /mnt/a/dir105-new /mnt/a/no_dir105
./run --rename /mnt/a/dir105-new /mnt/a/no_dir105 -E ENOENT
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir105x -E ENOENT
./run --open-file /mnt/a/dir105-new -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105 -r -d -E ENOENT
./run --open-file /mnt/a/no_dir105x -r -d
TEST rename-new-pop-dir.py:102: Rename new dir over another populated dir
./run --mkdir /mnt/a/dir106-new 0755
./run --open-file /mnt/a/dir106-new/a -w -c -W aaaa
./run --rename /mnt/a/dir106-new /mnt/a/empty106
./run --open-file /mnt/a/dir106-new -r -d -E ENOENT
./run --open-file /mnt/a/empty106 -r -d
TEST rename-new-pop-dir.py:114: Rename new dir over itself
./run --mkdir /mnt/a/dir107-new 0755
./run --open-file /mnt/a/dir107-new/a -w -c -W aaaa
./run --rename /mnt/a/dir107-new /mnt/a/dir107-new
./run --open-file /mnt/a/dir107-new -r -d
TEST rename-new-pop-dir.py:124: Rename new dir over a child file
./run --mkdir /mnt/a/dir108-new 0755
./run --open-file /mnt/a/dir108-new/a -w -c -W aaaa
./run --rename /mnt/a/dir108-new /mnt/a/foo108 -E ENOTDIR
./run --rename /mnt/a/dir108-new /mnt/a/dir108-new/a -E EINVAL
./run --open-file /mnt/a/dir108-new -r -d
TEST rename-new-pop-dir.py:137: Rename new dir over a file
./run --mkdir /mnt/a/dir109-new 0755
./run --open-file /mnt/a/dir109-new/a -w -c -W aaaa
./run --rename /mnt/a/dir109-new /mnt/a/dir109/a -E ENOTDIR
./run --open-file /mnt/a/dir109-new -r -d
TEST rename-new-pop-dir.py:148: Rename new dir over parent dir
./run --mkdir /mnt/a/dir110-new 0755
./run --open-file /mnt/a/dir110-new/a -w -c -W aaaa
./run --rename /mnt/a/dir110-new /mnt/a -E ENOTEMPTY
./run --open-file /mnt/a/dir110-new -r -d
TEST rename-new-pop-dir.py:159: Rename new dir over unioned dir
./run --mkdir /mnt/a/dir111-new 0755
./run --open-file /mnt/a/dir111-new/a -w -c -W aaaa
./run --rename /mnt/a/dir111-new /mnt/a/dir111 -E ENOTEMPTY
./run --open-file /mnt/a/dir111-new -r -d
TEST rename-new-pop-dir.py:170: Rename new dir over removed unioned empty dir
./run --mkdir /mnt/a/dir112-new 0755
./run --open-file /mnt/a/dir112-new/a -w -c -W aaaa
./run --rmdir /mnt/a/dir112/pop/c
./run --rename /mnt/a/dir112-new /mnt/a/dir112/pop/c
./run --open-file /mnt/a/dir112/pop/c -r -d
./run --open-file /mnt/a/dir112/pop/c/a -r -R aaaa
TEST rename-new-pop-dir.py:183: Rename new dir over removed unioned dir, different files
./run --mkdir /mnt/a/dir113-new 0755
./run --open-file /mnt/a/dir113-new/a -w -c -W aaaa
- rmtree /mnt/a/dir113/pop
./run --rename /mnt/a/dir113-new /mnt/a/dir113/pop
./run --open-file /mnt/a/dir113/pop -r -d
./run --open-file /mnt/a/dir113/pop/a -r -R aaaa
./run --open-file /mnt/a/dir113/pop/b -r -E ENOENT
TEST rename-new-pop-dir.py:197: Rename new dir over removed unioned dir, same files
./run --mkdir /mnt/a/dir114-new 0755
./run --open-file /mnt/a/dir114-new/b -w -c -W aaaa
- rmtree /mnt/a/dir114/pop
./run --rename /mnt/a/dir114-new /mnt/a/dir114/pop
./run --open-file /mnt/a/dir114-new -r -d -E ENOENT
./run --open-file /mnt/a/dir114/pop -r -d
./run --open-file /mnt/a/dir114/pop/b -r -R aaaa
TEST rename-new-pop-dir.py:211: Rename new dir over removed unioned dir, different dirs
./run --mkdir /mnt/a/dir115-new 0755
./run --mkdir /mnt/a/dir115-new/pop 0755
./run --open-file /mnt/a/dir115-new/pop/x -w -c -W aaaa
- rmtree /mnt/a/dir115
./run --rename /mnt/a/dir115-new /mnt/a/dir115
./run --open-file /mnt/a/dir115-new -r -d -E ENOENT
./run --open-file /mnt/a/dir115 -r -d
./run --open-file /mnt/a/dir115/pop/x -r -R aaaa
./run --open-file /mnt/a/dir115/pop/b -r -E ENOENT
TEST rename-new-pop-dir.py:227: Rename new dir over removed unioned dir, same dirs
./run --mkdir /mnt/a/dir116-new 0755
./run --mkdir /mnt/a/dir116-new/pop 0755
./run --open-file /mnt/a/dir116-new/pop/b -w -c -W aaaa
- rmtree /mnt/a/dir116
./run --rename /mnt/a/dir116-new /mnt/a/dir116
./run --open-file /mnt/a/dir116-new -r -d -E ENOENT
./run --open-file /mnt/a/dir116 -r -d
./run --open-file /mnt/a/dir116/pop/b -r -R aaaa
TEST rename-new-pop-dir.py:242: Rename new dir over unlinked unioned dir
./run --mkdir /mnt/a/dir117-new 0755
./run --mkdir /mnt/a/dir117-new/pop 0755
./run --open-file /mnt/a/dir117-new/pop/b -w -c -W aaaa
./run --unlink /mnt/a/dir117 -E EISDIR
./run --rename /mnt/a/dir117-new /mnt/a/dir117 -E ENOTEMPTY
./run --open-file /mnt/a/dir117-new -r -d
./run --open-file /mnt/a/dir117 -r -d
./run --open-file /mnt/a/dir117-new/pop/b -r -R aaaa
./run --open-file /mnt/a/dir117/pop/b -r -R :aaa:bbb:ccc
***
*** ./run --ov --ts=0 rename-move-dir
***
TEST rename-move-dir.py:10: Move dir into another
./run --rename /mnt/a/empty100 /mnt/a/dir100/empty100 -E EXDEV
./run --rename /mnt/a/empty100 /mnt/a/dir100/empty100 -E EXDEV
./run --open-file /mnt/a/dir100/empty100 -r -d -E ENOENT
./run --open-file /mnt/a/empty100 -r -d
***
*** ./run --ov --ts=1 rename-move-dir
***
TEST rename-move-dir.py:10: Move dir into another
./run --rename /mnt/a/empty100 /mnt/a/dir100/empty100 -E EXDEV
./run --rename /mnt/a/empty100 /mnt/a/dir100/empty100 -E EXDEV
./run --open-file /mnt/a/dir100/empty100 -r -d -E ENOENT
./run --open-file /mnt/a/empty100 -r -d
***
*** ./run --ov --ts=0 rename-mass
***
TEST rename-mass.py:15: Mass rename sequential files into each other's vacated name slots
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
TEST rename-mass.py:26: Unlink mass renamed files
./run --unlink /mnt/a/foo103
./run --unlink /mnt/a/foo104
./run --unlink /mnt/a/foo105
./run --unlink /mnt/a/foo106
***
*** ./run --ov --ts=1 rename-mass
***
TEST rename-mass.py:15: Mass rename sequential files into each other's vacated name slots
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
TEST rename-mass.py:26: Unlink mass renamed files
./run --unlink /mnt/a/foo103
./run --unlink /mnt/a/foo104
./run --unlink /mnt/a/foo105
./run --unlink /mnt/a/foo106
***
*** ./run --ov --ts=0 rename-mass-2
***
TEST rename-mass-2.py:14: Mass rename fooN_0->fooN_1->...->fooN_M
./run --rename /mnt/a/foo100 /mnt/a/foo100_0
./run --rename /mnt/a/foo101 /mnt/a/foo101_0
./run --rename /mnt/a/foo102 /mnt/a/foo102_0
./run --rename /mnt/a/foo103 /mnt/a/foo103_0
./run --rename /mnt/a/foo103_0 /mnt/a/foo103_1
./run --rename /mnt/a/foo102_0 /mnt/a/foo102_1
./run --rename /mnt/a/foo101_0 /mnt/a/foo101_1
./run --rename /mnt/a/foo100_0 /mnt/a/foo100_1
./run --rename /mnt/a/foo103_1 /mnt/a/foo103_2
./run --rename /mnt/a/foo102_1 /mnt/a/foo102_2
./run --rename /mnt/a/foo101_1 /mnt/a/foo101_2
./run --rename /mnt/a/foo100_1 /mnt/a/foo100_2
./run --rename /mnt/a/foo103_2 /mnt/a/foo103_3
./run --rename /mnt/a/foo102_2 /mnt/a/foo102_3
./run --rename /mnt/a/foo101_2 /mnt/a/foo101_3
./run --rename /mnt/a/foo100_2 /mnt/a/foo100_3
TEST rename-mass-2.py:30: Unlink mass renamed files
./run --unlink /mnt/a/foo100_3
./run --unlink /mnt/a/foo101_3
./run --unlink /mnt/a/foo102_3
./run --unlink /mnt/a/foo103_3
***
*** ./run --ov --ts=1 rename-mass-2
***
TEST rename-mass-2.py:14: Mass rename fooN_0->fooN_1->...->fooN_M
./run --rename /mnt/a/foo100 /mnt/a/foo100_0
./run --rename /mnt/a/foo101 /mnt/a/foo101_0
./run --rename /mnt/a/foo102 /mnt/a/foo102_0
./run --rename /mnt/a/foo103 /mnt/a/foo103_0
./run --rename /mnt/a/foo103_0 /mnt/a/foo103_1
./run --rename /mnt/a/foo102_0 /mnt/a/foo102_1
./run --rename /mnt/a/foo101_0 /mnt/a/foo101_1
./run --rename /mnt/a/foo100_0 /mnt/a/foo100_1
./run --rename /mnt/a/foo103_1 /mnt/a/foo103_2
./run --rename /mnt/a/foo102_1 /mnt/a/foo102_2
./run --rename /mnt/a/foo101_1 /mnt/a/foo101_2
./run --rename /mnt/a/foo100_1 /mnt/a/foo100_2
./run --rename /mnt/a/foo103_2 /mnt/a/foo103_3
./run --rename /mnt/a/foo102_2 /mnt/a/foo102_3
./run --rename /mnt/a/foo101_2 /mnt/a/foo101_3
./run --rename /mnt/a/foo100_2 /mnt/a/foo100_3
TEST rename-mass-2.py:30: Unlink mass renamed files
./run --unlink /mnt/a/foo100_3
./run --unlink /mnt/a/foo101_3
./run --unlink /mnt/a/foo102_3
./run --unlink /mnt/a/foo103_3
***
*** ./run --ov --ts=0 rename-mass-3
***
TEST rename-mass-3.py:16: Mass rename sequential files circularly
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo106 /mnt/a/foo100
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo106 /mnt/a/foo100
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo106 /mnt/a/foo100
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo106 /mnt/a/foo100
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
TEST rename-mass-3.py:29: Unlink mass renamed files
./run --unlink /mnt/a/foo100
./run --unlink /mnt/a/foo101
./run --unlink /mnt/a/foo102
./run --unlink /mnt/a/foo103 -E ENOENT
./run --unlink /mnt/a/foo104
./run --unlink /mnt/a/foo105
./run --unlink /mnt/a/foo106
***
*** ./run --ov --ts=1 rename-mass-3
***
TEST rename-mass-3.py:16: Mass rename sequential files circularly
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo106 /mnt/a/foo100
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo106 /mnt/a/foo100
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo106 /mnt/a/foo100
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
./run --rename /mnt/a/foo102 /mnt/a/foo103
./run --rename /mnt/a/foo101 /mnt/a/foo102
./run --rename /mnt/a/foo100 /mnt/a/foo101
./run --rename /mnt/a/foo106 /mnt/a/foo100
./run --rename /mnt/a/foo105 /mnt/a/foo106
./run --rename /mnt/a/foo104 /mnt/a/foo105
./run --rename /mnt/a/foo103 /mnt/a/foo104
TEST rename-mass-3.py:29: Unlink mass renamed files
./run --unlink /mnt/a/foo100
./run --unlink /mnt/a/foo101
./run --unlink /mnt/a/foo102
./run --unlink /mnt/a/foo103 -E ENOENT
./run --unlink /mnt/a/foo104
./run --unlink /mnt/a/foo105
./run --unlink /mnt/a/foo106
***
*** ./run --ov --ts=0 rename-mass-4
***
TEST rename-mass-4.py:16: Mass rename new sequential files circularly
./run --open-file /mnt/a/no_foo100 -w -c -W abcd0
./run --open-file /mnt/a/no_foo101 -w -c -W abcd1
./run --open-file /mnt/a/no_foo102 -w -c -W abcd2
./run --open-file /mnt/a/no_foo103 -w -c -W abcd3
./run --open-file /mnt/a/no_foo104 -w -c -W abcd4
./run --open-file /mnt/a/no_foo105 -w -c -W abcd5
./run --open-file /mnt/a/no_foo106 -w -c -W abcd6
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
TEST rename-mass-4.py:33: Unlink mass renamed files
./run --unlink /mnt/a/no_foo100
./run --unlink /mnt/a/no_foo101
./run --unlink /mnt/a/no_foo102
./run --unlink /mnt/a/no_foo103 -E ENOENT
./run --unlink /mnt/a/no_foo104
./run --unlink /mnt/a/no_foo105
./run --unlink /mnt/a/no_foo106
***
*** ./run --ov --ts=1 rename-mass-4
***
TEST rename-mass-4.py:16: Mass rename new sequential files circularly
./run --open-file /mnt/a/no_foo100 -w -c -W abcd0
./run --open-file /mnt/a/no_foo101 -w -c -W abcd1
./run --open-file /mnt/a/no_foo102 -w -c -W abcd2
./run --open-file /mnt/a/no_foo103 -w -c -W abcd3
./run --open-file /mnt/a/no_foo104 -w -c -W abcd4
./run --open-file /mnt/a/no_foo105 -w -c -W abcd5
./run --open-file /mnt/a/no_foo106 -w -c -W abcd6
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
TEST rename-mass-4.py:33: Unlink mass renamed files
./run --unlink /mnt/a/no_foo100
./run --unlink /mnt/a/no_foo101
./run --unlink /mnt/a/no_foo102
./run --unlink /mnt/a/no_foo103 -E ENOENT
./run --unlink /mnt/a/no_foo104
./run --unlink /mnt/a/no_foo105
./run --unlink /mnt/a/no_foo106
***
*** ./run --ov --ts=0 rename-mass-5
***
TEST rename-mass-5.py:16: Mass rename hardlinked sequential files circularly
./run --link /mnt/a/foo100 /mnt/a/no_foo100
./run --link /mnt/a/foo101 /mnt/a/no_foo101
./run --link /mnt/a/foo102 /mnt/a/no_foo102
./run --link /mnt/a/foo103 /mnt/a/no_foo103
./run --link /mnt/a/foo104 /mnt/a/no_foo104
./run --link /mnt/a/foo105 /mnt/a/no_foo105
./run --link /mnt/a/foo106 /mnt/a/no_foo106
./run --link /mnt/a/foo107 /mnt/a/no_foo107
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
./run --rename /mnt/a/foo103 /mnt/a/foo102
./run --rename /mnt/a/foo104 /mnt/a/foo103
./run --rename /mnt/a/foo105 /mnt/a/foo104
./run --rename /mnt/a/foo106 /mnt/a/foo105
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
./run --rename /mnt/a/foo103 /mnt/a/foo102
./run --rename /mnt/a/foo104 /mnt/a/foo103
./run --rename /mnt/a/foo105 /mnt/a/foo104
./run --rename /mnt/a/foo106 /mnt/a/foo105
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
./run --rename /mnt/a/foo103 /mnt/a/foo102
./run --rename /mnt/a/foo104 /mnt/a/foo103
./run --rename /mnt/a/foo105 /mnt/a/foo104
./run --rename /mnt/a/foo106 /mnt/a/foo105
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
./run --rename /mnt/a/foo103 /mnt/a/foo102
./run --rename /mnt/a/foo104 /mnt/a/foo103
./run --rename /mnt/a/foo105 /mnt/a/foo104
./run --rename /mnt/a/foo106 /mnt/a/foo105
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
TEST rename-mass-5.py:43: Unlink mass renamed files
./run --unlink /mnt/a/no_foo100
./run --unlink /mnt/a/no_foo101
./run --unlink /mnt/a/no_foo102
./run --unlink /mnt/a/no_foo103 -E ENOENT
./run --unlink /mnt/a/no_foo104
./run --unlink /mnt/a/no_foo105
./run --unlink /mnt/a/no_foo106
./run --unlink /mnt/a/no_foo107
./run --unlink /mnt/a/foo100
./run --unlink /mnt/a/foo101
./run --unlink /mnt/a/foo102 -E ENOENT
./run --unlink /mnt/a/foo103
./run --unlink /mnt/a/foo104
./run --unlink /mnt/a/foo105
./run --unlink /mnt/a/foo106
./run --unlink /mnt/a/foo107
***
*** ./run --ov --ts=1 rename-mass-5
***
TEST rename-mass-5.py:16: Mass rename hardlinked sequential files circularly
./run --link /mnt/a/foo100 /mnt/a/no_foo100
./run --link /mnt/a/foo101 /mnt/a/no_foo101
./run --link /mnt/a/foo102 /mnt/a/no_foo102
./run --link /mnt/a/foo103 /mnt/a/no_foo103
./run --link /mnt/a/foo104 /mnt/a/no_foo104
./run --link /mnt/a/foo105 /mnt/a/no_foo105
./run --link /mnt/a/foo106 /mnt/a/no_foo106
./run --link /mnt/a/foo107 /mnt/a/no_foo107
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/no_foo102 /mnt/a/no_foo103
./run --rename /mnt/a/no_foo101 /mnt/a/no_foo102
./run --rename /mnt/a/no_foo100 /mnt/a/no_foo101
./run --rename /mnt/a/no_foo106 /mnt/a/no_foo100
./run --rename /mnt/a/no_foo105 /mnt/a/no_foo106
./run --rename /mnt/a/no_foo104 /mnt/a/no_foo105
./run --rename /mnt/a/no_foo103 /mnt/a/no_foo104
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
./run --rename /mnt/a/foo103 /mnt/a/foo102
./run --rename /mnt/a/foo104 /mnt/a/foo103
./run --rename /mnt/a/foo105 /mnt/a/foo104
./run --rename /mnt/a/foo106 /mnt/a/foo105
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
./run --rename /mnt/a/foo103 /mnt/a/foo102
./run --rename /mnt/a/foo104 /mnt/a/foo103
./run --rename /mnt/a/foo105 /mnt/a/foo104
./run --rename /mnt/a/foo106 /mnt/a/foo105
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
./run --rename /mnt/a/foo103 /mnt/a/foo102
./run --rename /mnt/a/foo104 /mnt/a/foo103
./run --rename /mnt/a/foo105 /mnt/a/foo104
./run --rename /mnt/a/foo106 /mnt/a/foo105
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
./run --rename /mnt/a/foo103 /mnt/a/foo102
./run --rename /mnt/a/foo104 /mnt/a/foo103
./run --rename /mnt/a/foo105 /mnt/a/foo104
./run --rename /mnt/a/foo106 /mnt/a/foo105
./run --rename /mnt/a/foo100 /mnt/a/foo106
./run --rename /mnt/a/foo101 /mnt/a/foo100
./run --rename /mnt/a/foo102 /mnt/a/foo101
TEST rename-mass-5.py:43: Unlink mass renamed files
./run --unlink /mnt/a/no_foo100
./run --unlink /mnt/a/no_foo101
./run --unlink /mnt/a/no_foo102
./run --unlink /mnt/a/no_foo103 -E ENOENT
./run --unlink /mnt/a/no_foo104
./run --unlink /mnt/a/no_foo105
./run --unlink /mnt/a/no_foo106
./run --unlink /mnt/a/no_foo107
./run --unlink /mnt/a/foo100
./run --unlink /mnt/a/foo101
./run --unlink /mnt/a/foo102 -E ENOENT
./run --unlink /mnt/a/foo103
./run --unlink /mnt/a/foo104
./run --unlink /mnt/a/foo105
./run --unlink /mnt/a/foo106
./run --unlink /mnt/a/foo107
***
*** ./run --ov --ts=0 rename-mass-dir
***
TEST rename-mass-dir.py:16: Mass rename new sequential dirs circularly
./run --mkdir /mnt/a/no_dir100 0755
./run --mkdir /mnt/a/no_dir101 0755
./run --mkdir /mnt/a/no_dir102 0755
./run --mkdir /mnt/a/no_dir103 0755
./run --mkdir /mnt/a/no_dir104 0755
./run --mkdir /mnt/a/no_dir105 0755
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
TEST rename-mass-dir.py:33: Unlink mass renamed dirs
./run --rmdir /mnt/a/no_dir100
./run --rmdir /mnt/a/no_dir101
./run --rmdir /mnt/a/no_dir102
./run --rmdir /mnt/a/no_dir103 -E ENOENT
./run --rmdir /mnt/a/no_dir104
./run --rmdir /mnt/a/no_dir105
./run --rmdir /mnt/a/no_dir106
TEST rename-mass-dir.py:46: Mass rename new populated sequential dirs circularly
./run --mkdir /mnt/a/no_dir100 0755
./run --open-file /mnt/a/no_dir100/a -w -c -W abcd0
./run --mkdir /mnt/a/no_dir101 0755
./run --open-file /mnt/a/no_dir101/a -w -c -W abcd1
./run --mkdir /mnt/a/no_dir102 0755
./run --open-file /mnt/a/no_dir102/a -w -c -W abcd2
./run --mkdir /mnt/a/no_dir103 0755
./run --open-file /mnt/a/no_dir103/a -w -c -W abcd3
./run --mkdir /mnt/a/no_dir104 0755
./run --open-file /mnt/a/no_dir104/a -w -c -W abcd4
./run --mkdir /mnt/a/no_dir105 0755
./run --open-file /mnt/a/no_dir105/a -w -c -W abcd5
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
TEST rename-mass-dir.py:64: Check files in renamed dirs
./run --open-file /mnt/a/no_dir100/a -r -R abcd2
./run --open-file /mnt/a/no_dir101/a -r -R abcd3
./run --open-file /mnt/a/no_dir102/a -r -R abcd4
./run --open-file /mnt/a/no_dir104/a -r -R abcd5
./run --open-file /mnt/a/no_dir105/a -r -R abcd0
./run --open-file /mnt/a/no_dir106/a -r -R abcd1
TEST rename-mass-dir.py:87: Unlink mass renamed dirs
./run --unlink /mnt/a/no_dir100/a
./run --rmdir /mnt/a/no_dir100
./run --unlink /mnt/a/no_dir101/a
./run --rmdir /mnt/a/no_dir101
./run --unlink /mnt/a/no_dir102/a
./run --rmdir /mnt/a/no_dir102
./run --rmdir /mnt/a/no_dir103 -E ENOENT
./run --unlink /mnt/a/no_dir104/a
./run --rmdir /mnt/a/no_dir104
./run --unlink /mnt/a/no_dir105/a
./run --rmdir /mnt/a/no_dir105
./run --unlink /mnt/a/no_dir106/a
./run --rmdir /mnt/a/no_dir106
***
*** ./run --ov --ts=1 rename-mass-dir
***
TEST rename-mass-dir.py:16: Mass rename new sequential dirs circularly
./run --mkdir /mnt/a/no_dir100 0755
./run --mkdir /mnt/a/no_dir101 0755
./run --mkdir /mnt/a/no_dir102 0755
./run --mkdir /mnt/a/no_dir103 0755
./run --mkdir /mnt/a/no_dir104 0755
./run --mkdir /mnt/a/no_dir105 0755
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
TEST rename-mass-dir.py:33: Unlink mass renamed dirs
./run --rmdir /mnt/a/no_dir100
./run --rmdir /mnt/a/no_dir101
./run --rmdir /mnt/a/no_dir102
./run --rmdir /mnt/a/no_dir103 -E ENOENT
./run --rmdir /mnt/a/no_dir104
./run --rmdir /mnt/a/no_dir105
./run --rmdir /mnt/a/no_dir106
TEST rename-mass-dir.py:46: Mass rename new populated sequential dirs circularly
./run --mkdir /mnt/a/no_dir100 0755
./run --open-file /mnt/a/no_dir100/a -w -c -W abcd0
./run --mkdir /mnt/a/no_dir101 0755
./run --open-file /mnt/a/no_dir101/a -w -c -W abcd1
./run --mkdir /mnt/a/no_dir102 0755
./run --open-file /mnt/a/no_dir102/a -w -c -W abcd2
./run --mkdir /mnt/a/no_dir103 0755
./run --open-file /mnt/a/no_dir103/a -w -c -W abcd3
./run --mkdir /mnt/a/no_dir104 0755
./run --open-file /mnt/a/no_dir104/a -w -c -W abcd4
./run --mkdir /mnt/a/no_dir105 0755
./run --open-file /mnt/a/no_dir105/a -w -c -W abcd5
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
./run --rename /mnt/a/no_dir102 /mnt/a/no_dir103
./run --rename /mnt/a/no_dir101 /mnt/a/no_dir102
./run --rename /mnt/a/no_dir100 /mnt/a/no_dir101
./run --rename /mnt/a/no_dir106 /mnt/a/no_dir100
./run --rename /mnt/a/no_dir105 /mnt/a/no_dir106
./run --rename /mnt/a/no_dir104 /mnt/a/no_dir105
./run --rename /mnt/a/no_dir103 /mnt/a/no_dir104
TEST rename-mass-dir.py:64: Check files in renamed dirs
./run --open-file /mnt/a/no_dir100/a -r -R abcd2
./run --open-file /mnt/a/no_dir101/a -r -R abcd3
./run --open-file /mnt/a/no_dir102/a -r -R abcd4
./run --open-file /mnt/a/no_dir104/a -r -R abcd5
./run --open-file /mnt/a/no_dir105/a -r -R abcd0
./run --open-file /mnt/a/no_dir106/a -r -R abcd1
TEST rename-mass-dir.py:87: Unlink mass renamed dirs
./run --unlink /mnt/a/no_dir100/a
./run --rmdir /mnt/a/no_dir100
./run --unlink /mnt/a/no_dir101/a
./run --rmdir /mnt/a/no_dir101
./run --unlink /mnt/a/no_dir102/a
./run --rmdir /mnt/a/no_dir102
./run --rmdir /mnt/a/no_dir103 -E ENOENT
./run --unlink /mnt/a/no_dir104/a
./run --rmdir /mnt/a/no_dir104
./run --unlink /mnt/a/no_dir105/a
./run --rmdir /mnt/a/no_dir105
./run --unlink /mnt/a/no_dir106/a
./run --rmdir /mnt/a/no_dir106
***
*** ./run --ov --ts=0 rename-mass-sym
***
TEST rename-mass-sym.py:16: Mass rename sequential symlinks circularly
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
./run --rename /mnt/a/direct_sym102 /mnt/a/direct_sym103
./run --rename /mnt/a/direct_sym101 /mnt/a/direct_sym102
./run --rename /mnt/a/direct_sym100 /mnt/a/direct_sym101
./run --rename /mnt/a/direct_sym106 /mnt/a/direct_sym100
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
./run --rename /mnt/a/direct_sym102 /mnt/a/direct_sym103
./run --rename /mnt/a/direct_sym101 /mnt/a/direct_sym102
./run --rename /mnt/a/direct_sym100 /mnt/a/direct_sym101
./run --rename /mnt/a/direct_sym106 /mnt/a/direct_sym100
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
./run --rename /mnt/a/direct_sym102 /mnt/a/direct_sym103
./run --rename /mnt/a/direct_sym101 /mnt/a/direct_sym102
./run --rename /mnt/a/direct_sym100 /mnt/a/direct_sym101
./run --rename /mnt/a/direct_sym106 /mnt/a/direct_sym100
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
./run --rename /mnt/a/direct_sym102 /mnt/a/direct_sym103
./run --rename /mnt/a/direct_sym101 /mnt/a/direct_sym102
./run --rename /mnt/a/direct_sym100 /mnt/a/direct_sym101
./run --rename /mnt/a/direct_sym106 /mnt/a/direct_sym100
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
TEST rename-mass-sym.py:29: Check renamed symlink contents
./run --readlink /mnt/a/direct_sym100 -R ../a/foo102
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym101 -R ../a/foo103
./run --open-file /mnt/a/direct_sym101 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym102 -R ../a/foo104
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym104 -R ../a/foo105
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym105 -R ../a/foo100
./run --open-file /mnt/a/direct_sym105 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym106 -R ../a/foo101
./run --open-file /mnt/a/direct_sym106 -r -R :xxx:yyy:zzz
TEST rename-mass-sym.py:66: Mass rename sequential dir symlinks circularly
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
./run --rename /mnt/a/direct_dir_sym102 /mnt/a/direct_dir_sym103
./run --rename /mnt/a/direct_dir_sym101 /mnt/a/direct_dir_sym102
./run --rename /mnt/a/direct_dir_sym100 /mnt/a/direct_dir_sym101
./run --rename /mnt/a/direct_dir_sym106 /mnt/a/direct_dir_sym100
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
./run --rename /mnt/a/direct_dir_sym102 /mnt/a/direct_dir_sym103
./run --rename /mnt/a/direct_dir_sym101 /mnt/a/direct_dir_sym102
./run --rename /mnt/a/direct_dir_sym100 /mnt/a/direct_dir_sym101
./run --rename /mnt/a/direct_dir_sym106 /mnt/a/direct_dir_sym100
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
./run --rename /mnt/a/direct_dir_sym102 /mnt/a/direct_dir_sym103
./run --rename /mnt/a/direct_dir_sym101 /mnt/a/direct_dir_sym102
./run --rename /mnt/a/direct_dir_sym100 /mnt/a/direct_dir_sym101
./run --rename /mnt/a/direct_dir_sym106 /mnt/a/direct_dir_sym100
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
./run --rename /mnt/a/direct_dir_sym102 /mnt/a/direct_dir_sym103
./run --rename /mnt/a/direct_dir_sym101 /mnt/a/direct_dir_sym102
./run --rename /mnt/a/direct_dir_sym100 /mnt/a/direct_dir_sym101
./run --rename /mnt/a/direct_dir_sym106 /mnt/a/direct_dir_sym100
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
TEST rename-mass-sym.py:79: Check renamed symlink contents
./run --readlink /mnt/a/direct_dir_sym100 -R ../a/dir102
./run --open-file /mnt/a/direct_dir_sym100 -r -d
./run --readlink /mnt/a/direct_dir_sym101 -R ../a/dir103
./run --open-file /mnt/a/direct_dir_sym101 -r -d
./run --readlink /mnt/a/direct_dir_sym102 -R ../a/dir104
./run --open-file /mnt/a/direct_dir_sym102 -r -d
./run --readlink /mnt/a/direct_dir_sym104 -R ../a/dir105
./run --open-file /mnt/a/direct_dir_sym104 -r -d
./run --readlink /mnt/a/direct_dir_sym105 -R ../a/dir100
./run --open-file /mnt/a/direct_dir_sym105 -r -d
./run --readlink /mnt/a/direct_dir_sym106 -R ../a/dir101
./run --open-file /mnt/a/direct_dir_sym106 -r -d
TEST rename-mass-sym.py:103: Unlink mass renamed symlinks
./run --rmdir /mnt/a/direct_dir_sym100 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym100
./run --rmdir /mnt/a/direct_dir_sym101 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym101
./run --rmdir /mnt/a/direct_dir_sym102 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym102
./run --unlink /mnt/a/direct_dir_sym103 -E ENOENT
./run --rmdir /mnt/a/direct_dir_sym104 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym104
./run --rmdir /mnt/a/direct_dir_sym105 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym105
./run --rmdir /mnt/a/direct_dir_sym106 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym106
./run --rmdir /mnt/a/direct_dir_sym107 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym107
***
*** ./run --ov --ts=1 rename-mass-sym
***
TEST rename-mass-sym.py:16: Mass rename sequential symlinks circularly
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
./run --rename /mnt/a/direct_sym102 /mnt/a/direct_sym103
./run --rename /mnt/a/direct_sym101 /mnt/a/direct_sym102
./run --rename /mnt/a/direct_sym100 /mnt/a/direct_sym101
./run --rename /mnt/a/direct_sym106 /mnt/a/direct_sym100
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
./run --rename /mnt/a/direct_sym102 /mnt/a/direct_sym103
./run --rename /mnt/a/direct_sym101 /mnt/a/direct_sym102
./run --rename /mnt/a/direct_sym100 /mnt/a/direct_sym101
./run --rename /mnt/a/direct_sym106 /mnt/a/direct_sym100
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
./run --rename /mnt/a/direct_sym102 /mnt/a/direct_sym103
./run --rename /mnt/a/direct_sym101 /mnt/a/direct_sym102
./run --rename /mnt/a/direct_sym100 /mnt/a/direct_sym101
./run --rename /mnt/a/direct_sym106 /mnt/a/direct_sym100
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
./run --rename /mnt/a/direct_sym102 /mnt/a/direct_sym103
./run --rename /mnt/a/direct_sym101 /mnt/a/direct_sym102
./run --rename /mnt/a/direct_sym100 /mnt/a/direct_sym101
./run --rename /mnt/a/direct_sym106 /mnt/a/direct_sym100
./run --rename /mnt/a/direct_sym105 /mnt/a/direct_sym106
./run --rename /mnt/a/direct_sym104 /mnt/a/direct_sym105
./run --rename /mnt/a/direct_sym103 /mnt/a/direct_sym104
TEST rename-mass-sym.py:29: Check renamed symlink contents
./run --readlink /mnt/a/direct_sym100 -R ../a/foo102
./run --open-file /mnt/a/direct_sym100 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym101 -R ../a/foo103
./run --open-file /mnt/a/direct_sym101 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym102 -R ../a/foo104
./run --open-file /mnt/a/direct_sym102 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym104 -R ../a/foo105
./run --open-file /mnt/a/direct_sym104 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym105 -R ../a/foo100
./run --open-file /mnt/a/direct_sym105 -r -R :xxx:yyy:zzz
./run --readlink /mnt/a/direct_sym106 -R ../a/foo101
./run --open-file /mnt/a/direct_sym106 -r -R :xxx:yyy:zzz
TEST rename-mass-sym.py:66: Mass rename sequential dir symlinks circularly
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
./run --rename /mnt/a/direct_dir_sym102 /mnt/a/direct_dir_sym103
./run --rename /mnt/a/direct_dir_sym101 /mnt/a/direct_dir_sym102
./run --rename /mnt/a/direct_dir_sym100 /mnt/a/direct_dir_sym101
./run --rename /mnt/a/direct_dir_sym106 /mnt/a/direct_dir_sym100
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
./run --rename /mnt/a/direct_dir_sym102 /mnt/a/direct_dir_sym103
./run --rename /mnt/a/direct_dir_sym101 /mnt/a/direct_dir_sym102
./run --rename /mnt/a/direct_dir_sym100 /mnt/a/direct_dir_sym101
./run --rename /mnt/a/direct_dir_sym106 /mnt/a/direct_dir_sym100
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
./run --rename /mnt/a/direct_dir_sym102 /mnt/a/direct_dir_sym103
./run --rename /mnt/a/direct_dir_sym101 /mnt/a/direct_dir_sym102
./run --rename /mnt/a/direct_dir_sym100 /mnt/a/direct_dir_sym101
./run --rename /mnt/a/direct_dir_sym106 /mnt/a/direct_dir_sym100
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
./run --rename /mnt/a/direct_dir_sym102 /mnt/a/direct_dir_sym103
./run --rename /mnt/a/direct_dir_sym101 /mnt/a/direct_dir_sym102
./run --rename /mnt/a/direct_dir_sym100 /mnt/a/direct_dir_sym101
./run --rename /mnt/a/direct_dir_sym106 /mnt/a/direct_dir_sym100
./run --rename /mnt/a/direct_dir_sym105 /mnt/a/direct_dir_sym106
./run --rename /mnt/a/direct_dir_sym104 /mnt/a/direct_dir_sym105
./run --rename /mnt/a/direct_dir_sym103 /mnt/a/direct_dir_sym104
TEST rename-mass-sym.py:79: Check renamed symlink contents
./run --readlink /mnt/a/direct_dir_sym100 -R ../a/dir102
./run --open-file /mnt/a/direct_dir_sym100 -r -d
./run --readlink /mnt/a/direct_dir_sym101 -R ../a/dir103
./run --open-file /mnt/a/direct_dir_sym101 -r -d
./run --readlink /mnt/a/direct_dir_sym102 -R ../a/dir104
./run --open-file /mnt/a/direct_dir_sym102 -r -d
./run --readlink /mnt/a/direct_dir_sym104 -R ../a/dir105
./run --open-file /mnt/a/direct_dir_sym104 -r -d
./run --readlink /mnt/a/direct_dir_sym105 -R ../a/dir100
./run --open-file /mnt/a/direct_dir_sym105 -r -d
./run --readlink /mnt/a/direct_dir_sym106 -R ../a/dir101
./run --open-file /mnt/a/direct_dir_sym106 -r -d
TEST rename-mass-sym.py:103: Unlink mass renamed symlinks
./run --rmdir /mnt/a/direct_dir_sym100 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym100
./run --rmdir /mnt/a/direct_dir_sym101 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym101
./run --rmdir /mnt/a/direct_dir_sym102 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym102
./run --unlink /mnt/a/direct_dir_sym103 -E ENOENT
./run --rmdir /mnt/a/direct_dir_sym104 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym104
./run --rmdir /mnt/a/direct_dir_sym105 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym105
./run --rmdir /mnt/a/direct_dir_sym106 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym106
./run --rmdir /mnt/a/direct_dir_sym107 -E ENOTDIR
./run --unlink /mnt/a/direct_dir_sym107
***
*** ./run --ov --ts=0 impermissible
***
TEST impermissible.py:9: Impermissible open O_TRUNC|O_WRONLY
./run --open-file /mnt/a/rootfile100 -w -t -B -E EACCES
./run --open-file /mnt/a/rootfile100 -w -B -E EACCES
./run --open-file /mnt/a/rootfile100 -r -R :xxx:yyy:zzz -B
./run --open-file /mnt/a/rootfile100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/rootfile100 -w -W shark
./run --open-file /mnt/a/rootfile100 -r -R sharkyyy:zzz
./run --open-file /mnt/a/rootfile100 -r -R sharkyyy:zzz -B
TEST impermissible.py:21: Impermissible open O_WRONLY
./run --open-file /mnt/a/rootfile101 -w -B -E EACCES
./run --open-file /mnt/a/rootfile101 -w -B -E EACCES
./run --open-file /mnt/a/rootfile101 -r -R :xxx:yyy:zzz -B
./run --open-file /mnt/a/rootfile101 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/rootfile101 -w -W shark
./run --open-file /mnt/a/rootfile101 -r -R sharkyyy:zzz
./run --open-file /mnt/a/rootfile101 -r -R sharkyyy:zzz -B
TEST impermissible.py:33: Impermissible open O_APPEND
./run --open-file /mnt/a/rootfile102 -a -B -E EACCES
./run --open-file /mnt/a/rootfile102 -a -B -E EACCES
./run --open-file /mnt/a/rootfile102 -r -R :xxx:yyy:zzz -B
./run --open-file /mnt/a/rootfile102 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/rootfile102 -a -W shark
./run --open-file /mnt/a/rootfile102 -r -R :xxx:yyy:zzzshark
./run --open-file /mnt/a/rootfile102 -r -R :xxx:yyy:zzzshark -B
TEST impermissible.py:48: Impermissible truncate
./run --truncate /mnt/a/rootfile103 4 -B -E EACCES
./run --truncate /mnt/a/rootfile103 4 -B -E EACCES
./run --open-file /mnt/a/rootfile103 -r -R :xxx:yyy:zzz -B
./run --open-file /mnt/a/rootfile103 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/rootfile103 4
./run --open-file /mnt/a/rootfile103 -r -R :xxx
./run --open-file /mnt/a/rootfile103 -r -R :xxx -B
TEST impermissible.py:75: Impermissible utimes
./run --utimes /mnt/a/rootfile104 -B -E EACCES
./run --utimes /mnt/a/rootfile104 -B -E EACCES
./run --utimes /mnt/a/rootfile104
./run --open-file /mnt/a/rootfile104 -r -R :xxx:yyy:zzz
***
*** ./run --ov --ts=1 impermissible
***
TEST impermissible.py:9: Impermissible open O_TRUNC|O_WRONLY
./run --open-file /mnt/a/rootfile100 -w -t -B -E EACCES
./run --open-file /mnt/a/rootfile100 -w -B -E EACCES
./run --open-file /mnt/a/rootfile100 -r -R :xxx:yyy:zzz -B
./run --open-file /mnt/a/rootfile100 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/rootfile100 -w -W shark
./run --open-file /mnt/a/rootfile100 -r -R sharkyyy:zzz
./run --open-file /mnt/a/rootfile100 -r -R sharkyyy:zzz -B
TEST impermissible.py:21: Impermissible open O_WRONLY
./run --open-file /mnt/a/rootfile101 -w -B -E EACCES
./run --open-file /mnt/a/rootfile101 -w -B -E EACCES
./run --open-file /mnt/a/rootfile101 -r -R :xxx:yyy:zzz -B
./run --open-file /mnt/a/rootfile101 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/rootfile101 -w -W shark
./run --open-file /mnt/a/rootfile101 -r -R sharkyyy:zzz
./run --open-file /mnt/a/rootfile101 -r -R sharkyyy:zzz -B
TEST impermissible.py:33: Impermissible open O_APPEND
./run --open-file /mnt/a/rootfile102 -a -B -E EACCES
./run --open-file /mnt/a/rootfile102 -a -B -E EACCES
./run --open-file /mnt/a/rootfile102 -r -R :xxx:yyy:zzz -B
./run --open-file /mnt/a/rootfile102 -r -R :xxx:yyy:zzz
./run --open-file /mnt/a/rootfile102 -a -W shark
./run --open-file /mnt/a/rootfile102 -r -R :xxx:yyy:zzzshark
./run --open-file /mnt/a/rootfile102 -r -R :xxx:yyy:zzzshark -B
TEST impermissible.py:48: Impermissible truncate
./run --truncate /mnt/a/rootfile103 4 -B -E EACCES
./run --truncate /mnt/a/rootfile103 4 -B -E EACCES
./run --open-file /mnt/a/rootfile103 -r -R :xxx:yyy:zzz -B
./run --open-file /mnt/a/rootfile103 -r -R :xxx:yyy:zzz
./run --truncate /mnt/a/rootfile103 4
./run --open-file /mnt/a/rootfile103 -r -R :xxx
./run --open-file /mnt/a/rootfile103 -r -R :xxx -B
TEST impermissible.py:75: Impermissible utimes
./run --utimes /mnt/a/rootfile104 -B -E EACCES
./run --utimes /mnt/a/rootfile104 -B -E EACCES
./run --utimes /mnt/a/rootfile104
./run --open-file /mnt/a/rootfile104 -r -R :xxx:yyy:zzz