[PATCHv2 2/2] tests for git alternate command
Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
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