X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2Flib;h=a050522890c49fe8bed8076c7584a7ac2dfcc314;hp=bad47c90de92c9549a300b8e2aa23e04cf91a476;hb=2a2b0931f9b29bf372136451d317eb81649424e2;hpb=a300724a321a26770ccf701e0a638c7bfa93fa5c diff --git a/tests/lib b/tests/lib index bad47c90..a0505228 100644 --- a/tests/lib +++ b/tests/lib @@ -17,6 +17,8 @@ funcs: ${FUNCNAME[*]} lines: ${BASH_LINENO[*]} files: ${BASH_SOURCE[*]} END + t-save-artifacts + exit 16 } @@ -31,13 +33,14 @@ export DGIT_TEST_DEBUG : ${DGIT_TEST_DISTRO+ ${distro=${DGIT_TEST_DISTRO}}} -export GIT_COMMITTER_DATE='1515000000 +0100' -export GIT_AUTHOR_DATE='1515000000 +0100' +export GIT_COMMITTER_DATE='1530000000 +0100' +export GIT_AUTHOR_DATE='1530000000 +0100' root=`pwd` troot=$root/tests testname="${DGIT_TEST_TESTNAME-${0##*/}}" export DGIT_TEST_TROOT=$troot +bpd=.. tmp=$ADTTMP if [ x"$tmp" = x ]; then @@ -59,9 +62,11 @@ t-set-using-tmp test -f $tmp/.save-env || \ env -0 >$tmp/.save-env -ln -f $troot/ssh ssh +ln -sf $troot/ssh ssh export DEBCHANGE_VENDOR=dpkg +unset VISUAL +unset GIT_EDITOR mkdir -p $tmp/incoming cat <$tmp/dput.cf @@ -71,6 +76,9 @@ incoming = $tmp/incoming run_dinstall = 0 END +schroot=${DGIT_SCHROOT_CHROOT:-build} +# Pretty much any Debian sid snapshot schroot will do. + : ${t_archive_method:=aq} : ${tagpfx:=archive/test-dummy} : ${suitespecs:=sid:unstable} @@ -84,7 +92,9 @@ t-expect-fail () { local mpat="$1"; shift set +o pipefail - LC_MESSAGES=C "$@" 2>&1 | tee $tmp/t.output + LC_MESSAGES=${expect_fail_lcmessages-C} \ + LANGUAGE=${expect_fail_lcmessages-C} \ + "$@" 2>&1 | tee $tmp/t.output local ps="${PIPESTATUS[*]}" set -o pipefail @@ -153,7 +163,7 @@ t-reporefs () { exec >"$outputfile" if test -d $whichrepo; then cd $whichrepo - git show-ref |sort + git show-ref |t-sort fi) } @@ -334,7 +344,7 @@ t-archive () { v=$2 local dscf=${p}_$2.dsc rm -f $tmp/mirror/pool/main/${p}_* - ln $troot/pkg-srcs/${p}_${2%-*}* $tmp/mirror/pool/main/ + ln -s $troot/pkg-srcs/${p}_${2%-*}* $tmp/mirror/pool/main/ t-archive-query $suite rm -rf $tmp/extract mkdir $tmp/extract @@ -396,6 +406,13 @@ t-git-fsck () { esac } +t-check-only-bpd () { + if [ "$bpd" = .. ]; then return; fi + t-files-notexist \ + $tmp/*.{deb,changes,dsc,buildinfo} \ + $tmp/*.{tar,diff}.* +} + t-fscks () { ( shopt -s nullglob @@ -408,10 +425,20 @@ t-fscks () { t-ok () { : '========================================' + t-check-only-bpd t-fscks + t-save-artifacts echo ok. } +t-save-artifacts () { + artifacts="$AUTOPKGTEST_ARTIFACTS" + if [ x"$artifacts" = x ]; then return; fi + if [ x"tmp" = x ]; then return; fi + GZIP=-1v tar -C "$tmp" -zc -f "$artifacts/${0##*/}.tar.gz" \ + --exclude=\*.tar . +} + t-rm-dput-dropping () { rm -f $tmp/${p}_${v}_*.upload } @@ -659,6 +686,12 @@ t-push-was-source-only () { done } +t-push-included () { + for f in $@; do + stat $tmp/incoming/$f + done +} + t-pushed-good () { local branch=$1 local suite=${2:-sid} @@ -686,6 +719,12 @@ t-pushed-good-core () { git verify-tag `t-v-tag` } +t-pushed-good-check-changes () { + changes_filename="$tmp/incoming/${p}_${v}_*.changes" + grep -E "^Distribution: $suite" $changes_filename + grep -E "^Version: $v" $changes_filename +} + t-splitbrain-pushed-good--unpack () { cd $tmp rm -rf t-unpack @@ -997,17 +1036,49 @@ t-make-badcommit () { t-expect-fsck-fail $badcommit } +t-make-orig () { + # leaves ust set to filename of orig tarball + local p=$1 + local v=$2 + local tag=${3-v$2} + ust=${p}_${v}.orig.tar.gz + GZIP=-1 git archive -o $bpd/$ust --prefix=${p}-${v}/ $tag +} + +t-merge-conflicted-stripping-conflict-markers () { + local otherbranch=$1 + local file=$2 + + t-expect-fail F:"Merge conflict in $file" \ + git merge $otherbranch + + perl -i~ -ne 'print unless m{^(?:\<\<\<|\>\>\>|===)}' "$file" + git add "$file" + git commit --no-edit +} + t-commit () { local msg=$1 v=${2:-${majorv:-1}.$revision} - dch --force-distribution -v$v --distribution ${3:-unstable} "$1" + $troot/tstunt/debchange \ + --force-distribution -v$v --distribution ${3:-unstable} "$1" git add debian/changelog debcommit revision=$(( ${revision-0} + 1 )) } +t-dch-r-rune () { + local cmd="$1"; shift + local suite=${1-unstable} + $cmd -r -D "$suite" '' +} + +t-dch-commit-r () { + t-dch-r-rune t-dch-commit "$@" +} + t-dch-commit () { - faketime @"${GIT_AUTHOR_DATE% *}" dch "$@" + $troot/tstunt/debchange "$@" git commit -m "dch $*" debian/changelog } @@ -1108,6 +1179,16 @@ t-policy-periodic () { : '))))))))))))))))))))))))))))))))))))))))' } +t-buildproductsdir-config () { + bpd=$tmp/bpd + t-git-config dgit.default.build-products-dir $bpd + mkdir -p $bpd + cat <>$tmp/.gbp.conf +[buildpackage] +export-dir = $bpd +END +} + t-restrict () { local restriction=$1 (cd $root; t-restriction-$restriction >&2)