X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2Flib;h=e2496b43a0355d45f67fc345622df66705c8de33;hp=4ef275ca1641f62804675c91ab1cf516b66d5692;hb=9fe91f98a08e948bf3e282cd17f7c2637669a216;hpb=61f92b326da0efea1cf4d3c263ef0e0b7cacfc25 diff --git a/tests/lib b/tests/lib index 4ef275ca..e2496b43 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 } @@ -38,6 +40,7 @@ root=`pwd` troot=$root/tests testname="${DGIT_TEST_TESTNAME-${0##*/}}" export DGIT_TEST_TROOT=$troot +bpd=.. tmp=$ADTTMP if [ x"$tmp" = x ]; then @@ -62,6 +65,7 @@ env -0 >$tmp/.save-env ln -f $troot/ssh ssh export DEBCHANGE_VENDOR=dpkg +unset VISUAL mkdir -p $tmp/incoming cat <$tmp/dput.cf @@ -71,6 +75,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} @@ -409,9 +416,18 @@ t-fscks () { t-ok () { : '========================================' 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 +675,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 +708,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,6 +1025,18 @@ t-make-badcommit () { t-expect-fsck-fail $badcommit } +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} @@ -1006,6 +1046,16 @@ t-commit () { 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 "$@" git commit -m "dch $*" debian/changelog @@ -1108,6 +1158,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)