]> arthur.barton.de Git - bup.git/blobdiff - t/test-sparse-files.sh
test-sparse-files: accommodate python 3 and test there
[bup.git] / t / test-sparse-files.sh
index 5112ddabd1904cf1f1181ed06ae8b5645f67f0d9..fdbfa4bc210d5e75fd480ba14f4ada355808778e 100755 (executable)
@@ -19,7 +19,7 @@ WVPASS cd "$tmpdir"
 # The 3MB guess is semi-arbitrary, but we've been informed that
 # Lustre, for example, uses 1MB, so guess higher than that, at least.
 block_size=$(bup-python -c \
-  "import os; print getattr(os.stat('.'), 'st_blksize', 0) or $mb * 3") \
+  "import os; print(getattr(os.stat('.'), 'st_blksize', 0)) or $mb * 3") \
     || exit $?
 data_size=$((block_size * 10))
 readonly block_size data_size
@@ -42,21 +42,21 @@ WVPASS bup save -n src src
 
 WVSTART "sparse file restore (all sparse)"
 WVPASS bup restore -C restore "src/latest/$(pwd)/"
-restore_size=$(WVPASS du -k -s restore | WVPASS cut -f1) || exit $?
+restore_size=$(WVPASS du -k -s restore/src/foo | WVPASS cut -f1) || exit $?
 WVPASS [ "$restore_size" -ge "$((data_size / 1024))" ]
 WVPASS "$top/t/compare-trees" -c src/ restore/src/
 
 WVSTART "sparse file restore --no-sparse (all sparse)"
 WVPASS rm -r restore
 WVPASS bup restore --no-sparse -C restore "src/latest/$(pwd)/"
-restore_size=$(WVPASS du -k -s restore | WVPASS cut -f1) || exit $?
+restore_size=$(WVPASS du -k -s restore/src/foo | WVPASS cut -f1) || exit $?
 WVPASS [ "$restore_size" -ge "$((data_size / 1024))" ]
 WVPASS "$top/t/compare-trees" -c src/ restore/src/
 
 WVSTART "sparse file restore --sparse (all sparse)"
 WVPASS rm -r restore
 WVPASS bup restore --sparse -C restore "src/latest/$(pwd)/"
-restore_size=$(WVPASS du -k -s restore | WVPASS cut -f1) || exit $?
+restore_size=$(WVPASS du -k -s restore/src/foo | WVPASS cut -f1) || exit $?
 WVPASS [ "$restore_size" -le "$((3 * (block_size / 1024)))" ]
 WVPASS "$top/t/compare-trees" -c src/ restore/src/
 
@@ -67,7 +67,7 @@ WVPASS bup index src
 WVPASS bup save -n src src
 WVPASS rm -r restore
 WVPASS bup restore --sparse -C restore "src/latest/$(pwd)/"
-restore_size=$(WVPASS du -k -s restore | WVPASS cut -f1) || exit $?
+restore_size=$(WVPASS du -k -s restore/src/foo | WVPASS cut -f1) || exit $?
 WVPASS [ "$restore_size" -le "$((3 * (block_size / 1024)))" ]
 WVPASS "$top/t/compare-trees" -c src/ restore/src/
 
@@ -77,7 +77,7 @@ WVPASS bup index src
 WVPASS bup save -n src src
 WVPASS rm -r restore
 WVPASS bup restore --sparse -C restore "src/latest/$(pwd)/"
-restore_size=$(WVPASS du -k -s restore | WVPASS cut -f1) || exit $?
+restore_size=$(WVPASS du -k -s restore/src/foo | WVPASS cut -f1) || exit $?
 WVPASS [ "$restore_size" -le "$((5 * (block_size / 1024)))" ]
 WVPASS "$top/t/compare-trees" -c src/ restore/src/
 
@@ -98,7 +98,7 @@ WVPASS bup index src
 WVPASS bup save -n src src
 WVPASS rm -r restore
 WVPASS bup restore --sparse -C restore "src/latest/$(pwd)/"
-restore_size=$(WVPASS du -k -s restore | WVPASS cut -f1) || exit $?
+restore_size=$(WVPASS du -k -s restore/src/foo | WVPASS cut -f1) || exit $?
 WVPASS [ "$restore_size" -le "$((5 * (block_size / 1024)))" ]
 WVPASS "$top/t/compare-trees" -c src/ restore/src/
 
@@ -110,7 +110,7 @@ WVPASS bup index src
 WVPASS bup save -n src src
 WVPASS rm -r restore
 WVPASS bup restore --sparse -C restore "src/latest/$(pwd)/"
-restore_size=$(WVPASS du -k -s restore | WVPASS cut -f1) || exit $?
+restore_size=$(WVPASS du -k -s restore/src/foo | WVPASS cut -f1) || exit $?
 WVPASS [ "$restore_size" -le "$((5 * (block_size / 1024)))" ]
 WVPASS "$top/t/compare-trees" -c src/ restore/src/
 
@@ -127,4 +127,34 @@ WVPASS rm -r restore
 WVPASS bup restore --sparse -C restore "src/latest/$(pwd)/"
 WVPASS "$top/t/compare-trees" -c src/ restore/src/
 
+WVSTART "sparse file restore --sparse (random sparse regions)"
+WVPASS rm -rf "$BUP_DIR" src
+WVPASS bup init
+WVPASS mkdir src
+for sparse_dataset in 0 1 2 3 4 5 6 7 8 9
+do
+    WVPASS "$top/t/sparse-test-data" "src/foo-$sparse_dataset"
+done
+WVPASS bup index src
+WVPASS bup save -n src src
+WVPASS rm -r restore
+WVPASS bup restore --sparse -C restore "src/latest/$(pwd)/"
+WVPASS "$top/t/compare-trees" -c src/ restore/src/
+
+WVSTART "sparse file restore --sparse (short zero runs around boundary)"
+WVPASS bup-python > src/foo <<EOF
+from sys import stdout
+stdout.write("x" * 65535 + "\0")
+stdout.write("\0" + "x" * 65535)
+stdout.write("\0" + "x" * 65534 + "\0")
+stdout.write("x" * 65536)
+stdout.write("\0")
+EOF
+WVPASS bup index src
+WVPASS bup save -n src src
+WVPASS rm -r restore
+WVPASS bup restore --sparse -C restore "src/latest/$(pwd)/"
+WVPASS "$top/t/compare-trees" -c src/ restore/src/
+
+
 WVPASS rm -rf "$tmpdir"