overlay/013: do not expect failure
authorMiklos Szeredi <mszeredi@redhat.com>
Mon, 16 Apr 2018 10:41:41 +0000 (12:41 +0200)
committerEryu Guan <guaneryu@gmail.com>
Sun, 22 Apr 2018 10:44:16 +0000 (18:44 +0800)
Current test expects test_lower to fail with:

  truncate(test_lower) should have failed

While it is sort of okay to fail like that (the above expectation
basically acknowledges this weirdness in the overlayfs
implementation), it is by no means the only correct behavior: it is
also correct for the test to succeed (i.e. truncation fails with
ETXTBSY).

So add an option to t_truncate_self.c that allows both success and
failure, but obviously not SIGSEGV, which is what a we'd get in a
real failure mode.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
src/t_truncate_self.c
tests/overlay/013
tests/overlay/013.out

index 3f1c8e6fde8072e3699c4013383d30fa9bbaf71f..a11f7d5a7d48a21392587e7cdaec83a22f2c2004 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdio.h>
+#include <string.h>
 #include <errno.h>
 #include <unistd.h>
 #include <libgen.h>
@@ -10,6 +11,8 @@ int main(int argc, char *argv[])
 
        ret = truncate(argv[0], 4096);
        if (ret != -1) {
+               if (argc == 2 && strcmp(argv[1], "--may-succeed") == 0)
+                       return 0;
                fprintf(stderr, "truncate(%s) should have failed\n",
                        progname);
                return 1;
index de0fc26a1c889921738a21d283202aee332b3218..8ff438d8f4f66911b761fe2863fcc6c27165f20b 100755 (executable)
@@ -65,9 +65,10 @@ _scratch_mount
 
 # run test program from lower and upper dir
 # test programs truncate themselfs, all should fail with ETXTBSY
-$SCRATCH_MNT/test_lower
+$SCRATCH_MNT/test_lower --may-succeed
 $SCRATCH_MNT/test_upper
 
 # success, all done
+echo "Silence is golden"
 status=0
 exit
index b2c7cc7e2cacbb970a20d7210dbf73f9e2496dbe..3e66423b5467b73d7be6eab670c65742b76c5f13 100644 (file)
@@ -1,2 +1,2 @@
 QA output created by 013
-truncate(test_lower) should have failed
+Silence is golden