chiark / gitweb /
git-debrebase: test suite: lib-gdr: add some t-git-next-date calls
[dgit.git] / tests / lib-gdr
1 #
2
3 : ${GDR_TEST_DEBUG=-D}
4 export GDR_TEST_DEBUG
5
6 t-git-debrebase () {
7         local gdr=${DGIT_GITDEBREBASE_TEST-git-debrebase}
8         : '
9 {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{'
10         $gdr    $GDR_TEST_OPTS $GDR_TEST_DEBUG $t_gdr_xopts "$@"
11         : '}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
12 '
13 }
14
15 t-gdr-good () {
16         local state=$1
17         local beforetag=$2 # say HEAD to skip this check
18         # state should be one of
19         #   laundered
20         #   stitched
21         #   patches
22
23         git diff --quiet ${beforetag-t.before} -- ':.' ':!debian/patches'
24
25         local etype netype bwtip
26
27         case $state in
28         laundered)
29                         etype=Upstream
30                         bwtip=Y:`t-git-debrebase breakwater`
31                 ;;
32         stitched)       etype=Pseudomerge ;;
33         pushed)         etype=AddPatches; netype=Pseudomerge ;;
34         esac
35
36         t-git-debrebase analyse >../anal.check
37         expect=`git rev-parse HEAD`
38         exec <../anal.check
39         local cid ctype info nparents
40         while read cid ctype info; do
41                 : ===== $cid $ctype $info =====
42                 test $cid = $expect
43                 local cetype=$etype
44                 if [ "x$ctype" = "x$etype" ]; then cetype=SAME; fi
45                 local parents="`git log -n1 --pretty=format:%P $cid`"
46                 expect="$parents"
47                 enparents=1
48                 : "$ctype/$cetype" "$parents"
49
50                 case "$ctype/$cetype" in
51                 Pseudomerge/SAME)                       ;;
52                 Packaging/SAME)                         ;;
53                 Packaging/Upstream)                     ;;
54                 AddPatches/SAME)                        ;;
55                 Changelog/Packaging)                    ;;
56                 Changelog/Upstream)                     ;;
57                 Upstream/SAME)                          ;;
58                 BreakwaterUpstreamMerge/Upstream)       ;;
59                 BreakwaterUpstreamMerge/Packaging)      ;;
60                 *)
61                         fail "etype=$etype ctype=$ctype cetype=$cetype $cid"
62                         ;;
63                 esac
64
65                 case "$ctype/$etype" in
66                 Packaging/Upstream|\
67                 Changelog/Upstream)
68                         if [ "x$bwtip" != x ]; then
69                                 test "$bwtip" = "Y:$cid"
70                                 bwtip=''
71                         fi
72                 esac
73
74                 case "$ctype" in
75                 Pseudomerge)
76                         expect=${info#Contributor=}
77                         expect=${expect%% *}
78                         enparents=2
79                         git diff --quiet $expect..$cid
80                         etype=Upstream
81                         ;;
82                 Packaging)
83                         git diff --quiet $expect..$cid -- ':.' ':!debian' 
84                         git diff --quiet $expect..$cid -- ':debian/patches'
85                         etype=Packaging
86                         ;;
87                 AddPatches)
88                         git diff --quiet $expect..$cid -- \
89                                 ':.' ':!debian/patches'
90                         etype=$netype
91                         netype=Upstream
92                         ;;
93                 Changelog)
94                         git diff --quiet $expect..$cid -- \
95                                 ':.' ':!debian/changelog'
96                         etype=Packaging
97                         ;;
98                 Upstream/SAME)
99                         git diff --quiet $expect..$cid -- ':debian'
100                         ;;
101                 BreakwaterUpstreamMerge)
102                         break
103                         ;;
104                 esac
105
106                 local cnparents=`printf "%s" "$parents" | wc -w`
107                 test $cnparents = $enparents
108
109                 case "$parents" in
110                 *"$expect"*)    ;;
111                 *)              fail 'unexpected parent' ;;
112                 esac
113
114         done
115 }
116
117 t-some-changes () {
118         local token=$1
119
120         t-git-next-date
121
122         echo >>debian/zorkmid "// debian $token"
123         git add debian/zorkmid
124         git commit -m "DEBIAN add zorkmid ($token)"
125
126         echo >>src.c "// upstream $token"
127         git commit -a -m "UPSTREAM edit src.c ($token)"
128
129         for f in debian/zorkmid src.c; do
130                 echo "// both! $token" >>$f
131                 git add $f
132         done
133         git commit -m "MIXED add both ($token)"
134
135         t-git-next-date
136 }
137
138 t-make-new-upstream-tarball () {
139         local uv=$1
140         git checkout make-upstream
141         # leaves ust set to filename of orig tarball
142         echo "upstream $uv" >>docs/README
143         git commit -a -m "upstream $uv tarball"
144         ust=example_$uv.orig.tar.gz
145         git archive -o ../$ust --prefix=example-2.0/ make-upstream
146 }