chiark / gitweb /
5ce17d6c56c36c22137d97ebdfc1413efbbb958f
[dgit.git] / tests / lib
1 #
2
3 exec 2>&1
4 set -x
5
6 root=`pwd`
7 troot=$root/tests
8 testname="${0##*/}"
9
10 tmp=$ADTTMP
11 if [ x"$tmp" = x ]; then
12         mkdir -p tests/tmp
13         tmp=tests/tmp/$testname
14         rm -rf $tmp
15         mkdir $tmp
16 fi
17 cd $tmp
18 tmp=`pwd`
19 export DGIT_TEST_DUMMY_DIR=$tmp
20 ln $troot/ssh ssh
21
22 mkdir $tmp/gnupg
23 export GNUPGHOME=$tmp/gnupg
24
25 t-git () {
26         mkdir -p $tmp/git
27         cp -al $troot/git-srcs/$1 git/.
28 }
29
30 t-git-none () {
31         mkdir -p $tmp/git
32 }
33
34 t-archive () {
35         p=$1
36         v=$2
37         mkdir -p $tmp/aq $tmp/mirror
38         local dscf=${p}_$2.dsc
39         rm -f $tmp/mirror/${p}_*
40         ln $troot/pkg-srcs/${p}_${2%-*}* $tmp/mirror/
41         echo sid >$tmp/aq/suite.unstable
42         echo "$2 $dscf" >>$tmp/aq/package.sid.${p}
43         rm -rf $tmp/extract
44         mkdir $tmp/extract
45         (set -e; cd $tmp/extract; dpkg-source -x ../mirror/$dscf)
46 }
47
48 t-dgit () {
49         : '{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{'
50         ${DGIT_TEST-dgit} --dget:-u -dtest-dummy -D "$@"
51         : '}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}'
52 }
53
54 t-diff-nogit () {
55         diff --exclude=.git -ruN $*
56 }
57
58 t-cloned-fetched-good () {
59         t-diff-nogit ../extract/$p-${v%-*} .
60         t-clean-on-branch dgit/sid
61         t-refs-same HEAD remotes/dgit/dgit/sid
62 }
63
64 t-output () {
65         printf "%s\n" "$1" >$tmp/t.want
66         shift
67         "$@" >$tmp/t.got
68         diff $tmp/t.want $tmp/t.got
69 }
70
71 t-clean-on-branch () {
72         t-output "## $1" git status -b --porcelain
73 }
74
75 t-refs-same () {
76         local f=$1
77         git rev-parse $f >$tmp/t.ref1
78         local g
79         for g in $*; do
80                 git rev-parse $g >$tmp/t.refn
81                 diff $tmp/t.ref1 $tmp/t.refn
82         done
83 }