diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-07-04 21:36:17 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2015-07-04 21:40:47 +0100 |
commit | c963c8da4cb34cc4ddddaf2b936dbfef10f74e58 (patch) | |
tree | 0f7d68e56c49a6fb7b1b1e243681d412e7a4824b | |
parent | 2522d3ba9ca4b00bffc107342f471fabac0a04b9 (diff) |
Test suite: Check that master is not updated non-ff
-rwxr-xr-x | tests/tests/drs-push-masterupdate | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/tests/drs-push-masterupdate b/tests/tests/drs-push-masterupdate new file mode 100755 index 0000000..cc77b77 --- /dev/null +++ b/tests/tests/drs-push-masterupdate @@ -0,0 +1,50 @@ +#!/bin/bash +set -e +. tests/lib + +t-drs +t-tstunt-parsechangelog + +t-prep-newpackage example 1.0 + +cd $p + +git tag common-ancestor + +revision=1 +t-dgit build +t-dgit push --new + +push_and_check () { + git push $tmp/git/$p.git $1 + + oldmaster=`cd $tmp/git/$p.git && t-git-get-ref refs/heads/master` + + t-refs-same-start + git checkout dgit/sid + t-commit 'Empty update' + t-dgit build + t-dgit push --new + + t-pushed-good dgit/sid +} + +t-check-master-undisturbed () { + local master=`t-git-get-ref refs/heads/master` + if [ x$master != x$oldmaster ]; then fail "bad update to master"; fi +} + +t_check_pushed_master=t-check-master-undisturbed + +git checkout -b divergent common-ancestor +git commit --allow-empty -m 'Has common ancestor' +git push $tmp/git/$p.git HEAD:master + +push_and_check HEAD:master + +git checkout --orphan newroot +git commit --allow-empty -m 'Has no common ancestor' + +push_and_check +HEAD:master + +echo done. |