~ubuntu-branches/ubuntu/utopic/gitolite3/utopic-proposed

« back to all changes in this revision

Viewing changes to t/basic.t

  • Committer: Package Import Robot
  • Author(s): David Bremner
  • Date: 2013-05-18 17:59:21 UTC
  • Revision ID: package-import@ubuntu.com-20130518175921-ac4xe6vd0jtxvjot
Tags: upstream-3.5.1+4
ImportĀ upstreamĀ versionĀ 3.5.1+4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl
 
2
use strict;
 
3
use warnings;
 
4
 
 
5
# this is hardcoded; change it if needed
 
6
use lib "src/lib";
 
7
use Gitolite::Test;
 
8
 
 
9
# some more basic tests
 
10
# ----------------------------------------------------------------------
 
11
 
 
12
try "
 
13
    plan 217
 
14
    CHECK_SETUP
 
15
 
 
16
    # subtest 1
 
17
    cd ..
 
18
    CLONE dev2 gitolite-admin ga2
 
19
                                !ok;    gsh
 
20
                                        /DENIED by fallthru/
 
21
                                        /fatal: The remote end hung up unexpectedly/
 
22
    glt clone admin --progress file:///gitolite-admin ga2
 
23
                                ok;     gsh
 
24
                                        /Counting/; /Compressing/; /Total/
 
25
    cd gitolite-admin;          ok
 
26
    ";
 
27
 
 
28
put "conf/gitolite.conf", "
 
29
    \@admins     =   admin dev1
 
30
    repo gitolite-admin
 
31
        -   mm  =   \@admins
 
32
        RW      =   \@admins
 
33
        RW+     =   admin
 
34
 
 
35
    repo testing
 
36
        RW+     =   \@all
 
37
";
 
38
 
 
39
try "
 
40
    # push
 
41
    git add conf;               ok
 
42
    git status -s;              ok;     /M  conf/gitolite.conf/
 
43
    git commit -m t01a;         ok;     /master.*t01a/
 
44
    PUSH dev2;                  !ok;    gsh
 
45
                                        /DENIED by fallthru/
 
46
                                        /fatal: The remote end hung up unexpectedly/
 
47
    PUSH admin;                 ok;     /master -> master/
 
48
    empty;                      ok;
 
49
    PUSH admin master:mm
 
50
                                !ok;    gsh
 
51
                                        /DENIED by refs/heads/mm/
 
52
                                        reject
 
53
    ";
 
54
 
 
55
put "conf/gitolite.conf", "
 
56
    \@admins     =   admin dev1
 
57
    repo gitolite-admin
 
58
        RW+     =   admin
 
59
 
 
60
    repo testing
 
61
        RW+     =   \@all
 
62
 
 
63
    repo t1
 
64
        R       =   u2
 
65
        RW      =   u3
 
66
        RW+     =   u4
 
67
";
 
68
 
 
69
try "
 
70
    # subtest 2
 
71
    ADMIN_PUSH t01b
 
72
 
 
73
    # clone
 
74
    cd ..;                      ok;
 
75
    CLONE u1 t1;                !ok;    gsh
 
76
                                        /DENIED by fallthru/
 
77
                                        /fatal: The remote end hung up unexpectedly/
 
78
    CLONE u2 t1;                ok;     gsh
 
79
                                        /warning: You appear to have cloned an empty repository./
 
80
    [ -d t1/.git ];             ok
 
81
    cd t1;                      ok;
 
82
 
 
83
    # push
 
84
    test-commit tc1 tc2 tc2;    ok;     /a530e66/
 
85
    PUSH u2;                    !ok;    gsh
 
86
                                        /DENIED by fallthru/
 
87
                                        /fatal: The remote end hung up unexpectedly/
 
88
    PUSH u3 master;             ok;     gsh
 
89
                                        /master -> master/
 
90
 
 
91
    # rewind
 
92
    reset-h HEAD^;              ok;     /HEAD is now at aa2b5c5 tc2/
 
93
    test-tick; test-commit tc3; ok;     /3ffced1/
 
94
    PUSH u3;                    !ok;    gsh
 
95
                                        /rejected.*master -> master.*non-fast-forward./
 
96
    PUSH u3 -f;                 !ok;    gsh
 
97
                                        reject
 
98
                                        /DENIED by fallthru/
 
99
    PUSH u4 +master;            ok;     gsh
 
100
                                        / \\+ a530e66...3ffced1 master -> master.*forced update./
 
101
";
 
102
 
 
103
put "../gitolite-admin/conf/gitolite.conf", "
 
104
    \@admins     =   admin dev1
 
105
    repo gitolite-admin
 
106
        RW+     =   admin
 
107
 
 
108
    include 'i1.conf'
 
109
";
 
110
 
 
111
put "../gitolite-admin/conf/i1.conf", "
 
112
    \@g1 = u1
 
113
    \@g2 = u2
 
114
    \@g3 = u3
 
115
    \@gaa = aa
 
116
    repo \@gaa
 
117
        RW+                 =   \@g1
 
118
        RW                  =   \@g2
 
119
        RW+     master      =   \@g3
 
120
        RW      master      =   u4
 
121
        -       master      =   u5
 
122
        RW+     dev         =   u5
 
123
        RW                  =   u5
 
124
";
 
125
 
 
126
try "
 
127
    # subtest 3
 
128
    ADMIN_PUSH t01c
 
129
 
 
130
    cd ..;                      ok
 
131
";
 
132
 
 
133
try "
 
134
    CLONE u1 aa;                ok;     gsh
 
135
    cd aa;                      ok
 
136
    test-commit set3 t1 t2 t3 t4 t5 t6 t7 t8 t9
 
137
                                ok
 
138
    PUSH u1 HEAD;               ok;     gsh
 
139
                                        /To file:///aa/
 
140
                                        /\\* \\[new branch\\]      HEAD -> master/
 
141
    branch dev;                 ok
 
142
    branch foo;                 ok
 
143
 
 
144
    # u1 rewind master ok
 
145
    reset-h HEAD^;              ok
 
146
    test-commit r1;             ok
 
147
    PUSH u1 +master;            ok;     gsh
 
148
                                        /To file:///aa/
 
149
                                        /\\+ 27ed463...05adfb0 master -> master .forced update./
 
150
 
 
151
    # u2 rewind master !ok
 
152
    reset-h HEAD^;              ok
 
153
    test-commit r2;             ok
 
154
    PUSH u2 +master;            !ok;    gsh
 
155
                                        reject
 
156
                                        /DENIED by fallthru/
 
157
 
 
158
    # u3 rewind master ok
 
159
    reset-h HEAD^;              ok
 
160
    test-commit r3;             ok
 
161
    PUSH u3 +master;            ok;     gsh
 
162
                                        /To file:///aa/
 
163
                                        /\\+ 05adfb0...6a532fe master -> master .forced update./
 
164
 
 
165
    # u4 push master ok
 
166
    test-commit u4;             ok
 
167
    PUSH u4 master;             ok;     gsh
 
168
                                        /To file:///aa/
 
169
                                        /6a532fe..f929773 +master -> master/
 
170
 
 
171
    # u4 rewind master !ok
 
172
    reset-h HEAD^;              ok
 
173
    PUSH u4 +master;            !ok;    gsh
 
174
                                        reject
 
175
                                        /DENIED by fallthru/
 
176
 
 
177
    # u3,u4 push other branches !ok
 
178
    PUSH u3 dev;                !ok;    gsh
 
179
                                        reject
 
180
                                        /DENIED by fallthru/
 
181
    PUSH u4 dev;                !ok;    gsh
 
182
                                        reject
 
183
                                        /DENIED by fallthru/
 
184
    PUSH u3 foo;                !ok;    gsh
 
185
                                        reject
 
186
                                        /DENIED by fallthru/
 
187
    PUSH u4 foo;                !ok;    gsh
 
188
                                        reject
 
189
                                        /DENIED by fallthru/
 
190
 
 
191
    # clean up for next set
 
192
    glt push u1 -f origin master dev foo
 
193
                                ok;     gsh
 
194
                                        /f929773...6a532fe master -> master .forced update./
 
195
                                        /new branch.*dev -> dev/
 
196
                                        /new branch.*foo -> foo/
 
197
 
 
198
    # u5 push master !ok
 
199
    test-commit u5
 
200
    PUSH u5 master;             !ok;    gsh
 
201
                                        reject
 
202
                                        /DENIED by refs/heads/master/
 
203
 
 
204
    # u5 rewind dev ok
 
205
    PUSH u5 +dev^:dev
 
206
                                ok;     gsh
 
207
                                        /\\+ 27ed463...1ad477a dev\\^ -> dev .forced update./
 
208
 
 
209
 
 
210
    # u5 rewind foo !ok
 
211
    PUSH u5 +foo^:foo
 
212
                                !ok;    gsh
 
213
                                        reject
 
214
                                        /remote: FATAL: \\+ refs/heads/foo aa u5 DENIED by fallthru/
 
215
 
 
216
    # u5 push foo ok
 
217
    git checkout foo
 
218
    /Switched to branch 'foo'/
 
219
 
 
220
    test-commit u5
 
221
    PUSH u5 foo;                ok;     gsh
 
222
                                        /27ed463..83da62c *foo -> foo/
 
223
 
 
224
    # u1 delete dev ok
 
225
    PUSH u1 :dev;               ok;     gsh
 
226
                                        / - \\[deleted\\] *dev/
 
227
 
 
228
    # push it back
 
229
    PUSH u1 dev;                ok;     gsh
 
230
                                        /\\* \\[new branch\\] *dev -> dev/
 
231
 
 
232
";
 
233
 
 
234
put "| cat >> ../gitolite-admin/conf/gitolite.conf", "
 
235
    \@gr1 = r1
 
236
    repo \@gr1
 
237
        RW  refs/heads/v[0-9]   = u1
 
238
        RW  refs/heads          = tester
 
239
";
 
240
 
 
241
try "
 
242
    # subtest 4
 
243
    ADMIN_PUSH t01d
 
244
 
 
245
    cd ..;                      ok
 
246
 
 
247
    CLONE tester r1;            ok;     gsh
 
248
                                        /Cloning into 'r1'.../
 
249
    cd r1;                      ok
 
250
    test-commit r1a r1b r1c r1d r1e r1f
 
251
                                ok
 
252
    PUSH tester HEAD;           ok;     gsh
 
253
                                        /\\* \\[new branch\\] *HEAD -> master/
 
254
    git branch v1
 
255
    PUSH tester v1;             ok;     gsh
 
256
                                        /\\* \\[new branch\\] *v1 -> v1/
 
257
 
 
258
";
 
259
 
 
260
put "| cat >> ../gitolite-admin/conf/gitolite.conf", "
 
261
    \@gr2 = r2
 
262
    repo \@gr2
 
263
        RW  refs/heads/v[0-9]   = u1
 
264
        -   refs/heads/v[0-9]   = tester
 
265
        RW  refs/heads          = tester
 
266
";
 
267
 
 
268
try "
 
269
    # subtest 5
 
270
    ADMIN_PUSH t01e
 
271
 
 
272
    cd ..;                      ok
 
273
 
 
274
    CLONE tester r2;            ok;     gsh
 
275
                                        /Cloning into 'r2'.../
 
276
    cd r2;                      ok
 
277
    test-commit r2a r2b r2c r2d r2e r2f
 
278
                                ok
 
279
    PUSH tester HEAD;           ok;     gsh
 
280
                                        /\\* \\[new branch\\] *HEAD -> master/
 
281
    git branch v1
 
282
    PUSH tester v1;             !ok;    gsh
 
283
                                        /W refs/heads/v1 r2 tester DENIED by refs/heads/v\\[0-9\\]/
 
284
"