# exec 2>&1 set -x root=`pwd` troot=$root/tests testname="${0##*/}" tmp=$ADTTMP if [ x"$tmp" = x ]; then mkdir -p tests/tmp tmp=tests/tmp/$testname rm -rf $tmp mkdir $tmp fi cd $tmp tmp=`pwd` export DGIT_TEST_DUMMY_DIR=$tmp ln $troot/ssh ssh mkdir $tmp/gnupg cp $troot/gnupg/* $tmp/gnupg chmod go-rw $tmp/gnupg/* export GNUPGHOME=$tmp/gnupg mkdir $tmp/incoming cat <$tmp/dput.cf [test-dummy] method = local incoming = $tmp/incoming run_dinstall = 0 END t-worktree () { rm -rf $p tar xf $troot/worktrees/${p}_$1.tar } t-git-none () { mkdir -p $tmp/git (set -e; cd $tmp/git; tar xf $troot/git-template.tar) } t-has-ancestor () { local ancestor=`git rev-parse $1` local now=`git rev-parse HEAD` local mbase=`git merge-base $ancestor $now` if [ x$mbase != x$ancestor ]; then echo "not ff $ancestor..$now, $mbase != $ancestor" exit 1 fi } t-archive-none () { p=$1 mkdir -p $tmp/aq $tmp/mirror echo sid >$tmp/aq/suite.unstable } t-archive () { t-archive-none $1 v=$2 local dscf=${p}_$2.dsc rm -f $tmp/mirror/${p}_* ln $troot/pkg-srcs/${p}_${2%-*}* $tmp/mirror/ echo "$2 $dscf" >>$tmp/aq/package.sid.${p} rm -rf $tmp/extract mkdir $tmp/extract (set -e; cd $tmp/extract; dpkg-source -x ../mirror/$dscf) } t-dgit () { : '{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{' ${DGIT_TEST-dgit} --dget:-u --dput:--config=$tmp/dput.cf \ -dtest-dummy -D -k39B13D8A "$@" : '}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}' } t-diff-nogit () { diff --exclude=.git -ruN $* } t-cloned-fetched-good () { t-diff-nogit ../extract/$p-${v%-*} . t-clean-on-branch dgit/sid t-refs-same \ refs/heads/dgit/sid \ refs/remotes/dgit/dgit/sid t-refs-notexist dgit/unstable remotes/dgit/dgit/unstable } t-output () { printf "%s\n" "$1" >$tmp/t.want shift "$@" >$tmp/t.got diff $tmp/t.want $tmp/t.got } t-clean-on-branch () { t-output "## $1" git status -b --porcelain } t-git-get-ref () { local ref=$1 git-show-ref -d $1 | perl -ne ' $x = $1 if m#^(\w+) \Q'$1'\E(?:\^\{\})?$#; END { print "$x\n" if length $x; } ' } t-refs-same () { local f=$1 t-git-get-ref $f >$tmp/t.ref1 t-refs-same-more "$@" } 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 done } t-refs-notexist () { for g in $*; do t-git-get-ref $g >$tmp/t.refx diff /dev/null $tmp/t.refx done } t-pushed-good () { t-ref-dsc-dgit t-refs-same-more \ refs/heads/master \ refs/tags/debian/$v \ refs/remotes/dgit/dgit/sid t-refs-notexist \ refs/heads/dgit/unstable \ refs/remotes/dgit/dgit/unstable (set -e; cd $tmp/git/$p.git t-refs-same-more \ refs/dgit/sid \ refs/tags/debian/$v t-refs-notexist \ refs/dgit/unstable ) } t-ref-dsc-dgit () { 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 }