chiark / gitweb /
tests/lib: break out t-untar and use it in t-worktree
[dgit.git] / tests / lib
index 7c82081a58ebcc7ea3633c06266bce66561c0d9f..2dffdacee0f614fa22024fa3c6e515bc253aa22d 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -39,16 +39,27 @@ fail () {
        exit 1
 }
 
+t-untar () {
+       local tarfile=$1.tar
+       local edittree=$1.edit
+       if test -d "$edittree"; then
+               cp -al "$edittree"/* .
+       else
+               tar xf "$tarfile"
+       fi
+}
+
 t-worktree () {
        rm -rf $p
-       tar xf $troot/worktrees/${p}_$1.tar
+       t-untar $troot/worktrees/${p}_$1
 }
 
 t-git () {
        p=$1
        v=$2
        mkdir -p $tmp/git
-       (set -e; cd $tmp/git; tar xf $troot/git-srcs/${p}_$v.git.tar)
+       local gs=$troot/git-srcs/${p}_$v.git
+       (set -e; cd $tmp/git; t-untar $gs)
 }
 
 t-git-none () {
@@ -238,5 +249,6 @@ t-drs-test () {
        export DGIT_TEST_TESTNAME="$testname"
        export ADTTMP=$tmp
        cp $root/tests/gnupg/{dd.gpg,dm.gpg,dm.txt} $tmp/.
+       cp $root/tests/suites $tmp/.
        exec "${0///drs-//}" "$@"
 }