aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSitaram Chamarty <sitaram@atc.tcs.com>2012-01-16 09:39:04 +0530
committerSitaram Chamarty <sitaram@atc.tcs.com>2012-01-16 10:33:04 +0530
commit2762f7abfdd7206fb6fc393b03f69baa7dd42ee3 (patch)
treefd0d9a1baa975ff4243538058f592bba38427cc8
parentmerge-check feature; first cut (diff)
downloadgitolite-gentoo-2762f7abfdd7206fb6fc393b03f69baa7dd42ee3.tar.gz
gitolite-gentoo-2762f7abfdd7206fb6fc393b03f69baa7dd42ee3.tar.bz2
gitolite-gentoo-2762f7abfdd7206fb6fc393b03f69baa7dd42ee3.zip
merge-check: test script (first test using 'tsh', yaaay!)
-rw-r--r--t/t12-merge-check76
-rwxr-xr-xt/test-driver.sh7
2 files changed, 78 insertions, 5 deletions
diff --git a/t/t12-merge-check b/t/t12-merge-check
new file mode 100644
index 0000000..87fceff
--- /dev/null
+++ b/t/t12-merge-check
@@ -0,0 +1,76 @@
+# vim: syn=sh:
+tsh pwd || die '## tsh not installed?'
+
+for wr in 0 1
+do
+ for bc in 0 1
+ do
+ cd $TESTDIR
+ $TESTDIR/rollback || die "rollback failed"
+ editrc GL_WILDREPOS $wr
+ editrc GL_BIG_CONFIG $bc
+
+ # ----------
+
+ name "INTERNAL"
+ echo "
+ repo foo
+ RW+M = u1
+ RW+ = u2
+ RWM .= u3
+ RW = u4
+ " | ugc
+
+ cd ~/td
+
+ name "setup a merged push"
+
+ tsh "ls -al foo; !ok; /cannot access foo: No such file or directory/
+ clone u1:foo; ok; /Cloning into/; /You appear to have cloned an empty/"
+
+ cd foo
+
+ tsh "ls -Al; ok; /\.git/
+ test-commit aa; ok; /1 files changed, 1 insertions/
+ tag start; ok
+ push-om; ok; /new branch.*master.-..master/
+ /create.delete ignored.*merge-check/
+ checkout -b new; ok; /Switched to a new branch 'new'/
+ test-commit bb cc; ok
+ checkout master; ok; /Switched to branch 'master'/
+ test-commit dd ee; ok
+ git merge new; ok; /Merge made.*recursive/
+ test-commit ff; ok
+ tag end; ok"
+
+ name "push by u4 should fail"
+ tsh "push u4:foo master
+ /WM refs/heads/master foo u4 DENIED by fallthru/
+ /To u4:foo/
+ /remote rejected.*hook declined/
+ /failed to push some refs/"
+
+ name "push by u3 should succeed"
+ tsh "push u3:foo master; ok; /To u3:foo/; /master.-..master/"
+
+ name "rewind by u3 should fail"
+ tsh "reset-h start; ok; /HEAD is now at .* aa /
+ push u3:foo +master; !ok; /rejected.*hook declined/; /failed to push some refs/"
+
+ name "rewind by u2 should succeed"
+ tsh "push u2:foo +master; ok; /To u2:foo/; /forced update/"
+
+ name "push by u2 should fail"
+ tsh "reset-h end; ok; /HEAD is now at .* ff /
+ push u2:foo master
+ /WM refs/heads/master foo u2 DENIED by fallthru/
+ /To u2:foo/
+ /remote rejected.*hook declined/
+ /failed to push some refs/"
+
+ name "push by u1 should succeed"
+ tsh "push u1:foo master; ok; /master.-..master/"
+
+ name INTERNAL
+ done
+done
diff --git a/t/test-driver.sh b/t/test-driver.sh
index ca71a4e..5accdff 100755
--- a/t/test-driver.sh
+++ b/t/test-driver.sh
@@ -146,10 +146,6 @@ notexpect() {
fi
}
-print_summary() {
- echo 1..$testnum
-}
-
expect_push_ok() {
expect "$1"
notexpect "DENIED"
@@ -165,4 +161,5 @@ do
cd $TESTDIR
done
-print_summary
+# this keeps changing as we add tests
+echo 1..3157