From d198bbd72d591b6deba779a8d24cf9bc9ae80894 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 24 Nov 2013 15:30:50 +0000 Subject: autopkgtests: reorganise t-refs-same et al. --- tests/lib | 55 ++++++++++++++++++++++++++++++++++----------- tests/tests/clone-nogit | 3 +++ tests/tests/push-newpackage | 3 +++ tests/tests/push-nextdgit | 3 +++ 4 files changed, 51 insertions(+), 13 deletions(-) mode change 100644 => 100755 tests/tests/push-nextdgit diff --git a/tests/lib b/tests/lib index b6bf810..1373020 100644 --- a/tests/lib +++ b/tests/lib @@ -32,6 +32,11 @@ incoming = $tmp/incoming run_dinstall = 0 END +fail () { + echo >&2 "failed: $*" + exit 1 +} + t-worktree () { rm -rf $p tar xf $troot/worktrees/${p}_$1.tar @@ -54,8 +59,7 @@ t-has-ancestor () { local ancestor=`git rev-parse $1^{}` local mbase=`git merge-base $ancestor $now` if [ x$mbase != x$ancestor ]; then - echo "not ff $ancestor..$now, $mbase != $ancestor" - exit 1 + fail "not ff $ancestor..$now, $mbase != $ancestor" fi } @@ -91,7 +95,8 @@ t-diff-nogit () { t-cloned-fetched-good () { t-diff-nogit ../extract/$p-${v%-*} . t-clean-on-branch dgit/sid - t-refs-same \ + t-refs-same-start + t-refs-same-more \ refs/heads/dgit/sid \ refs/remotes/dgit/dgit/sid t-refs-notexist dgit/unstable remotes/dgit/dgit/unstable @@ -116,24 +121,46 @@ t-git-get-ref () { ' } -t-refs-same () { - local f=$1 - t-git-get-ref $f >$tmp/t.ref1 - t-refs-same-more "$@" +t-ref-same () { + local name="$1" + local val=`t-git-get-ref $name` + t-ref-same-val "$name" $val +} + +t-ref-head () { + local val=`git rev-parse HEAD` + t-ref-same-val HEAD $val +} + +t-ref-same-val () { + local name="$1" + local val=$2 + case "$t_ref_val" in + '') ;; + "$val") ;; + *) fail "ref varies: $name: $val != $t_ref_val" ;; + esac + t_ref_val="$val" +} + +t-refs-same-start () { + t_ref_val='' } t-refs-same-more () { local g for g in $*; do - t-git-get-ref $g >$tmp/t.refn - diff $tmp/t.ref1 $tmp/t.refn + t-ref-same $g done } t-refs-notexist () { + local val for g in $*; do - t-git-get-ref $g >$tmp/t.refx - diff /dev/null $tmp/t.refx + val=`t-git-get-ref $g >$tmp/t.refx` + if [ "x$val" != x ]; then + fail "ref $g unexpectedly exists ($val)" + fi done } @@ -162,14 +189,16 @@ t-pushed-good () { } t-ref-dsc-dgit () { - perl -e ' + local dsc=${p}_${v}.dsc + local val=`perl -e ' use Dpkg::Control::Hash; my $h = new Dpkg::Control::Hash allow_pgp=>1; $h->parse(\*STDIN,"dsc"); my $ref = $h->{"Dgit"},"\n"; die unless $ref =~ m/^\w+\b/; print $ref,"\n"; - ' <$tmp/incoming/${p}_${v}.dsc >$tmp/t.ref1 + ' <$tmp/incoming/$dsc` + t-ref-same-val $dsc "$val" } t-apply-diff () { diff --git a/tests/tests/clone-nogit b/tests/tests/clone-nogit index 7d33b5f..477eb55 100755 --- a/tests/tests/clone-nogit +++ b/tests/tests/clone-nogit @@ -14,6 +14,9 @@ v=3-2~dummy1 t-apply-diff 3-1 $v debcommit -a +t-refs-same-start +t-ref-head + t-dgit --dpkg-buildpackage:-d build t-dgit push diff --git a/tests/tests/push-newpackage b/tests/tests/push-newpackage index e7eb821..eea5685 100755 --- a/tests/tests/push-newpackage +++ b/tests/tests/push-newpackage @@ -10,6 +10,9 @@ cd $p git branch -m dgit/sid master git remote rm dgit +t-refs-same-start +t-ref-head + LANG=C t-dgit push 2>&1 \ | tee /dev/stderr \ | grep 'package appears to be new in this suite' >/dev/null diff --git a/tests/tests/push-nextdgit b/tests/tests/push-nextdgit old mode 100644 new mode 100755 index 2f74407..8d4a36f --- a/tests/tests/push-nextdgit +++ b/tests/tests/push-nextdgit @@ -14,6 +14,9 @@ v=3-2~dummy1 t-apply-diff 3-1 $v debcommit -a +t-refs-same-start +t-ref-head + t-dgit --dpkg-buildpackage:-d build t-dgit push -- cgit v1.2.3