diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-02-16 11:49:05 +0000 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-06-16 12:25:49 +0100 |
commit | 672a73e53175a1b382307426912b03bbca8ce19c (patch) | |
tree | e988baf1587f4d3db8cee202f830d7b5beb91e3b /tests | |
parent | 45ace76a1b71342da5919dc0321e7f0f142b2615 (diff) |
git-debrebase: test: check branch structure
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib-gdr | 69 | ||||
-rwxr-xr-x | tests/tests/gdr-edits | 2 |
2 files changed, 70 insertions, 1 deletions
diff --git a/tests/lib-gdr b/tests/lib-gdr index 4e08ff7..fb58bf9 100644 --- a/tests/lib-gdr +++ b/tests/lib-gdr @@ -11,3 +11,72 @@ t-git-debrebase () { : '}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} ' } + +t-gdr-branch-structure () { + local state=$1 + # state should be one of + # laundered + # stitched + # patches + + case $state in + laundered) etype=Upstream ;; + stitched) etype=Pseudomerge ;; + patches) etype=XXX-TODO ;; + esac + + t-git-debrebase analyse >../anal.check + expect=`git rev-parse HEAD` + exec <../anal.check + local cid ctype info nparents + while read cid ctype info; do + : ===== $cid $ctype $info ===== + test $cid = $expect + local cetype=$etype + if [ "x$ctype" = "x$etype" ]; then cetype=SAME; fi + local parents="`git log -n1 --pretty=format:%P $cid`" + expect="$parents" + enparents=1 + : "$ctype/$cetype" "$parents" + case "$ctype/$cetype" in + Pseudomerge/SAME) + expect=${info#Contributor=} + expect=${expect%% *} + enparents=2 + git diff --quiet $expect..$cid + etype=Upstream + ;; + Packaging/SAME|\ + Packaging/Upstream) + git diff --quiet $expect..$cid -- ':.' ':!debian' + git diff --quiet $expect..$cid -- ':debian/patches' + etype=Packaging + ;; + Changelog/Packaging|\ + Changelog/Upstream) + git diff --quiet $expect..$cid -- \ + ':.' ':!debian/changelog' + etype=Packaging + ;; + Upstream/SAME) + git diff --quiet $expect..$cid -- ':debian' + ;; + BreakwaterUpstreamMerge/Upstream| \ + BreakwaterUpstreamMerge/Packaging) + break + ;; + *) + fail "etype=$etype ctype=$ctype cetype=$cetype $cid" + ;; + esac + + local cnparents=`printf "%s" "$parents" | wc -w` + test $cnparents = $enparents + + case "$parents" in + *"$expect"*) ;; + *) fail 'unexpected parent' ;; + esac + + done +} diff --git a/tests/tests/gdr-edits b/tests/tests/gdr-edits index ddb354d..70735e9 100755 --- a/tests/tests/gdr-edits +++ b/tests/tests/gdr-edits @@ -30,7 +30,7 @@ t-git-debrebase git diff t.before -- ':.' ':!debian/patches' -: todo 'check that the branch has the expected structure' +t-gdr-branch-structure laundered t-git-debrebase stitch --prose=wombat |