summaryrefslogtreecommitdiffstats
path: root/t/include-subconf.t
blob: 48bdaeef93d44cf3e94e09ba9856da6b54eaa46f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/usr/bin/perl
use strict;
use warnings;

# this is hardcoded; change it if needed
use lib "src/lib";
use Gitolite::Test;

# include and subconf
# ----------------------------------------------------------------------

try 'plan 58';

confreset; confadd '
    include "i1.conf"
    @i2 = b1
    subconf "i2.conf"
    include "i1.conf"
';
confadd 'i1.conf', '
    @g1 = a1 a2
    repo foo
        RW = u1

    include "j1.conf"
';
confadd 'i2.conf', '
    @g2 = b1 b2
    repo bar b1 b2 i1 i2 @i1 @i2 @g2
        RW = u2
';
confadd 'j1.conf', '
    @h2 = c1 c2
    repo baz
        RW = u3
';

try "ADMIN_PUSH set2; !/FATAL/" or die text();

try "
                                        /i1.conf already included/
	                                    /subconf 'i2' attempting to set access for \@i1, b2, bar, i1/
                                        /WARNING: expanding '\@g2'/

                                        !/attempting to set access.*i2/
                                        /Initialized.*empty.*baz.git/
                                        /Initialized.*empty.*foo.git/
                                        /Initialized.*empty.*b1.git/
                                        /Initialized.*empty.*i2.git/
                                        !/Initialized.*empty.*b2.git/
                                        !/Initialized.*empty.*i1.git/
                                        !/Initialized.*empty.*bar.git/
";

confreset;confadd '
    @g2 = i1 i2 i3
    subconf "g2.conf"
';
confadd 'g2.conf', '
    @g2 = g2 h2 i2
    repo @g2
        RW = u1
';

try "ADMIN_PUSH set3; !/FATAL/" or die text();
try "
                                        /WARNING: expanding '\@g2'/
                                        /WARNING: subconf 'g2' attempting to set access for h2/
                                        /Initialized.*empty.*g2.git/
                                        /Initialized.*empty.*i2.git/
";

confreset;confadd '
    @g2 = i1 i2 i3
    subconf "g2.conf"
';
confadd 'g2.conf', '
    subconf master
    @g2 = g2 h2 i2
    repo @g2
        RW = u1
';

try "
    ADMIN_PUSH set3;           ok;     /FATAL: subconf \\'g2\\' attempting to run 'subconf'/
";

# ----------------------------------------------------------------------

confreset; confadd '
    include "i1.conf"
    @i2 = b1
    subconf i2 "eye2.conf"
';
confadd 'eye2.conf', '
    repo @eye2
        RW = u2
';

try "ADMIN_PUSH set2; !/FATAL/" or die text();

try "
    /subconf 'i2' attempting to set access for \@eye2/
";

confreset; confadd '
    include "i1.conf"
    @i2 = b1
    subconf i2 "eye2.conf"
';
confadd 'eye2.conf', '
    repo @i2
        RW = u2
';

try "ADMIN_PUSH set2; !/FATAL/" or die text();

try "
    !/subconf 'i2' attempting to set access for \@eye2/
";