+
+t-refs-notexist () {
+ local val
+ for g in $*; do
+ val=`t-git-get-ref $g >$tmp/t.refx`
+ if [ "x$val" != x ]; then
+ fail "ref $g unexpectedly exists ($val)"
+ fi
+ done
+}
+
+t-v-tag () {
+ echo refs/tags/debian/${v//\~/_}
+}
+
+t-pushed-good () {
+ local branch=$1
+ t-ref-dsc-dgit
+ t-refs-same \
+ refs/heads/$branch \
+ `t-v-tag` \
+ 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 \
+ refs/dgit/sid \
+ `t-v-tag`
+ t-refs-notexist \
+ refs/dgit/unstable
+ )
+ git verify-tag `t-v-tag`
+}
+
+t-822-field () {
+ local file=$1
+ local field=$2
+ perl -e '
+ use Dpkg::Control::Hash;
+ my $h = new Dpkg::Control::Hash allow_pgp=>1;
+ $h->parse(\*STDIN,"'"$file"'");
+ my $val = $h->{"'$field'"},"\n";
+ die "'"$file $field"'" unless defined $val;
+ print $val,"\n";
+ ' <$file
+}
+
+t-ref-dsc-dgit () {
+ local dsc=${p}_${v}.dsc
+ local val=`t-822-field $tmp/incoming/$dsc Dgit`
+ perl -e '$_=shift @ARGV; die "$dsc Dgit $_ ?" unless m/^\w+\b/;' "$val"
+ t-ref-same-val $dsc "$val"
+}
+
+t-apply-diff () {
+ local v1=$1
+ local v2=$2
+ (cd $troot/pkg-srcs; debdiff ${p}_${v1}.dsc ${p}_${v2}.dsc) \
+ | patch -p1 -u
+}
+
+t-git-config () {
+ git config --global "$@"
+}
+
+t-drs () {
+ export DGIT_TEST_TROOT=$troot
+ export DGIT_TEST_TMP=$tmp
+ t-git-config dgit-distro.test-dummy.git-url "ext::$troot/drs-git-ext %S "
+ t-git-config dgit-distro.test-dummy.git-check true
+ t-git-config dgit-distro.test-dummy.git-create true
+ cp $root/tests/gnupg/{dd.gpg,dm.gpg,dm.txt} $tmp/.
+ cp $root/tests/suites $tmp/.
+}
+
+t-drs-test () {
+ t-drs
+ cd $root
+ export DGIT_TEST_TESTNAME="$testname"
+ export ADTTMP=$tmp
+ exec "${0///drs-//}" "$@"
+}