chiark / gitweb /
test suite: Save much stuff to $AUTOPKGTEST_ARTIFACTS.
[dgit.git] / tests / lib
index e06ae224b56ce409032f93c765e241b63bfe8ed7..87dd37617e7f6769a8eb42657e745ecf7af9b177 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,31 @@ 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 -a "$tmp"/. "$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
 }