pidl: Change PyGetSetDef in generated python bindings to use C99 initialisers
[obnox/samba/samba-obnox.git] / testprogs / blackbox / dbcheck-oldrelease.sh
1 #!/bin/sh
2
3 if [ $# -lt 1 ]; then
4 cat <<EOF
5 Usage: dbcheck.sh PREFIX RELEASE
6 EOF
7 exit 1;
8 fi
9
10 PREFIX_ABS="$1"
11 RELEASE="$2"
12 shift 2
13
14 . `dirname $0`/subunit.sh
15
16 release_dir=`dirname $0`/../../source4/selftest/provisions/$RELEASE
17
18 ldbmodify="ldbmodify"
19 if [ -x "$BINDIR/ldbmodify" ]; then
20     ldbmodify="$BINDIR/ldbmodify"
21 fi
22
23 ldbsearch="ldbsearch"
24 if [ -x "$BINDIR/ldbsearch" ]; then
25     ldbsearch="$BINDIR/ldbsearch"
26 fi
27
28 undump() {
29        if test -x $BINDIR/tdbrestore;
30        then
31         `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE $BINDIR/tdbrestore
32        else
33         `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE
34        fi
35 }
36
37 add_userparameters0() {
38        if [ x$RELEASE = x"release-4-1-0rc3" ]; then
39            $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb <<EOF
40 dn: cn=localdc,cn=domain controllers,dc=release-4-1-0rc3,dc=samba,dc=corp
41 changetype: modify
42 replace: userParameters
43 userParameters:: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC
44  AAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQABoACAAB
45  AEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZw
46  BGAGwAYQBnAHMAMQAwMGUwMDAxMBYACAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawAwMDAw
47  MDAwMBIACAABAEMAdAB4AFMAaABhAGQAbwB3ADAxMDAwMDAwKAAIAAEAQwB0AHgATQBhAH
48  gAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAIAAEAQwB0AHgATQBh
49  AHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwHAAIAAEAQw
50  B0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAwIgAIAAEAQwB0AHgASwBlAHkA
51  YgBvAGEAcgBkAEwAYQB5AG8AdQB0ADAwMDAwMDAwKgACAAEAQwB0AHgATQBpAG4ARQBuAG
52  MAcgB5AHAAdABpAG8AbgBMAGUAdgBlAGwAMDAgAAIAAQBDAHQAeABXAG8AcgBrAEQAaQBy
53  AGUAYwB0AG8AcgB5ADAwIAACAAEAQwB0AHgATgBXAEwAbwBnAG8AbgBTAGUAcgB2AGUAcg
54  AwMBgAJAABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByADVjNWM3MzYxNzQ3NTcyNmU2NTVj
55  NzAyZTYyNjk2NDZmNmUwMCIABgABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByAEQAcgBpAH
56  YAZQA1MDNhMDAgADoAAQBDAHQAeABXAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADVjNWM3
57  MzYxNzQ3NTcyNmU2NTVjNzA3MjZmNjY2OTZjNjU3NDczNjU1YzcwMmU2MjY5NjQ2ZjZlMD
58  AiAAIAAQBDAHQAeABJAG4AaQB0AGkAYQBsAFAAcgBvAGcAcgBhAG0AMDAiAAIAAQBDAHQA
59  eABDAGEAbABsAGIAYQBjAGsATgB1AG0AYgBlAHIAMDA=
60 -
61 EOF
62        fi
63 }
64 add_userparameters1() {
65        if [ x$RELEASE = x"release-4-1-0rc3" ]; then
66            $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb <<EOF
67 dn: cn=administrator,cn=users,dc=release-4-1-0rc3,dc=samba,dc=corp
68 changetype: modify
69 replace: userParameters
70 userParameters: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC
71  AAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQABoACAAB
72  AEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZw
73  BGAGwAYQBnAHMAMQAwMGUwMDAxMBYACAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawAwMDAw
74  MDAwMBIACAABAEMAdAB4AFMAaABhAGQAbwB3ADAxMDAwMDAwKAAIAAEAQwB0AHgATQBhAH
75  gAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAIAAEAQwB0AHgATQBh
76  AHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwHAAIAAEAQw
77  B0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAwIgAIAAEAQwB0AHgASwBlAHkA
78  YgBvAGEAcgBkAEwAYQB5AG8AdQB0ADAwMDAwMDAwKgACAAEAQwB0AHgATQBpAG4ARQBuAG
79  MAcgB5AHAAdABpAG8AbgBMAGUAdgBlAGwAMDAgAAIAAQBDAHQAeABXAG8AcgBrAEQAaQBy
80  AGUAYwB0AG8AcgB5ADAwIAACAAEAQwB0AHgATgBXAEwAbwBnAG8AbgBTAGUAcgB2AGUAcg
81  AwMBgAJAABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByADVjNWM3MzYxNzQ3NTcyNmU2NTVj
82  NzAyZTYyNjk2NDZmNmUwMCIABgABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByAEQAcgBpAH
83  YAZQA1MDNhMDAgADoAAQBDAHQAeABXAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADVjNWM3
84  MzYxNzQ3NTcyNmU2NTVjNzA3MjZmNjY2OTZjNjU3NDczNjU1YzcwMmU2MjY5NjQ2ZjZlMD
85  AiAAIAAQBDAHQAeABJAG4AaQB0AGkAYQBsAFAAcgBvAGcAcgBhAG0AMDAiAAIAAQBDAHQA
86  eABDAGEAbABsAGIAYQBjAGsATgB1AG0AYgBlAHIAMDA=
87 -
88 EOF
89        fi
90 }
91 add_userparameters2() {
92        if [ x$RELEASE = x"release-4-1-0rc3" ]; then
93            $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb <<EOF
94 dn: cn=krbtgt,cn=users,dc=release-4-1-0rc3,dc=samba,dc=corp
95 changetype: modify
96 replace: userParameters
97 userParameters:: Q3R4Q2ZnUHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
98  CAgUAsaCAFDdHhDZmdQcmVzZW5045S15pSx5oiw44GiIAIBQ3R4V0ZQcm9maWxlUGF0aOOAsBgCAU
99  N0eFdGSG9tZURpcuOAsCICAUN0eFdGSG9tZURpckRyaXZl44CwEggBQ3R4U2hhZG9344Sw44Cw44C
100  w44CwLggBQ3R4TWF4RGlzY29ubmVjdGlvblRpbWXjgaXjjLnjkLDjgLAoCAFDdHhNYXhDb25uZWN0
101  aW9uVGltZeOAtOOct+aIseOAsBwIAUN0eE1heElkbGVUaW1l44Gj45yy46Sw44CwIAIBQ3R4V29ya
102  0RpcmVjdG9yeeOAsBgIAUN0eENmZ0ZsYWdzMeOAsOOBpuOYsuOAuCICAUN0eEluaXRpYWxQcm9ncm
103  Ft44Cw
104 -
105 EOF
106        fi
107 }
108
109 add_userparameters3() {
110        if [ x$RELEASE = x"release-4-1-0rc3" ]; then
111            $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb <<EOF
112 dn: cn=guest,cn=users,dc=release-4-1-0rc3,dc=samba,dc=corp
113 changetype: modify
114 replace: userParameters
115 userParameters:: QwAAAHQAAAB4AAAAQwAAAGYAAABnAAAAUAAAAHIAAABlAAAAcwAAAGUAAABuA
116  AAAdAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAA
117  AgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACA
118  AAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAUAAAAAsAAAAaAAAACAAAAAEAAABDAAAAdAAA
119  AHgAAABDAAAAZgAAAGcAAABQAAAAcgAAAGUAAABzAAAAZQAAAG4AAAB0AAAANQA1ADEAZQAwAGIAY
120  gAwACAAAAACAAAAAQAAAEMAAAB0AAAAeAAAAFcAAABGAAAAUAAAAHIAAABvAAAAZgAAAGkAAABsAA
121  AAZQAAAFAAAABhAAAAdAAAAGgAAAAwADAAGAAAAAIAAAABAAAAQwAAAHQAAAB4AAAAVwAAAEYAAAB
122  IAAAAbwAAAG0AAABlAAAARAAAAGkAAAByAAAAMAAwACIAAAACAAAAAQAAAEMAAAB0AAAAeAAAAFcA
123  AABGAAAASAAAAG8AAABtAAAAZQAAAEQAAABpAAAAcgAAAEQAAAByAAAAaQAAAHYAAABlAAAAMAAwA
124  BIAAAAIAAAAAQAAAEMAAAB0AAAAeAAAAFMAAABoAAAAYQAAAGQAAABvAAAAdwAAADAAMQAwADAAMA
125  AwADAAMAAuAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABEAAAAaQAAAHMAAABjAAA
126  AbwAAAG4AAABuAAAAZQAAAGMAAAB0AAAAaQAAAG8AAABuAAAAVAAAAGkAAABtAAAAZQAAAGUAMAA5
127  ADMAMAA0ADAAMAAoAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABDAAAAbwAAAG4AA
128  ABuAAAAZQAAAGMAAAB0AAAAaQAAAG8AAABuAAAAVAAAAGkAAABtAAAAZQAAADQAMAA3ADcAMQBiAD
129  AAMAAcAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABJAAAAZAAAAGwAAABlAAAAVAA
130  AAGkAAABtAAAAZQAAAGMAMAAyADcAMAA5ADAAMAAgAAAAAgAAAAEAAABDAAAAdAAAAHgAAABXAAAA
131  bwAAAHIAAABrAAAARAAAAGkAAAByAAAAZQAAAGMAAAB0AAAAbwAAAHIAAAB5AAAAMAAwABgAAAAIA
132  AAAAQAAAEMAAAB0AAAAeAAAAEMAAABmAAAAZwAAAEYAAABsAAAAYQAAAGcAAABzAAAAMQAAADAAMA
133  BmADAAMgA2ADgAMAAiAAAAAgAAAAEAAABDAAAAdAAAAHgAAABJAAAAbgAAAGkAAAB0AAAAaQAAAGE
134  AAABsAAAAUAAAAHIAAABvAAAAZwAAAHIAAABhAAAAbQAAADAAMAA=
135 -
136 EOF
137        fi
138 }
139
140 reindex() {
141        $PYTHON $BINDIR/samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
142 }
143
144 check_expected_before_values() {
145     if [ x$RELEASE = x"release-4-1-0rc3" ]; then
146         tmpldif=$PREFIX_ABS/$RELEASE/expected-replpropertymetadata-before-dbcheck.ldif.tmp
147         TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb -s base -b CN=ops_run_anything,OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --show-binary > $tmpldif
148         diff $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck.ldif
149         if [ "$?" != "0" ]; then
150             return 1
151         fi
152     fi
153     return 0
154 }
155
156 # This should 'fail', because it returns the number of modified records
157 dbcheck() {
158        $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
159 }
160
161 check_expected_after_values() {
162     if [ x$RELEASE = x"release-4-1-0rc3" ]; then
163         tmpldif=$PREFIX_ABS/$RELEASE/expected-replpropertymetadata-after-dbcheck.ldif.tmp
164         TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb -s base -b CN=ops_run_anything,OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --show-binary > $tmpldif
165         diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck.ldif
166         if [ "$?" != "0" ]; then
167             return 1
168         fi
169     fi
170     return 0
171 }
172
173 # But having fixed it all up, this should pass
174 dbcheck_clean() {
175        $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
176 }
177
178 # This should 'fail', because it returns the number of modified records.  
179 # We don't need to run this against 4.1 releases
180 dbcheck_acl_reset() {
181     if [ x$RELEASE = x"release-4-0-0" -o x$RELEASE = x"alpha13" ]; then
182        $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
183     else 
184         return 1
185     fi
186 }
187 # But having fixed it all up, this should pass.  
188 # We don't need to run this against 4.1.0rc3
189 dbcheck_acl_reset_clean() {
190     if [ x$RELEASE != x"release-4-1-0rc3" ]; then
191        $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
192     fi
193 }
194
195 # This should 'fail', because it returns the number of modified records
196 dbcheck2() {
197     if [ x$RELEASE = x"release-4-1-0rc3" ]; then
198        $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
199     else
200         exit 1
201     fi
202 }
203 # But having fixed it all up, this should pass
204 dbcheck_clean2() {
205     if [ x$RELEASE = x"release-4-1-0rc3" ]; then
206        $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
207     fi
208 }
209
210 referenceprovision() {
211     if [ x$RELEASE == x"release-4-0-0" ]; then
212         $PYTHON $BINDIR/samba-tool domain provision --server-role="dc" --domain=SAMBA --host-name=ares --realm=${RELEASE}.samba.corp --targetdir=$PREFIX_ABS/${RELEASE}_reference --use-ntvfs --host-ip=127.0.0.1 --host-ip6=::1 --function-level=2003
213     fi
214 }
215
216 ldapcmp() {
217     if [ x$RELEASE == x"release-4-0-0" ]; then
218          $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --two --skip-missing-dn --filter=dnsRecord
219     fi
220 }
221
222 ldapcmp_sd() {
223     if [ x$RELEASE == x"release-4-0-0" ]; then
224         $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --two --sd --skip-missing-dn
225     fi
226 }
227
228 if [ -d $release_dir ]; then
229     testit $RELEASE undump
230     testit "reindex" reindex
231     testit "check_expected_before_values" check_expected_before_values
232     testit_expect_failure "dbcheck" dbcheck
233     testit "check_expected_after_values" check_expected_after_values
234     testit "dbcheck_clean" dbcheck_clean
235     testit_expect_failure "dbcheck_acl_reset" dbcheck_acl_reset
236     testit "dbcheck_acl_reset_clean" dbcheck_acl_reset_clean
237     testit "add_userparameters0" add_userparameters1
238     testit "add_userparameters1" add_userparameters1
239     testit "add_userparameters2" add_userparameters2
240     testit "add_userparameters3" add_userparameters3
241     testit_expect_failure "dbcheck2" dbcheck2
242     testit "dbcheck_clean2" dbcheck_clean2
243     testit "referenceprovision" referenceprovision
244     testit "ldapcmp" ldapcmp
245     testit "ldapcmp_sd" ldapcmp_sd
246 else
247     subunit_start_test $RELEASE
248     subunit_skip_test $RELEASE <<EOF
249 no test provision
250 EOF
251
252     subunit_start_test "reindex"
253     subunit_skip_test "reindex" <<EOF
254 no test provision
255 EOF
256     subunit_start_test check_expected_before_values
257     subunit_skip_test check_expected_before_values<<EOF
258 no test provision
259 EOF
260     subunit_start_test "dbcheck"
261     subunit_skip_test "dbcheck" <<EOF
262 no test provision
263 EOF
264     subunit_start_test "dbcheck_clean"
265     subunit_skip_test "dbcheck_clean" <<EOF
266 no test provision
267 EOF
268     subunit_start_test check_expected_after_values
269     subunit_skip_test check_expected_after_values<<EOF
270 no test provision
271 EOF
272     subunit_start_test "dbcheck_acl_reset"
273     subunit_skip_test "dbcheck_acl_reset" <<EOF
274 no test provision
275 EOF
276     subunit_start_test "dbcheck_clean_acl_reset"
277     subunit_skip_test "dbcheck_clean_acl_reset" <<EOF
278 no test provision
279 EOF
280     subunit_start_test add_userparameters0
281     subunit_skip_test add_userparameters0<<EOF
282 no test provision
283 EOF
284
285     subunit_start_test add_userparameters1
286     subunit_skip_test add_userparameters1<<EOF
287 no test provision
288 EOF
289
290     subunit_start_test add_userparameters2
291     subunit_skip_test add_userparameters2<<EOF
292 no test provision
293 EOF
294
295     subunit_start_test add_userparameters3
296     subunit_skip_test add_userparameters3<<EOF
297 no test provision
298 EOF
299
300     subunit_start_test check_expected_before_values
301     subunit_skip_test check_expected_before_values<<EOF
302 no test provision
303 EOF
304
305     subunit_start_test "dbcheck2"
306     subunit_skip_test "dbcheck2" <<EOF
307 no test provision
308 EOF
309
310     subunit_start_test "referenceprovision"
311     subunit_skip_test "referenceprovision" <<EOF
312 no test provision
313 EOF
314     subunit_start_test "ldapcmp"
315     subunit_skip_test "ldapcmp" <<EOF
316 no test provision
317 EOF
318     subunit_start_test "ldapcmp_sd"
319     subunit_skip_test "ldapcmp_sd" <<EOF
320 no test provision
321 EOF
322 fi
323
324 if [ -d $PREFIX_ABS/${RELEASE} ]; then
325     rm -fr $PREFIX_ABS/${RELEASE}
326 fi
327
328 if [ -d $PREFIX_ABS/${RELEASE}_reference ]; then
329   rm -fr $PREFIX_ABS/${RELEASE}_reference
330 fi
331
332 exit $failed