minor typo in pattern...
[gitolite.git] / t / wild-1.t
blob7a8f7660f245470bd1c9cc158a91431c0e2c130a
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
5 # this is hardcoded; change it if needed
6 use lib "src/lib";
7 use Gitolite::Test;
9 # wild repos - part 1
10 # ----------------------------------------------------------------------
12 try "plan 66";
14 confreset;confadd '
15 @prof = u1
16 @TAs = u2 u3
17 @students = u4 u5 u6
19 @gfoo = foo/CREATOR/a[0-9][0-9]
20 repo @gfoo
21 C = @all
22 RW+ = CREATOR
23 RW = WRITERS @TAs
24 R = READERS @prof
27 try "ADMIN_PUSH set1; !/FATAL/" or die text();
29 try "
30 # reasonably complex setup; we'll do everything from one repo though
31 cd ..
33 # u1 create success
34 glt clone u1 file:///foo/u1/a01; ok; /Initialized empty Git repository in .*/foo/u1/a01.git//
36 # u2 create success
37 glt clone u2 file:///foo/u2/a02; ok; /Initialized empty Git repository in .*/foo/u2/a02.git//
39 # u4 tries to create u2 repo
40 glt clone u4 file:///foo/u2/a12; !ok; /R any foo/u2/a12 u4 DENIED by fallthru/
42 # line anchored regexes
43 glt clone u4 file:///foo/u4/a1234; !ok; /R any foo/u4/a1234 u4 DENIED by fallthru/
45 # u4 tries to create his own repo
46 glt clone u4 file:///foo/u4/a12; ok; /Initialized empty Git repository in .*/foo/u4/a12.git//
47 /warning: You appear to have cloned an empty repository./
49 # u4 push success
50 cd a12
51 tc p-728 p-729 p-730 p-731; ok
52 glt push u4 origin master; ok; /To file:///foo/u4/a12/
53 /\\* \\[new branch\\] master -> master/
55 # u1 clone success
56 cd ..
57 glt clone u1 file:///foo/u4/a12 u1a12; ok; /Cloning into 'u1a12'.../
59 # u1 push fail
60 cd u1a12
61 tc m-778 m-779; ok;
62 glt push u1 origin; !ok; /W any foo/u4/a12 u1 DENIED by fallthru/
64 # u2 clone success
65 cd ..
66 glt clone u2 file:///foo/u4/a12 u2a12; ok; /Cloning into 'u2a12'.../
68 # u2 push success
69 cd u2a12
70 tc s-708 s-709; ok;
71 glt push u2 origin; ok; /To file:///foo/u4/a12/
72 /master -> master/
74 # u2 rewind fail
75 glt push u2 -f origin master^:master; !ok; /\\+ refs/heads/master foo/u4/a12 u2 DENIED by fallthru/
76 reject
78 # u4 pull to sync up
79 cd ../a12
80 glt pull u4; ok; /Fast-forward/
81 /From file:///foo/u4/a12/
82 /master -> origin/master/
84 # u4 rewind success
85 git reset --hard HEAD^; ok
86 glt push u4 -f; ok; /To file:///foo/u4/a12/
87 /\\+ .* master -> master \\(forced update\\)/
89 # u5 clone fail
90 cd ..
91 glt clone u5 file:///foo/u4/a12 u5a12; !ok; /R any foo/u4/a12 u5 DENIED by fallthru/
93 glt perms u4 foo/u4/a12 + READERS u5
94 glt perms u4 foo/u4/a12 + WRITERS u6
96 glt perms u4 foo/u4/a12 -l
99 cmp 'READERS u5
100 WRITERS u6
103 try "
104 # u5 clone success
105 glt clone u5 file:///foo/u4/a12 u5a12; ok; /Cloning into 'u5a12'.../
107 # u5 push fail
108 cd u5a12
109 tc y-743 y-744; ok
110 glt push u5; !ok; /W any foo/u4/a12 u5 DENIED by fallthru/
112 # u6 clone success
113 cd ..
114 glt clone u6 file:///foo/u4/a12 u6a12; ok; /Cloning into 'u6a12'.../
116 # u6 push success
117 cd u6a12
118 tc k-68 k-69; ok
119 glt push u6 file:///foo/u4/a12; ok; /To file:///foo/u4/a12/
120 /master -> master/
122 # u6 rewind fail
123 glt push u6 -f file:///foo/u4/a12 master^:master
124 !ok; /\\+ refs/heads/master foo/u4/a12 u6 DENIED by fallthru/
125 reject