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