exec 2>&1
set -x
+set -o pipefail
. tests/lib-core
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
t-expect-fail () {
local mpat="$1"; shift
+
+ local grepper=fgrep
+ case "$mpat" in
+ [A-Z]:*)
+ case "$mpat" in
+ E:*) grepper=egrep ;;
+ F:*) grepper=fgrep ;;
+ *) fail "bad mpat prefix in $mpat";;
+ esac
+ mpat=${mpat#[A-Z]:}
+ ;;
+ esac
+
+ set +o pipefail
LC_MESSAGES=C "$@" 2>&1 | tee $tmp/t.output
- test ${PIPESTATUS[0]} != 0
- egrep "$mpat" $tmp/t.output ||false
+ local gotstatus=${PIPESTATUS[0]}
+ set -o pipefail
+ test $gotstatus != 0
+ $grepper -e "$mpat" $tmp/t.output ||false
+}
+
+t-reporefs () {
+ local whichoutput=$1; shift
+ local outputfile="$tmp/show-refs.$whichoutput"
+ (set -e
+ exec >"$outputfile"
+ if test -d $tmp/git/$p.git; then
+ cd $tmp/git/$p.git
+ git show-ref |sort
+ fi)
}
t-untar () {
}
t-archive-process-incoming () {
- mv incoming/${p}_${v}[._]* mirror/pool/main/
- t-archive-query
+ local suite=$1
+ mv $tmp/incoming/${p}_${v}[._]* $tmp/mirror/pool/main/
+ t-archive-query "$suite"
}
t-archive-query () {
+ local suite=${1-sid}
local dscf=main/${p}_${v}.dsc
- local sha=`sha256sum <mirror/pool/$dscf`
- echo "${v} ${sha% -} $dscf" >>$tmp/aq/package.sid.${p}
- t-archive-updated sid $p
+ local sha=`sha256sum <$tmp/mirror/pool/$dscf`
+ echo "${v} ${sha% -} $dscf" >>$tmp/aq/package.$suite.${p}
+ t-archive-updated $suite $p
}
t-archive () {
esac
}
+t-rm-dput-dropping () {
+ rm -f $tmp/${p}_${v}_*.upload
+}
+
t-dgit () {
local dgit=${DGIT_TEST-dgit}
: '
t-refs-same \
refs/heads/dgit/sid \
refs/remotes/dgit/dgit/sid
- t-refs-notexist dgit/unstable remotes/dgit/dgit/unstable
+ t-refs-notexist refs/dgit/unstable refs/remotes/dgit/dgit/unstable
}
t-output () {
t-git-get-ref () {
local ref=$1
- git show-ref -d $1 | perl -ne '
+ case "$ref" in
+ refs/*) ;;
+ *) fail "t-git-get-ref bad $ref" ;;
+ esac
+ (git show-ref -d $1 || test $? = 1) | perl -ne '
$x = $1 if m#^(\w+) \Q'$1'\E(?:\^\{\})?$#;
END { print "$x\n" if length $x; }
'
' <$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`
t-apply-diff () {
local v1=$1
local v2=$2
- (cd $troot/pkg-srcs; debdiff ${p}_${v1}.dsc ${p}_${v2}.dsc) \
- | patch -p1 -u
+ (cd $troot/pkg-srcs;
+ debdiff ${p}_${v1}.dsc ${p}_${v2}.dsc || test $? = 1) \
+ | patch -p1 -u
+}
+
+t-commit () {
+ local msg=$1
+ v=1.$revision
+ dch -v$v --distribution unstable "$1"
+ git add debian/changelog
+ debcommit
+ revision=$(( $revision + 1 ))
}
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
${DGIT_INFRA_PFX}dgit-repos-admin-debian --repos $tmp/git "$@"
}
+t-policy () {
+ local policyhook=$1
+ ln -sf ${DGIT_INFRA_PFX}$policyhook \
+ $drs_dispatch/policy-hook
+}
+
t-debpolicy () {
t-dsd
-
- ln -sf ${DGIT_INFRA_PFX}dgit-repos-policy-debian \
- $drs_dispatch/policy-hook
+ t-policy dgit-repos-policy-debian
mkdir $tmp/git
t-policy-admin create-db