chiark / gitweb /
test suite: chmod a+r $AUTOPKGTEST explicitly.
[dgit.git] / tests / lib
index 4ef275ca1641f62804675c91ab1cf516b66d5692..4425bf6efc4834243aba3af4bb8c13e99eb1eaa1 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -17,6 +17,8 @@ funcs: ${FUNCNAME[*]}
 lines: ${BASH_LINENO[*]}
 files: ${BASH_SOURCE[*]}
 END
+       t-save-artifacts
+
        exit 16
 }
 
@@ -409,9 +411,32 @@ 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
+       : '(((((((((( 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 ))))))))))'
+}
+
 t-rm-dput-dropping () {
        rm -f $tmp/${p}_${v}_*.upload
 }
@@ -1006,6 +1031,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