]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
tests: test fiemap-enabled cp more thoroughly
authorJim Meyering <meyering@redhat.com>
Sat, 22 May 2010 08:21:46 +0000 (10:21 +0200)
committerJim Meyering <meyering@redhat.com>
Fri, 11 Jun 2010 12:10:57 +0000 (14:10 +0200)
* tests/cp/sparse-fiemap: More tests.

tests/cp/sparse-fiemap

index 1f78671ce504f701304d0f45f72c67b2458e1f20..907ccbdbc6db13296a82b97817aa551dc4c0a14e 100755 (executable)
@@ -66,34 +66,37 @@ test $(stat --printf %s sparse) = $(stat --printf %s fiemap) || fail=1
 
 $PERL -e 1 || skip_test_ 'skipping part of this test; you lack perl'
 
-$PERL -e 'BEGIN { $n = 16 * 1024; *F = *STDOUT }' \
-      -e 'for (1..100) { sysseek (*F, $n, 1)' \
-      -e '&& syswrite (*F, "."x$n) or die "$!"}' > j1 || fail=1
-
-cp --sparse=always j1 j2 || fail=1
-cmp j1 j2 || fail=1
-
-filefrag j1 | grep extent \
-  || skip_test_ 'skipping part of this test; you lack filefrag'
-
-# Here is sample filefrag output:
-#   $ perl -e 'BEGIN{$n=16*1024; *F=*STDOUT}' \
-#          -e 'for (1..5) { sysseek(*F,$n,1)' \
-#          -e '&& syswrite *F,"."x$n or die "$!"}' > j
-#   $ filefrag -v j
-#   File system type is: ef53
-#   File size of j is 163840 (40 blocks, blocksize 4096)
-#    ext logical physical expected length flags
-#      0       4  6258884               4
-#      1      12  6258892  6258887      4
-#      2      20  6258900  6258895      4
-#      3      28  6258908  6258903      4
-#      4      36  6258916  6258911      4 eof
-#   j: 6 extents found
-
-# exclude the physical block numbers; they always differ
-filefrag -v j1 | awk '/^ / {print $1,$2,$NF}' > ff1 || fail=1
-filefrag -v j2 | awk '/^ / {print $1,$2,$NF}' > ff2 || fail=1
-compare ff1 ff2 || fail=1
+for i in $(seq 20); do
+  for j in 1 2 31 100; do
+    $PERL -e 'BEGIN { $n = '$i' * 1024; *F = *STDOUT }' \
+          -e 'for (1..'$j') { sysseek (*F, $n, 1)' \
+          -e '&& syswrite (*F, "."x$n) or die "$!"}' > j1 || fail=1
+
+    cp --sparse=always j1 j2 || fail=1
+    cmp j1 j2 || fail=1
+    filefrag -v j1 | grep extent \
+      || skip_test_ 'skipping part of this test; you lack filefrag'
+
+    # Here is sample filefrag output:
+    #   $ perl -e 'BEGIN{$n=16*1024; *F=*STDOUT}' \
+    #          -e 'for (1..5) { sysseek(*F,$n,1)' \
+    #          -e '&& syswrite *F,"."x$n or die "$!"}' > j
+    #   $ filefrag -v j
+    #   File system type is: ef53
+    #   File size of j is 163840 (40 blocks, blocksize 4096)
+    #    ext logical physical expected length flags
+    #      0       4  6258884               4
+    #      1      12  6258892  6258887      4
+    #      2      20  6258900  6258895      4
+    #      3      28  6258908  6258903      4
+    #      4      36  6258916  6258911      4 eof
+    #   j: 6 extents found
+
+    # exclude the physical block numbers; they always differ
+    filefrag -v j1 | awk '/^ / {print $1,$2}' > ff1 || fail=1
+    filefrag -v j2 | awk '/^ / {print $1,$2}' > ff2 || fail=1
+    compare ff1 ff2 || fail=1
+  done
+done
 
 Exit $fail