]> arthur.barton.de Git - bup.git/blobdiff - t/test-rm-between-index-and-save.sh
Remove lib.sh actually-root in favor of t/root-status.
[bup.git] / t / test-rm-between-index-and-save.sh
index 1f21ac7a5666dd151fdb9c31d86baccf1204716d..65a1a721941ac04c438a0d0a16b49190f1e3ed84 100755 (executable)
@@ -17,15 +17,30 @@ mkdir "$D"
 bup init
 echo "content" > "$D"/foo
 echo "content" > "$D"/bar
+bup tick
 bup index -ux "$D"
 bup save -n save-fail-missing "$D"
 echo "content" > "$D"/baz
+bup tick
 bup index -ux "$D"
 rm "$D"/foo
-WVFAIL bup save -n save-fail-missing "$D"
+# When "bup tick" is removed above, this may fail (complete with warning),
+# since the ctime/mtime of "foo" might be pushed back:
+WVPASS bup save -n save-fail-missing "$D"
+# when the save-call failed, foo is missing from output, since only
+# then bup notices, that it was removed:
+WVPASSEQ "$(bup ls -a save-fail-missing/latest/$TOP/$D/)" "bar
+baz
+foo"
+# index/save again
+bup tick
+bup index -ux "$D"
+WVPASS bup save -n save-fail-missing "$D"
+# now foo is gone:
 WVPASSEQ "$(bup ls -a save-fail-missing/latest/$TOP/$D/)" "bar
 baz"
 
+
 # TODO: Test for racecondition between reading a file and reading its metadata?
 
 WVSTART "remove dir"
@@ -35,13 +50,26 @@ rm -r "$BUP_DIR"
 bup init
 mkdir "$D"/foo
 mkdir "$D"/bar
+bup tick
 bup index -ux "$D"
 bup save -n save-fail-missing "$D"
 touch "$D"/bar
 mkdir "$D"/baz
+bup tick
 bup index -ux "$D"
 rmdir "$D"/foo
+# with directories, bup notices that foo is missing, so it fails
+# (complete with delayed error)
 WVFAIL bup save -n save-fail-missing "$D"
+# ... so "foo" is absent from "bup ls"
+WVPASSEQ "$(bup ls -a save-fail-missing/latest/$TOP/$D/)" "bar/
+baz/"
+# Index again:
+bup tick
+bup index -ux "$D"
+# no non-zero-exitcode anymore:
+WVPASS bup save -n save-fail-missing "$D"
+# foo is (still...) missing, of course:
 WVPASSEQ "$(bup ls -a save-fail-missing/latest/$TOP/$D/)" "bar/
 baz/"