chiark / gitweb /
autopkgtests: break out fetch-nogit
[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-worktree () {
26         rm -rf $p
27         tar xf $troot/worktrees/${p}_$1.tar
28 }
29
30 t-git-none () {
31         mkdir -p $tmp/git
32 }
33
34 t-has-ancestor () {
35         local ancestor=`git rev-parse $1`
36         local now=`git rev-parse HEAD`
37         local mbase=`git merge-base $ancestor $now`
38         if [ x$mbase != x$ancestor ]; then
39                 echo "not ff $ancestor..$now, $mbase != $ancestor"
40                 exit 1
41         fi
42 }       
43
44 t-archive () {
45         p=$1
46         v=$2
47         mkdir -p $tmp/aq $tmp/mirror
48         local dscf=${p}_$2.dsc
49         rm -f $tmp/mirror/${p}_*
50         ln $troot/pkg-srcs/${p}_${2%-*}* $tmp/mirror/
51         echo sid >$tmp/aq/suite.unstable
52         echo "$2 $dscf" >>$tmp/aq/package.sid.${p}
53         rm -rf $tmp/extract
54         mkdir $tmp/extract
55         (set -e; cd $tmp/extract; dpkg-source -x ../mirror/$dscf)
56 }
57
58 t-dgit () {
59         : '{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{'
60         ${DGIT_TEST-dgit} --dget:-u -dtest-dummy -D "$@"
61         : '}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}'
62 }
63
64 t-diff-nogit () {
65         diff --exclude=.git -ruN $*
66 }
67
68 t-cloned-fetched-good () {
69         t-diff-nogit ../extract/$p-${v%-*} .
70         t-clean-on-branch dgit/sid
71         t-refs-same HEAD remotes/dgit/dgit/sid
72 }
73
74 t-output () {
75         printf "%s\n" "$1" >$tmp/t.want
76         shift
77         "$@" >$tmp/t.got
78         diff $tmp/t.want $tmp/t.got
79 }
80
81 t-clean-on-branch () {
82         t-output "## $1" git status -b --porcelain
83 }
84
85 t-refs-same () {
86         local f=$1
87         git rev-parse $f >$tmp/t.ref1
88         local g
89         for g in $*; do
90                 git rev-parse $g >$tmp/t.refn
91                 diff $tmp/t.ref1 $tmp/t.refn
92         done
93 }