chiark / gitweb /
Test suite: finalise replay prevention
[dgit.git] / tests / lib
index 3c31a29cb11ff689128bb791d563002cf48f9bd3..836ce2e2d23967140c30aaee95bcadba9b40cd3f 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -24,14 +24,14 @@ fi
 cd $tmp
 
 tmp=`pwd`
-export HOME=$tmp
-export DGIT_TEST_DUMMY_DIR=$tmp
+
+t-set-using-tmp
+
 ln -f $troot/ssh ssh
 
 mkdir -p $tmp/gnupg
 cp $troot/gnupg/* $tmp/gnupg
 chmod go-rw $tmp/gnupg/*
-export GNUPGHOME=$tmp/gnupg
 
 mkdir -p $tmp/incoming
 cat <<END >$tmp/dput.cf
@@ -323,6 +323,35 @@ t-822-field () {
        ' <$file
 }
 
+t-stunt-envvar () {
+       local var=$1
+       local tstunt=$2
+       eval '
+               case "'$var'" in
+               "$tstunt:"*)    ;;
+               *":$tstunt:"*)  ;;
+               *)              '$var'="$tstunt:$'$var'" ;;
+               esac
+       '
+}
+
+t-tstunt () {
+       local tstunt=$tmp/tstunt
+       t-stunt-envvar PATH $tstunt
+       t-stunt-envvar PERLLIB $tstunt
+       local f
+       for f in "$@"; do
+               f="./$f"
+               local d="$tstunt/${f%/*}"
+               mkdir -p $d
+               ln -sf "$troot/tstunt/$f" "$d"/.
+       done
+}
+
+t-tstunt-parsechangelog () {
+       t-tstunt dpkg-parsechangelog Dpkg/Changelog/Parse.pm
+}
+
 t-ref-dsc-dgit () {
        local dsc=${p}_${v}.dsc
        local val=`t-822-field $tmp/incoming/$dsc Dgit`
@@ -343,7 +372,6 @@ t-git-config () {
 
 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