X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=tests%2Flib;h=a4f307f8a70c3770f09536a37225b543c1e07bbe;hp=4425bf6efc4834243aba3af4bb8c13e99eb1eaa1;hb=df4419b77d5e231b7861a03542a22e36b0cda065;hpb=33e55bfe2b24a2c67b8df06d980ab08fa078e99e diff --git a/tests/lib b/tests/lib index 4425bf6e..a4f307f8 100644 --- a/tests/lib +++ b/tests/lib @@ -33,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 @@ -61,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 @@ -73,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} @@ -336,7 +342,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 @@ -398,6 +404,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 @@ -410,6 +423,7 @@ t-fscks () { t-ok () { : '========================================' + t-check-only-bpd t-fscks t-save-artifacts echo ok. @@ -419,22 +433,8 @@ t-save-artifacts () { artifacts="$AUTOPKGTEST_ARTIFACTS" if [ x"$artifacts" = x ]; then return; fi if [ x"tmp" = x ]; then return; fi - : '(((((((((( t-save-artifacts ))))))))))' - cp -dR --preserve=links,timestamps "$tmp"/. "$artifacts"/. - chmod -R a+r -- "$artifacts"/. - cd "$artifacts"/. - find . \( -name \*.tar -o -name \*.sample \) -print0 | \ - xargs -0r rm -v - find . \( -name .git \ - -o -path ./salsa/\* \ - -o -path ./git/\*.git \ - \) -type d \ - \! -path '*/.git/*/.git' -exec sh -xec ' - cd "$1" - "$2"/playtree-save-refs - git gc --prune=all - ' x '{}' "$troot" \; - : ')))))))))) t-save-artifacts ))))))))))' + GZIP=-1v tar -C "$tmp" -zc -f "$artifacts/${0##*/}.tar.gz" \ + --exclude=\*.tar . } t-rm-dput-dropping () { @@ -684,6 +684,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} @@ -711,6 +717,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 @@ -1022,10 +1034,32 @@ 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 )) @@ -1042,7 +1076,7 @@ t-dch-commit-r () { } t-dch-commit () { - faketime @"${GIT_AUTHOR_DATE% *}" dch "$@" + $troot/tstunt/debchange "$@" git commit -m "dch $*" debian/changelog } @@ -1143,6 +1177,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)