summaryrefslogtreecommitdiff
path: root/tests/test-local-pull-depth.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-local-pull-depth.sh')
-rwxr-xr-xtests/test-local-pull-depth.sh34
1 files changed, 33 insertions, 1 deletions
diff --git a/tests/test-local-pull-depth.sh b/tests/test-local-pull-depth.sh
index 96b20b9c..80413bc9 100755
--- a/tests/test-local-pull-depth.sh
+++ b/tests/test-local-pull-depth.sh
@@ -25,7 +25,7 @@ set -euo pipefail
setup_test_repository "archive"
-echo "1..1"
+echo "1..3"
cd ${test_tmpdir}
mkdir repo2
@@ -62,3 +62,35 @@ find repo2/state -name '*.commitpartial' | wc -l > commitpartialcount
assert_file_has_content commitpartialcount "^0$"
echo "ok local pull depth"
+
+# Check that pulling with depth != 0 succeeds with a missing parent
+# commit. Prune the remote to truncate the history.
+cd ${test_tmpdir}
+${CMD_PREFIX} ostree --repo=repo prune --refs-only --depth=0
+
+rm -rf repo2/refs/heads/* repo2/refs/remotes/* repo2/objects/*/*.commit
+${CMD_PREFIX} ostree --repo=repo2 pull-local --depth=1 repo
+find repo/objects -name '*.commit' | wc -l > commitcount
+assert_file_has_content commitcount "^1$"
+find repo/state -name '*.commitpartial' | wc -l > commitpartialcount
+assert_file_has_content commitpartialcount "^0$"
+
+rm -rf repo2/refs/heads/* repo2/refs/remotes/* repo2/objects/*/*.commit
+${CMD_PREFIX} ostree --repo=repo2 pull-local --depth=-1 repo
+find repo/objects -name '*.commit' | wc -l > commitcount
+assert_file_has_content commitcount "^1$"
+find repo/state -name '*.commitpartial' | wc -l > commitpartialcount
+assert_file_has_content commitpartialcount "^0$"
+
+echo "ok local pull depth missing parent"
+
+# Check that it errors if the ref head commit is missing.
+cd ${test_tmpdir}
+rm -f repo/objects/*/*.commit
+
+rm -rf repo2/refs/heads/* repo2/refs/remotes/* repo2/objects/*/*.commit
+if ${CMD_PREFIX} ostree --repo=repo2 pull-local --depth=-1 repo; then
+ fatal "Local pull with depth -1 succeeded with missing HEAD commit"
+fi
+
+echo "ok local pull depth missing HEAD commit"