Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> --- t/t0400-external-odb.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/t/t0400-external-odb.sh b/t/t0400-external-odb.sh index fe85413725..6c6da5cf4f 100755 --- a/t/t0400-external-odb.sh +++ b/t/t0400-external-odb.sh @@ -7,6 +7,10 @@ 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 have) @@ -16,6 +20,16 @@ have) get) cat "$GIT_DIR"/objects/$(echo $2 | sed 's#..#&/#') ;; +put) + 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" @@ -43,4 +57,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 "$hash" "$size" blob && + alt_size=$(cd alt-repo && git cat-file -s "$hash") && + test "$size" -eq "$alt_size" +' + test_done -- 2.13.1.565.gbfcd7a9048