linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] btrfs/029: fix the test compatible with older cp(1)
@ 2021-06-04  6:25 Anand Jain
  0 siblings, 0 replies; only message in thread
From: Anand Jain @ 2021-06-04  6:25 UTC (permalink / raw)
  To: fstests; +Cc: linux-btrfs

cp(1) versions 8.30 and 8.32 are compared with its --reflink=always option
and they have different semantic if the target-file (with zero sizes) must be
created when the cp --reflink=alaways fails with a cross-device link
error. As shown below.

$ cp --version | head -1
cp (GNU coreutils) 8.30

$ cp --reflink=always /mnt/scratch/original /mnt/test/test-029/copy
cp: failed to clone '/mnt/test/test-029/copy' from '/mnt/scratch/original': Invalid cross-device link

$ ls -l /mnt/test/test-029/copy
ls: cannot access '/mnt/test/test-029/copy': No such file or directory

$ cp --version | head -1
cp (GNU coreutils) 8.32

$ cp --reflink=always /mnt/scratch/original /mnt/test/test-029/copy;
cp: failed to clone '/mnt/test/test-029/copy' from '/mnt/scratch/original': Invalid cross-device link

$ ls -l /mnt/test/test-029/copy
-rw------- 1 root root 0 Jun  4 13:29 /mnt/test/test-029/copy

Reported-by: Wang Yugui <wangyugui@e16-tech.com>
Signed-off-by: Anand Jain <anand.jain@oracle.com>
---
 tests/btrfs/029     | 6 ++++--
 tests/btrfs/029.out | 2 --
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/tests/btrfs/029 b/tests/btrfs/029
index bbbb79708180..0234a7f0142b 100755
--- a/tests/btrfs/029
+++ b/tests/btrfs/029
@@ -65,8 +65,10 @@ _create_reflinks()
     echo "reflink=always:"
     cp --reflink=always $1 $2 >> $seqres.full 2>&1 || echo "cp reflink failed"
 
-    # The failed target actually gets created by cp:
-    ls $2 | _filter_testdir_and_scratch
+    # The failed target gets created with zero sizes by cp(1) version 8.32. But
+    # in older cp(1) version 8.30 target file is not created when the
+    # cp --reflink=always fails.
+    ls $2 >> $seqres.full 2>&1
 }
 
 echo "test reflinks across different devices"
diff --git a/tests/btrfs/029.out b/tests/btrfs/029.out
index 0547d2803308..f1c887807650 100644
--- a/tests/btrfs/029.out
+++ b/tests/btrfs/029.out
@@ -5,11 +5,9 @@ reflink=auto:
 42d69d1a6d333a7ebdf64792a555e392  TEST_DIR/test-029/copy
 reflink=always:
 cp reflink failed
-TEST_DIR/test-029/copy
 test reflinks across different mountpoints of same device
 reflink=auto:
 42d69d1a6d333a7ebdf64792a555e392  SCRATCH_MNT/original
 42d69d1a6d333a7ebdf64792a555e392  TEST_DIR/test-029/copy
 reflink=always:
 cp reflink failed
-TEST_DIR/test-029/copy
-- 
2.27.0


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2021-06-04  6:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-04  6:25 [PATCH] btrfs/029: fix the test compatible with older cp(1) Anand Jain

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).