Signed-off-by: Chris Packham <judge.packham@xxxxxxxxx> --- I wasn't sure about the test numbering so I just grabbed the highest one. Still need to add tests for the deletion use case. t/t9800-git-alternate.sh | 95 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 95 insertions(+), 0 deletions(-) create mode 100644 t/t9800-git-alternate.sh diff --git a/t/t9800-git-alternate.sh b/t/t9800-git-alternate.sh new file mode 100644 index 0000000..e95f5bd --- /dev/null +++ b/t/t9800-git-alternate.sh @@ -0,0 +1,95 @@ +#!/bin/sh + +test_description='Test of git alternate command' + +. ./test-lib.sh + +test_expect_success \ + 'Setup for rest of the test' ' + mkdir -p base && + cd base && + git init && + echo test > a.txt && + echo test > b.txt && + echo test > c.txt && + git add *.txt && + git commit -a -m "Initial Commit" && + cd .. && + git clone base A && + git clone A B && + git clone A C && + git clone A D +' + +test_expect_success \ + 'Add alternate after clone' ' + (cd B && + git alternate -a ../base/.git/objects + ) +' + +test_expect_success \ + 'add same alternate fails adding existing abs path' ' + (cd B && + test_must_fail git alternate -a $PWD/base/.git/objects + ) +' + +test_expect_success \ + 'add same alternate fails adding existing relative path' ' + (cd B && + test_must_fail git alternate -a ../base/.git/objects + ) +' + +test_expect_success \ + 'Add multiple alternates' ' + (cd C && + git alternate -a ../base/.git/objects && + git alternate -a ../B/.git/objects + ) +' + +test_expect_success \ + 'Add recursive alternate' ' + (cd D && + git alternate -a ../C/.git/objects + ) +' + +test_expect_success \ + 'test git alternate display' ' + testbase=$PWD + (cd B && + git alternate >actual && + { + echo "Object store $testbase/base/.git/objects" + echo " referenced via $testbase/B/.git" + } >expect && + test_cmp expect actual + ) +' + +test_expect_success \ + 'test git alternate recursive display' ' + testbase=$PWD + (cd D && + + git alternate -r >actual && + + { + echo "Object store $testbase/C/.git/objects" + echo " referenced via $testbase/D/.git" + echo "Object store $testbase/base/.git/objects" + echo " referenced via $testbase/C/.git" + echo "Object store $testbase/B/.git/objects" + echo " referenced via $testbase/C/.git" + echo "Object store $testbase/base/.git/objects" + echo " referenced via $testbase/B/.git" + } >expect && + + test_cmp expect actual + ) +' + +#rm -rf A B C D base \ No newline at end of file -- 1.7.0.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html