s3:param: Fix old-style function definition
[Samba.git] / testprogs / blackbox / dbcheck-oldrelease.sh
blob635ada9414c4a4412c36b6588c3189e81b4146e3
1 #!/bin/sh
3 if [ $# -lt 1 ]; then
4 cat <<EOF
5 Usage: dbcheck.sh PREFIX RELEASE
6 EOF
7 exit 1
8 fi
10 PREFIX_ABS="$1"
11 RELEASE="$2"
12 shift 2
14 failed=0
16 . $(dirname $0)/subunit.sh
17 . $(dirname $0)/common_test_fns.inc
19 release_dir=$(dirname $0)/../../source4/selftest/provisions/$RELEASE
21 ldbmodify="ldbmodify"
22 if [ -x "$BINDIR/ldbmodify" ]; then
23 ldbmodify="$BINDIR/ldbmodify"
26 ldbdel="ldbdel"
27 if [ -x "$BINDIR/ldbdel" ]; then
28 ldbdel="$BINDIR/ldbdel"
31 ldbsearch="ldbsearch"
32 if [ -x "$BINDIR/ldbsearch" ]; then
33 ldbsearch="$BINDIR/ldbsearch"
36 samba_tdbrestore="tdbrestore"
37 if [ -x "$BINDIR/tdbrestore" ]; then
38 samba_tdbrestore="$BINDIR/tdbrestore"
41 samba_undump="$SRCDIR_ABS/source4/selftest/provisions/undump.sh"
42 if [ ! -x $samba_undump ] || [ ! -d $release_dir ]; then
43 subunit_start_test $RELEASE
44 subunit_skip_test $RELEASE <<EOF
45 no test provision
46 EOF
48 subunit_start_test "reindex"
49 subunit_skip_test "reindex" <<EOF
50 no test provision
51 EOF
52 subunit_start_test check_expected_before_values
53 subunit_skip_test check_expected_before_values <<EOF
54 no test provision
55 EOF
56 subunit_start_test "dbcheck"
57 subunit_skip_test "dbcheck" <<EOF
58 no test provision
59 EOF
60 subunit_start_test "dbcheck_clean"
61 subunit_skip_test "dbcheck_clean" <<EOF
62 no test provision
63 EOF
64 subunit_start_test check_expected_after_values
65 subunit_skip_test check_expected_after_values <<EOF
66 no test provision
67 EOF
68 subunit_start_test "dbcheck_acl_reset"
69 subunit_skip_test "dbcheck_acl_reset" <<EOF
70 no test provision
71 EOF
72 subunit_start_test "dbcheck_clean_acl_reset"
73 subunit_skip_test "dbcheck_clean_acl_reset" <<EOF
74 no test provision
75 EOF
76 subunit_start_test add_userparameters0
77 subunit_skip_test add_userparameters0 <<EOF
78 no test provision
79 EOF
81 subunit_start_test add_userparameters1
82 subunit_skip_test add_userparameters1 <<EOF
83 no test provision
84 EOF
86 subunit_start_test add_userparameters2
87 subunit_skip_test add_userparameters2 <<EOF
88 no test provision
89 EOF
91 subunit_start_test add_userparameters3
92 subunit_skip_test add_userparameters3 <<EOF
93 no test provision
94 EOF
96 subunit_start_test check_expected_before_values
97 subunit_skip_test check_expected_before_values <<EOF
98 no test provision
99 EOF
101 subunit_start_test "dbcheck2"
102 subunit_skip_test "dbcheck2" <<EOF
103 no test provision
106 subunit_start_test "referenceprovision"
107 subunit_skip_test "referenceprovision" <<EOF
108 no test provision
110 subunit_start_test "ldapcmp"
111 subunit_skip_test "ldapcmp" <<EOF
112 no test provision
114 subunit_start_test "ldapcmp_sd"
115 subunit_skip_test "ldapcmp_sd" <<EOF
116 no test provision
119 exit 0
122 undump()
124 $samba_undump $release_dir $PREFIX_ABS/$RELEASE $samba_tdbrestore
127 add_userparameters0()
129 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
130 $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb <<EOF
131 dn: cn=localdc,cn=domain controllers,dc=release-4-1-0rc3,dc=samba,dc=corp
132 changetype: modify
133 replace: userParameters
134 userParameters:: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC
135 AAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQABoACAAB
136 AEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZw
137 BGAGwAYQBnAHMAMQAwMGUwMDAxMBYACAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawAwMDAw
138 MDAwMBIACAABAEMAdAB4AFMAaABhAGQAbwB3ADAxMDAwMDAwKAAIAAEAQwB0AHgATQBhAH
139 gAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAIAAEAQwB0AHgATQBh
140 AHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwHAAIAAEAQw
141 B0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAwIgAIAAEAQwB0AHgASwBlAHkA
142 YgBvAGEAcgBkAEwAYQB5AG8AdQB0ADAwMDAwMDAwKgACAAEAQwB0AHgATQBpAG4ARQBuAG
143 MAcgB5AHAAdABpAG8AbgBMAGUAdgBlAGwAMDAgAAIAAQBDAHQAeABXAG8AcgBrAEQAaQBy
144 AGUAYwB0AG8AcgB5ADAwIAACAAEAQwB0AHgATgBXAEwAbwBnAG8AbgBTAGUAcgB2AGUAcg
145 AwMBgAJAABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByADVjNWM3MzYxNzQ3NTcyNmU2NTVj
146 NzAyZTYyNjk2NDZmNmUwMCIABgABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByAEQAcgBpAH
147 YAZQA1MDNhMDAgADoAAQBDAHQAeABXAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADVjNWM3
148 MzYxNzQ3NTcyNmU2NTVjNzA3MjZmNjY2OTZjNjU3NDczNjU1YzcwMmU2MjY5NjQ2ZjZlMD
149 AiAAIAAQBDAHQAeABJAG4AaQB0AGkAYQBsAFAAcgBvAGcAcgBhAG0AMDAiAAIAAQBDAHQA
150 eABDAGEAbABsAGIAYQBjAGsATgB1AG0AYgBlAHIAMDA=
155 add_userparameters1()
157 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
158 $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb <<EOF
159 dn: cn=administrator,cn=users,dc=release-4-1-0rc3,dc=samba,dc=corp
160 changetype: modify
161 replace: userParameters
162 userParameters: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC
163 AAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQABoACAAB
164 AEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZw
165 BGAGwAYQBnAHMAMQAwMGUwMDAxMBYACAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawAwMDAw
166 MDAwMBIACAABAEMAdAB4AFMAaABhAGQAbwB3ADAxMDAwMDAwKAAIAAEAQwB0AHgATQBhAH
167 gAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAIAAEAQwB0AHgATQBh
168 AHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwHAAIAAEAQw
169 B0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAwIgAIAAEAQwB0AHgASwBlAHkA
170 YgBvAGEAcgBkAEwAYQB5AG8AdQB0ADAwMDAwMDAwKgACAAEAQwB0AHgATQBpAG4ARQBuAG
171 MAcgB5AHAAdABpAG8AbgBMAGUAdgBlAGwAMDAgAAIAAQBDAHQAeABXAG8AcgBrAEQAaQBy
172 AGUAYwB0AG8AcgB5ADAwIAACAAEAQwB0AHgATgBXAEwAbwBnAG8AbgBTAGUAcgB2AGUAcg
173 AwMBgAJAABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByADVjNWM3MzYxNzQ3NTcyNmU2NTVj
174 NzAyZTYyNjk2NDZmNmUwMCIABgABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByAEQAcgBpAH
175 YAZQA1MDNhMDAgADoAAQBDAHQAeABXAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADVjNWM3
176 MzYxNzQ3NTcyNmU2NTVjNzA3MjZmNjY2OTZjNjU3NDczNjU1YzcwMmU2MjY5NjQ2ZjZlMD
177 AiAAIAAQBDAHQAeABJAG4AaQB0AGkAYQBsAFAAcgBvAGcAcgBhAG0AMDAiAAIAAQBDAHQA
178 eABDAGEAbABsAGIAYQBjAGsATgB1AG0AYgBlAHIAMDA=
183 add_userparameters2()
185 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
186 $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb <<EOF
187 dn: cn=krbtgt,cn=users,dc=release-4-1-0rc3,dc=samba,dc=corp
188 changetype: modify
189 replace: userParameters
190 userParameters:: Q3R4Q2ZnUHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
191 CAgUAsaCAFDdHhDZmdQcmVzZW5045S15pSx5oiw44GiIAIBQ3R4V0ZQcm9maWxlUGF0aOOAsBgCAU
192 N0eFdGSG9tZURpcuOAsCICAUN0eFdGSG9tZURpckRyaXZl44CwEggBQ3R4U2hhZG9344Sw44Cw44C
193 w44CwLggBQ3R4TWF4RGlzY29ubmVjdGlvblRpbWXjgaXjjLnjkLDjgLAoCAFDdHhNYXhDb25uZWN0
194 aW9uVGltZeOAtOOct+aIseOAsBwIAUN0eE1heElkbGVUaW1l44Gj45yy46Sw44CwIAIBQ3R4V29ya
195 0RpcmVjdG9yeeOAsBgIAUN0eENmZ0ZsYWdzMeOAsOOBpuOYsuOAuCICAUN0eEluaXRpYWxQcm9ncm
196 Ft44Cw
202 add_userparameters3()
204 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
205 $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb <<EOF
206 dn: cn=guest,cn=users,dc=release-4-1-0rc3,dc=samba,dc=corp
207 changetype: modify
208 replace: userParameters
209 userParameters:: QwAAAHQAAAB4AAAAQwAAAGYAAABnAAAAUAAAAHIAAABlAAAAcwAAAGUAAABuA
210 AAAdAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAA
211 AgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACA
212 AAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAUAAAAAsAAAAaAAAACAAAAAEAAABDAAAAdAAA
213 AHgAAABDAAAAZgAAAGcAAABQAAAAcgAAAGUAAABzAAAAZQAAAG4AAAB0AAAANQA1ADEAZQAwAGIAY
214 gAwACAAAAACAAAAAQAAAEMAAAB0AAAAeAAAAFcAAABGAAAAUAAAAHIAAABvAAAAZgAAAGkAAABsAA
215 AAZQAAAFAAAABhAAAAdAAAAGgAAAAwADAAGAAAAAIAAAABAAAAQwAAAHQAAAB4AAAAVwAAAEYAAAB
216 IAAAAbwAAAG0AAABlAAAARAAAAGkAAAByAAAAMAAwACIAAAACAAAAAQAAAEMAAAB0AAAAeAAAAFcA
217 AABGAAAASAAAAG8AAABtAAAAZQAAAEQAAABpAAAAcgAAAEQAAAByAAAAaQAAAHYAAABlAAAAMAAwA
218 BIAAAAIAAAAAQAAAEMAAAB0AAAAeAAAAFMAAABoAAAAYQAAAGQAAABvAAAAdwAAADAAMQAwADAAMA
219 AwADAAMAAuAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABEAAAAaQAAAHMAAABjAAA
220 AbwAAAG4AAABuAAAAZQAAAGMAAAB0AAAAaQAAAG8AAABuAAAAVAAAAGkAAABtAAAAZQAAAGUAMAA5
221 ADMAMAA0ADAAMAAoAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABDAAAAbwAAAG4AA
222 ABuAAAAZQAAAGMAAAB0AAAAaQAAAG8AAABuAAAAVAAAAGkAAABtAAAAZQAAADQAMAA3ADcAMQBiAD
223 AAMAAcAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABJAAAAZAAAAGwAAABlAAAAVAA
224 AAGkAAABtAAAAZQAAAGMAMAAyADcAMAA5ADAAMAAgAAAAAgAAAAEAAABDAAAAdAAAAHgAAABXAAAA
225 bwAAAHIAAABrAAAARAAAAGkAAAByAAAAZQAAAGMAAAB0AAAAbwAAAHIAAAB5AAAAMAAwABgAAAAIA
226 AAAAQAAAEMAAAB0AAAAeAAAAEMAAABmAAAAZwAAAEYAAABsAAAAYQAAAGcAAABzAAAAMQAAADAAMA
227 BmADAAMgA2ADgAMAAiAAAAAgAAAAEAAABDAAAAdAAAAHgAAABJAAAAbgAAAGkAAAB0AAAAaQAAAGE
228 AAABsAAAAUAAAAHIAAABvAAAAZwAAAHIAAABhAAAAbQAAADAAMAA=
234 check_expected_userparameters()
236 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
237 tmpldif=$PREFIX_ABS/$RELEASE/expected-userParameters-after-dbcheck.ldif.tmp
238 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb userParameters=* --scope=sub -b DC=release-4-1-0rc3,DC=samba,DC=corp userParameters --sorted | grep -v \# >$tmpldif
239 diff -u $tmpldif $release_dir/expected-userParameters-after-dbcheck.ldif
240 if [ "$?" != "0" ]; then
241 return 1
244 return 0
247 reindex()
249 $PYTHON $BINDIR/samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
252 do_current_version_mod()
254 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
255 # Confirm (in combination with the ldbsearch below) that
256 # changing the attribute with current Samba fixes it, and that
257 # a fixed attriute isn't unfixed by dbcheck.
258 tmpldif=$release_dir/sudoers2-mod.ldif
259 $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $tmpldif
261 return 0
264 check_expected_before_values()
266 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
267 tmpldif=$PREFIX_ABS/$RELEASE/expected-replpropertymetadata-before-dbcheck.ldif.tmp
268 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary >$tmpldif
269 diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck.ldif
270 if [ "$?" != "0" ]; then
271 return 1
274 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything2 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary | grep -v originating_change_time | grep -v whenChanged >$tmpldif
276 # Here we remove originating_change_time and whenChanged as
277 # these are time-dependent, caused by the ldbmodify above.
279 diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck2.ldif
280 if [ "$?" != "0" ]; then
281 return 1
284 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything3 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary >$tmpldif
285 diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck3.ldif
286 if [ "$?" != "0" ]; then
287 return 1
289 elif [ x$RELEASE = x"release-4-5-0-pre1" ]; then
290 tmpldif=$PREFIX_ABS/$RELEASE/rootdse-version.initial.txt.tmp
291 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope=base -b '' | grep highestCommittedUSN >$tmpldif
292 diff -u $tmpldif $release_dir/rootdse-version.initial.txt
293 if [ "$?" != "0" ]; then
294 return 1
297 return 0
300 # This should 'fail', because it returns the number of modified records
301 dbcheck_objectclass()
303 if [ x$RELEASE = x"release-4-1-6-partial-object" ]; then
304 $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --attrs=objectclass "$@"
305 else
306 return 1
310 # This should 'fail', because it returns the number of wrong records, which it must if we did not skip the deleted objects
311 dbcheck_deleted_objects()
313 if [ x$RELEASE = x"alpha13" ]; then
314 basedn=$($ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope base -b "" defaultNamingContext | grep -i defaultNamingContext | cut -d\ -f 2)
316 $PYTHON $BINDIR/samba-tool dbcheck -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "cn=deleted objects,$basedn" --scope base "$@"
317 else
318 return 1
322 # This should 'fail', because it returns the number of modified records
323 dbcheck()
325 $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
328 check_expected_after_values()
330 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
331 tmpldif=$PREFIX_ABS/$RELEASE/expected-replpropertymetadata-after-dbcheck.ldif.tmp
332 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary >$tmpldif
333 diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck.ldif
334 if [ "$?" != "0" ]; then
335 return 1
337 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything2 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary | grep -v originating_change_time | grep -v whenChanged >$tmpldif
338 diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck2.ldif
339 if [ "$?" != "0" ]; then
340 return 1
342 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything3 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary >$tmpldif
343 diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck3.ldif
344 if [ "$?" != "0" ]; then
345 return 1
347 # Check DomainDNS partition for replica locations
348 tmpldif=$PREFIX_ABS/$RELEASE/expected-replica-locations-after-dbcheck.ldif.tmp
349 $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=49a69498-9a85-48af-9be4-aa0b3e0054f9 --scope=one -b CN=Partitions,CN=Configuration,DC=release-4-1-0rc3,DC=samba,DC=corp msDS-NC-Replica-Locations >$tmpldif
350 diff -u $tmpldif $release_dir/expected-replica-locations-after-dbcheck.ldif
351 if [ "$?" != "0" ]; then
352 return 1
354 # Check ForestDNS partition for replica locations
355 $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=7d2a15af-c0d4-487c-847e-e036292bcc65 --scope=one -b CN=Partitions,CN=Configuration,DC=release-4-1-0rc3,DC=samba,DC=corp msDS-NC-Replica-Locations >$tmpldif
356 diff -u $tmpldif $release_dir/expected-replica-locations-after-dbcheck2.ldif
357 if [ "$?" != "0" ]; then
358 return 1
360 elif [ x$RELEASE = x"release-4-5-0-pre1" ]; then
361 echo $RELEASE checking after values
362 tmpldif=$PREFIX_ABS/$RELEASE/expected-links-after-dbcheck.ldif.tmp
363 $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --show-recycled --show-deleted --show-deactivated-link --reveal member memberOf lastKnownParent objectCategory lastKnownParent wellKnownObjects legacyExchangeDN sAMAccountType uSNChanged --sorted >$tmpldif
364 diff -u $tmpldif $release_dir/expected-links-after-dbcheck.ldif
365 if [ "$?" != "0" ]; then
366 return 1
369 # If in the future dbcheck has to make a change recorded in replPropertyMetadata,
370 # this test will fail and can be removed.
371 tmpversion=$PREFIX_ABS/$RELEASE/rootdse-version.final.txt.tmp
372 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope=base -b '' | grep highestCommittedUSN >$tmpversion
373 diff -u $tmpversion $release_dir/rootdse-version.final.txt
374 if [ "$?" != "0" ]; then
375 return 1
378 return 0
381 check_forced_duplicate_values()
383 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
384 ldif=$release_dir/forced-duplicate-value-for-dbcheck.ldif
385 TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb $ldif
386 if [ "$?" != "0" ]; then
387 return 1
389 else
390 return 0
394 # This should 'fail', because it returns the number of modified records
395 dbcheck_after_dup()
397 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
398 $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=administrator,cn=users,DC=release-4-1-0rc3,DC=samba,DC=corp "$@"
399 else
400 return 1
404 check_expected_after_dup_values()
406 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
407 tmpldif=$PREFIX_ABS/$RELEASE/expected-otherphone-after-dbcheck.ldif.tmp
408 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=administrator --scope=base -b cn=administrator,cn=users,DC=release-4-1-0rc3,DC=samba,DC=corp otherHomePhone --sorted --show-binary | grep -v \# | sort >$tmpldif
409 diff -u $tmpldif $release_dir/expected-otherphone-after-dbcheck.ldif
410 if [ "$?" != "0" ]; then
411 return 1
414 return 0
417 # But having fixed it all up, this should pass
418 dbcheck_clean()
420 $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
423 # This should 'fail', because it returns the number of modified records.
424 # We don't need to run this against 4.1 releases
425 dbcheck_acl_reset()
427 if [ x$RELEASE = x"release-4-0-0" -o x$RELEASE = x"alpha13" ]; then
428 $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
429 else
430 return 1
433 # But having fixed it all up, this should pass.
434 # We don't need to run this against 4.1.0rc3
435 dbcheck_acl_reset_clean()
437 if [ x$RELEASE != x"release-4-1-0rc3" ]; then
438 $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
442 # This should 'fail', because it returns the number of modified records
443 dbcheck2()
445 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
446 $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
447 else
448 exit 1
451 # But having fixed it all up, this should pass
452 dbcheck_clean2()
454 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
455 $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
459 rm_deleted_objects()
461 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
462 TZ=UTC $ldbdel -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb 'CN=Deleted Objects,DC=RELEASE-4-1-0RC3,DC=SAMBA,DC=CORP'
463 if [ "$?" != "0" ]; then
464 return 1
466 else
467 return 0
470 # This should 'fail', because it returns the number of modified records
471 dbcheck3()
473 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
474 $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
475 else
476 exit 1
479 # But having fixed it all up, this should pass
480 dbcheck_clean3()
482 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
483 $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "$@"
487 check_expected_after_deleted_objects()
489 if [ x$RELEASE = x"release-4-1-0rc3" ]; then
490 tmpldif=$PREFIX_ABS/$RELEASE/expected-deleted_objects-after-dbcheck.ldif.tmp
491 TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=deleted\ objects --scope=base -b cn=deleted\ objects,DC=release-4-1-0rc3,DC=samba,DC=corp objectClass description isDeleted isCriticalSystemObject objectGUID showInAdvancedViewOnly systemFlags --sorted --show-binary --show-deleted | grep -v \# | sort >$tmpldif
492 diff -u $tmpldif $release_dir/expected-deleted_objects-after-dbcheck.ldif
493 if [ "$?" != "0" ]; then
494 return 1
497 return 0
500 referenceprovision()
502 if [ x$RELEASE = x"release-4-0-0" ]; then
503 $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 --base-schema=2008_R2_old
505 # on top of this, also apply 2008R2 changes we accidentally missed in the past
506 $PYTHON $BINDIR/samba-tool domain schemaupgrade -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --ldf-file=samba-4.7-missing-for-schema45.ldif,fix-forest-rev.ldf
510 ldapcmp()
512 if [ x$RELEASE = x"release-4-0-0" ]; then
513 $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,displayName,msDS-SupportedEncryptionTypes,servicePrincipalName
517 ldapcmp_sd()
519 if [ x$RELEASE = x"release-4-0-0" ]; then
520 $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 --filter=servicePrincipalName
524 remove_directory $PREFIX_ABS/${RELEASE}_reference
526 testit $RELEASE undump || failed=$(expr $failed + 1)
527 testit "reindex" reindex || failed=$(expr $failed + 1)
528 testit "current_version_mod" do_current_version_mod || failed=$(expr $failed + 1)
529 testit "check_expected_before_values" check_expected_before_values || failed=$(expr $failed + 1)
530 testit_expect_failure "dbcheck_deleted_objects" dbcheck_deleted_objects || failed=$(expr $failed + 1)
531 testit_expect_failure "dbcheck_objectclass" dbcheck_objectclass || failed=$(expr $failed + 1)
532 testit_expect_failure "dbcheck" dbcheck || failed=$(expr $failed + 1)
533 testit "check_expected_after_values" check_expected_after_values || failed=$(expr $failed + 1)
534 testit "check_forced_duplicate_values" check_forced_duplicate_values || failed=$(expr $failed + 1)
535 testit_expect_failure "dbcheck_after_dup" dbcheck_after_dup || failed=$(expr $failed + 1)
536 testit "check_expected_after_dup_values" check_expected_after_dup_values || failed=$(expr $failed + 1)
537 testit "dbcheck_clean" dbcheck_clean || failed=$(expr $failed + 1)
538 testit_expect_failure "dbcheck_acl_reset" dbcheck_acl_reset || failed=$(expr $failed + 1)
539 testit "dbcheck_acl_reset_clean" dbcheck_acl_reset_clean || failed=$(expr $failed + 1)
540 testit "add_userparameters0" add_userparameters1 || failed=$(expr $failed + 1)
541 testit "add_userparameters1" add_userparameters1 || failed=$(expr $failed + 1)
542 testit "add_userparameters2" add_userparameters2 || failed=$(expr $failed + 1)
543 testit "add_userparameters3" add_userparameters3 || failed=$(expr $failed + 1)
544 testit_expect_failure "dbcheck2" dbcheck2 || failed=$(expr $failed + 1)
545 testit "dbcheck_clean2" dbcheck_clean2 || failed=$(expr $failed + 1)
546 testit "check_expected_userparameters" check_expected_userparameters || failed=$(expr $failed + 1)
547 testit "rm_deleted_objects" rm_deleted_objects || failed=$(expr $failed + 1)
548 # We must re-index again because rm_deleted_objects went behind
549 # the back of the main sam.ldb.
550 testit "reindex2" reindex || failed=$(expr $failed + 1)
551 testit_expect_failure "dbcheck3" dbcheck3 || failed=$(expr $failed + 1)
552 testit "dbcheck_clean3" dbcheck_clean3 || failed=$(expr $failed + 1)
553 testit "check_expected_after_deleted_objects" check_expected_after_deleted_objects || failed=$(expr $failed + 1)
554 testit "referenceprovision" referenceprovision || failed=$(expr $failed + 1)
555 testit "ldapcmp" ldapcmp || failed=$(expr $failed + 1)
556 testit "ldapcmp_sd" ldapcmp_sd || failed=$(expr $failed + 1)
558 if [ -d $PREFIX_ABS/${RELEASE} ]; then
559 rm -fr $PREFIX_ABS/${RELEASE}
562 remove_directory $PREFIX_ABS/${RELEASE}_reference
564 exit $failed