[PATCH v5 12/40] t0400: add 'put_raw_obj' instruction to odb-helper script
From: Christian Couder <hidden>
Date: 2017-08-03 09:20:23
Subsystem:
the rest · Maintainer:
Linus Torvalds
To properly test passing objects from Git to an external odb we need an odb-helper script that supports a 'put' capability/instruction. For now we will support only sending raw blobs, so the supported capability/instruction will be 'put_raw_obj'. While at it let's add a test to check that our odb-helper script works well. Signed-off-by: Christian Couder <redacted> --- t/t0400-external-odb.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
diff --git a/t/t0400-external-odb.sh b/t/t0400-external-odb.sh
index ed89f3ab40..3fa0449883 100755
--- a/t/t0400-external-odb.sh
+++ b/t/t0400-external-odb.sh@@ -7,10 +7,15 @@ test_description='basic tests for external object databases' ALT_SOURCE="$PWD/alt-repo/.git" export ALT_SOURCE write_script odb-helper <<\EOF +die() { + printf >&2 "%s\n" "$@" + exit 1 +} GIT_DIR=$ALT_SOURCE; export GIT_DIR case "$1" in init) echo "capability=get_git_obj" + echo "capability=put_raw_obj" echo "capability=have" ;; have)
@@ -20,6 +25,16 @@ have) get_git_obj) cat "$GIT_DIR"/objects/$(echo $2 | sed 's#..#&/#') ;; +put_raw_obj) + sha1="$2" + size="$3" + kind="$4" + writen=$(git hash-object -w -t "$kind" --stdin) + test "$writen" = "$sha1" || die "bad sha1 passed '$sha1' vs writen '$writen'" + ;; +*) + die "unknown command '$1'" + ;; esac EOF HELPER="\"$PWD\"/odb-helper"
@@ -47,4 +62,13 @@ test_expect_success 'helper can retrieve alt objects' ' test_cmp expect actual ' +test_expect_success 'helper can add objects to alt repo' ' + hash=$(echo "Hello odb!" | git hash-object -w -t blob --stdin) && + test -f .git/objects/$(echo $hash | sed "s#..#&/#") && + size=$(git cat-file -s "$hash") && + git cat-file blob "$hash" | ./odb-helper put_raw_obj "$hash" "$size" blob && + alt_size=$(cd alt-repo && git cat-file -s "$hash") && + test "$size" -eq "$alt_size" +' + test_done
--
2.14.0.rc1.52.gf02fb0ddac.dirty