X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Flib;h=78ec9a712153d56b8a349532d6e18fc106cd48e5;hb=4bbb0ea95dcf9be8e26f19424ad3b5269a556783;hp=42e1344ded97e3a0300f5df1ca3950e866b4dd78;hpb=b5cfe0264cba9fd70266c40e1a02b41f0cabe0d4;p=dgit.git diff --git a/tests/lib b/tests/lib index 42e1344d..78ec9a71 100644 --- a/tests/lib +++ b/tests/lib @@ -31,11 +31,17 @@ t-set-intree : ${DGIT_TEST_DEBUG=-D} export DGIT_TEST_DEBUG +: ${DGIT_TEST_DEBPUSH_DEBUG=x} +export DGIT_TEST_DEBPUSH_DEBUG + : ${DGIT_TEST_DISTRO+ ${distro=${DGIT_TEST_DISTRO}}} export GIT_COMMITTER_DATE='1530000000 +0100' export GIT_AUTHOR_DATE='1530000000 +0100' +export LC_CTYPE=C.UTF-8 +unset CDPATH + root=`pwd` troot=$root/tests testname="${DGIT_TEST_TESTNAME-${0##*/}}" @@ -62,7 +68,7 @@ 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 @@ -92,7 +98,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 @@ -342,7 +350,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 @@ -404,6 +412,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 @@ -416,6 +431,7 @@ t-fscks () { t-ok () { : '========================================' + t-check-only-bpd t-fscks t-save-artifacts echo ok. @@ -508,6 +524,14 @@ t-setup-done () { ' $vn "$(eval "printf '%s\n' \"\$$vn\"")" done + perl >&4 -"I$root" -MDebian::Dgit -we ' + foreach my $vn (grep m/^DGIT_TEST_REAL_/, keys %ENV) { + print STDERR "saving-exporting $vn\n"; + printf "export %s=%s\n", $vn, shellquote $ENV{$vn} + or die $!; + } + ' + (set -e; cd $tmp; tar cf $import.tar $savedirs) printf >&4 "\n%s\n" "$importeval" @@ -724,6 +748,7 @@ t-splitbrain-pushed-good--unpack () { ln -s $tmp/incoming/*.orig*.tar* . ||: ln -s $incoming_dsc . ln -s ${incoming_dsc/.dsc/.debian.tar}* . + ln -s ${incoming_dsc/.dsc/.tar}* . ||: dpkg-source "$@" -x *.dsc cd */. git init @@ -752,11 +777,12 @@ t-splitbrain-pushed-good-start () { t-refs-same-start t-ref-same refs/heads/split.p - case "$(t-git-get-ref refs/heads/split.b)" in + local split_b=$(t-git-get-ref refs/heads/split.b) + case "$split_b" in "$t_ref_val") ;; "$(git rev-parse refs/heads/split.p^0)") ;; "$(git rev-parse refs/heads/split.p^1)") ;; - *) fail 'bad b/p' ;; + *) fail "bad b/p (b=$split_b)" ;; esac t-pushed-good-core @@ -770,16 +796,21 @@ t-splitbrain-pushed-good-end-made-dep14 () { cd $tmp/$p } -t-splitbrain-rm-gitignore-patch () { +t-splitbrain-rm-1-patch () { + local patchname=$1 perl -i -pe ' - next unless $_ eq "auto-gitignore\n"; + next unless $_ eq "'"$patchname"'\n"; die if $counter++; chomp; - rename "debian/patches/$_", "../t-auto-gitignore" or die $!; + rename "debian/patches/$_", "../t-'"$patchname"'" or die $!; $_ = ""; ' debian/patches/series } +t-splitbrain-rm-gitignore-patch () { + t-splitbrain-rm-1-patch auto-gitignore +} + t-gbp-pushed-good () { local suite=${1:-sid} t-splitbrain-pushed-good-start @@ -814,18 +845,27 @@ t-gbp-pushed-good () { } t-unapplied-pushed-good () { + local suite=${1:-sid} t-splitbrain-pushed-good-start t-splitbrain-pushed-good--unpack --skip-patches t-splitbrain-pushed-good-end-made-dep14 } t-dpm-pushed-good () { + local suite=${1:-sid} t-splitbrain-pushed-good-start t-splitbrain-pushed-good--unpack t-splitbrain-rm-gitignore-patch t-splitbrain-pushed-good-end-made-dep14 } +t-split-unchanged-pushed-good () { + local suite=${1:-sid} + t-splitbrain-pushed-good-start + t-splitbrain-pushed-good--unpack + t-splitbrain-pushed-good-end-made-dep14 +} + t-commit-build-push-expect-log () { local msg=$1 local mpat=$2 @@ -988,7 +1028,6 @@ t-git-pseudo-merge () { } t-gbp-example-prep-no-ff () { - t-tstunt-parsechangelog t-archive example 1.0-1 t-git-none t-worktree 1.0 @@ -1026,6 +1065,15 @@ 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 @@ -1071,7 +1119,6 @@ t-drs () { 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 - t-git-config dgit-distro.test-dummy.dgit-tag-format new,old,maint cp $troot/gnupg/{dd.gpg,dm.gpg,dm.txt} $tmp/. cp $troot/suites $tmp/. cp $troot/suites $tmp/suites-master @@ -1093,15 +1140,6 @@ t-drs () { ln -sf /bin/true $drs_dispatch/policy-hook } -t-newtag () { - export tagpfx=archive/test-dummy - t-git-config dgit-distro.test-dummy.dgit-tag-format new,maint -} -t-oldtag () { - export tagpfx=test-dummy - t-git-config dgit-distro.test-dummy.dgit-tag-format old -} - t-dsd () { t-drs t-git-config dgit-distro.test-dummy.ssh "$troot/dsd-ssh" @@ -1149,7 +1187,7 @@ t-debpolicy () { t-dsd t-policy dgit-repos-policy-debian - mkdir $tmp/git + mkdir -p $tmp/git t-policy-admin create-db } @@ -1160,6 +1198,46 @@ t-policy-periodic () { : '))))))))))))))))))))))))))))))))))))))))' } +t-tagupl-settings () { + export DGIT_DRS_EMAIL_NOREPLY=noreply@example.org + export DGIT_DRS_SENDMAIL=$troot/tstunt/sendmail + export DGIT_DRS_DGIT=$troot/tstunt/dgit + t-chain-test-somehow + + mkdir ../pretend-salsa + (set -e; cd ../pretend-salsa; git init --bare) + git remote add salsa $tmp/pretend-salsa + # git branch --set-upstream-to complains, so + git config branch.master.remote salsa + git config branch.master.merge refs/heads/master +} + +t-tagupl-run-drs () { + local source=$1 + cd .. + cd tagupl + + DGIT_DRS_ANY_URL=1 \ + DGIT_DRS_MODE="tag2upload $source $tagname" \ + $troot/drs-git-ext + + cd $tmp/$p +} + +t-tagupl-test () { + ${DGIT_DEBPUSH_TEST-git debpush} \ + --distro=test-dummy -u Senatus "$@" + + mkdir ../tagupl + t-tagupl-run-drs $tmp/pretend-salsa + + cd ../pretend-salsa + t-refs-same refs/heads/master + cd ../$p + + t-dgit fetch +} + t-buildproductsdir-config () { bpd=$tmp/bpd t-git-config dgit.default.build-products-dir $bpd @@ -1179,13 +1257,17 @@ t-dependencies () { : "Hopefully installed: $*" } +t-chain-test-somehow () { + export DGIT_TEST_TESTNAME="$testname" + export DGIT_TEST_TMPBASE="$tmpbase" + export ADTTMP=$tmp +} + t-chain-test () { + t-chain-test-somehow local ct=$1 local d=${0%/*} cd $root - export DGIT_TEST_TESTNAME="$testname" - export DGIT_TEST_TMPBASE="$tmpbase" - export ADTTMP=$tmp exec "$d/$ct" }