lines: ${BASH_LINENO[*]}
files: ${BASH_SOURCE[*]}
END
+ t-save-artifacts
+
exit 16
}
: ${DGIT_TEST_DISTRO+ ${distro=${DGIT_TEST_DISTRO}}}
-export GIT_COMMITTER_DATE='1440253867 +0100'
-export GIT_AUTHOR_DATE='1440253867 +0100'
+export GIT_COMMITTER_DATE='1515000000 +0100'
+export GIT_AUTHOR_DATE='1515000000 +0100'
root=`pwd`
troot=$root/tests
testname="${DGIT_TEST_TESTNAME-${0##*/}}"
+export DGIT_TEST_TROOT=$troot
+bpd=..
tmp=$ADTTMP
if [ x"$tmp" = x ]; then
+ export DGIT_TEST_BYHAND=1
mkdir -p tests/tmp
tmpbase=$troot/tmp
tmp=tests/tmp/$testname
ln -f $troot/ssh ssh
export DEBCHANGE_VENDOR=dpkg
+unset VISUAL
mkdir -p $tmp/incoming
cat <<END >$tmp/dput.cf
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}
exec >"$outputfile"
if test -d $whichrepo; then
cd $whichrepo
- git show-ref |sort
+ git show-ref |t-sort
fi)
}
(set -e; cd $tmp/git; tar xf $troot/git-template.tar)
}
+t-salsa-add-remote () {
+ local d=$tmp/salsa/$p
+ mkdir -p $d
+ (set -e; cd $d; git init --bare)
+ git remote add ${1-origin} $d
+}
+
t-git-merge-base () {
git merge-base $1 $2 || test $? = 1
}
}
t-git-fsck () {
+ local fsckerrs=$(git rev-parse --git-dir)/dgit-test-fsck.errs
+
set +e
LC_MESSAGES=C git fsck --no-dangling --strict 2>&1 \
- | tee dgit-test-fsck.errs
+ | tee $fsckerrs
ps="${PIPESTATUS[*]}"
set -e
pats+=(-e 'notice: No default references')
set +e
- grep -v "${pats[@]}" dgit-test-fsck.errs
+ grep -v "${pats[@]}" $fsckerrs
rc=$?
set -e
case $rc in
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
}
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{'
$dgit --dgit=$dgit --dget:-u --dput:--config=$tmp/dput.cf \
${dgit_config_debian_alias-"--config-lookup-explode=dgit-distro.debian.alias-canon"} \
+ ${DGIT_GITDEBREBASE_TEST+--git-debrebase=}${DGIT_GITDEBREBASE_TEST} \
${distro+${distro:+-d}}${distro--dtest-dummy} \
$DGIT_TEST_OPTS $DGIT_TEST_DEBUG \
- -k39B13D8A $t_dgit_xopts "$@"
+ -kBCD22CD83243B79D3DFAC33EA3DBCBC039B13D8A $t_dgit_xopts "$@"
: '}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
'
}
local savedirs=$2
local importeval=$3
- local import=IMPORT.${0##*/}
+ local import=IMPORT.${DGIT_TEST_TESTNAME-${0##*/}}
exec 4>$tmp/$import.new
local vn
for vn in $savevars; do
- perl >&4 -I. -MDebian::Dgit -e '
+ perl >&4 -"I$root" -MDebian::Dgit -e '
printf "%s=%s\n", $ARGV[0], shellquote $ARGV[1]
' $vn "$(eval "printf '%s\n' \"\$$vn\"")"
done
if [ x$mbase = x$master ]; then fail "failed to ff master"; fi
}
+t-push-was-source-only () {
+ local f
+ t-files-notexist $tmp/incoming/${p}_${v}_*.deb \
+ $tmp/incoming/${p}_${v}_*.udeb
+ # we permit _source.buildinfo files; see test_changes_source_only()
+ for f in $tmp/incoming/${p}_${v}_*.buildinfo; do
+ if [ -e $f ]; then
+ case "$f" in
+ *_source.buildinfo) ;;
+ *) fail "non-source-only file $f exists!" ;;
+ esac
+ fi
+ done
+}
+
+t-push-included () {
+ for f in $@; do
+ stat $tmp/incoming/$f
+ done
+}
+
t-pushed-good () {
local branch=$1
local suite=${2:-sid}
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
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
+}
+
t-git-config () {
git config --global "$@"
}
t-drs () {
- export DGIT_TEST_TROOT=$troot
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-buildproductsdir-config () {
+ bpd=$tmp/bpd
+ t-git-config dgit.default.build-products-dir $bpd
+ mkdir -p $bpd
+ cat <<END >>$tmp/.gbp.conf
+[buildpackage]
+export-dir = $bpd
+END
+}
+
t-restrict () {
local restriction=$1
(cd $root; t-restriction-$restriction >&2)
t-git-config dgit.default.old-dsc-distro test-dummy
-case "$0" in
-*/gnupg) ;;
-*) t-setup-import gnupg ;;
-esac
+for import in ${autoimport-gnupg}; do
+ case "$0" in
+ */$import) ;;
+ *)
+ t-setup-import $import
+ ;;
+ esac
+done