selftest: Add ldapcmp to ensure upgradeprovision of a fresh DB is a no-op
[Samba/gbeck.git] / testprogs / blackbox / upgradeprovision-alpha13.sh
blob16731b10771861f9602d4d7f6cb66362f32fcb9e
1 #!/bin/sh
3 if [ $# -lt 1 ]; then
4 cat <<EOF
5 Usage: dbcheck.sh PREFIX
6 EOF
7 exit 1;
8 fi
10 PREFIX_ABS="$1"
11 shift 1
13 . `dirname $0`/subunit.sh
15 alpha13_dir=`dirname $0`/../../source4/selftest/provisions/alpha13
17 alpha13() {
18 if test -x $BINDIR/tdbrestore;
19 then
20 `dirname $0`/../../source4/selftest/provisions/undump.sh $alpha13_dir $PREFIX_ABS/alpha13_upgrade $BINDIR/tdbrestore
21 `dirname $0`/../../source4/selftest/provisions/undump.sh $alpha13_dir $PREFIX_ABS/alpha13_upgrade_full $BINDIR/tdbrestore
22 else
23 `dirname $0`/../../source4/selftest/provisions/undump.sh $alpha13_dir $PREFIX_ABS/alpha13_upgrade
24 `dirname $0`/../../source4/selftest/provisions/undump.sh $alpha13_dir $PREFIX_ABS/alpha13_upgrade_full
26 cp -a $alpha13_dir/private/*.keytab $PREFIX_ABS/alpha13_upgrade/private/
27 cp -a $alpha13_dir/sysvol $PREFIX_ABS/alpha13_upgrade/
28 mkdir $PREFIX_ABS/alpha13_upgrade/etc/
29 cat $alpha13_dir/etc/smb.conf.template | \
30 sed "s|@@PREFIX@@|$PREFIX_ABS/alpha13_upgrade|g" \
31 > $PREFIX_ABS/alpha13_upgrade/etc/smb.conf
33 cp -a $alpha13_dir/private/*.keytab $PREFIX_ABS/alpha13_upgrade_full/private/
34 cp -a $alpha13_dir/sysvol $PREFIX_ABS/alpha13_upgrade_full/
35 mkdir $PREFIX_ABS/alpha13_upgrade_full/etc/
36 cat $alpha13_dir/etc/smb.conf.template | \
37 sed "s|@@PREFIX@@|$PREFIX_ABS/alpha13_upgrade_full|g" \
38 > $PREFIX_ABS/alpha13_upgrade_full/etc/smb.conf
41 remove_dns_user() {
42 # This is done, because otherwise the upgrdeprovision will not run without --full
43 $BINDIR/ldbdel -H tdb://$PREFIX_ABS/alpha13_upgrade/private/sam.ldb cn=dns,cn=users,dc=alpha13,dc=samba,dc=corp
46 reindex() {
47 $BINDIR/samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS/alpha13_upgrade/private/sam.ldb $@
50 # This should 'fail', because it returns the number of modified records
51 dbcheck() {
52 $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/alpha13_upgrade/private/sam.ldb $@
55 dbcheck_clean() {
56 $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/alpha13_upgrade/private/sam.ldb $@
59 # This should 'fail', because it returns the number of modified records
60 dbcheck_full() {
61 $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/alpha13_upgrade_full/private/sam.ldb $@
64 dbcheck_full_clean() {
65 $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/alpha13_upgrade_full/private/sam.ldb $@
68 upgradeprovision() {
69 $PYTHON $BINDIR/samba_upgradeprovision -s "$PREFIX_ABS/alpha13_upgrade/etc/smb.conf" --debugchange
72 upgradeprovision_full() {
73 $PYTHON $BINDIR/samba_upgradeprovision -s "$PREFIX_ABS/alpha13_upgrade_full/etc/smb.conf" --full --debugchange
76 samba_upgradedns() {
77 $PYTHON $BINDIR/samba_upgradedns --dns-backend=SAMBA_INTERNAL -s "$PREFIX_ABS/alpha13_upgrade_full/etc/smb.conf"
80 referenceprovision() {
81 $PYTHON $BINDIR/samba-tool domain provision --server-role="dc" --domain=SAMBA --host-name=ares --realm=alpha13.samba.corp --targetdir=$PREFIX_ABS/alpha13_upgrade_reference --use-ntvfs
84 ldapcmp() {
85 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/alpha13_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/alpha13_upgrade_full/private/sam.ldb --two --filter=dNSProperty,dnsRecord,cn,displayName,versionNumber,systemFlags,msDS-HasInstantiatedNCs --skip-missing-dn
88 if [ -d $PREFIX_ABS/alpha13_upgrade ]; then
89 rm -fr $PREFIX_ABS/alpha13_upgrade
92 if [ -d $PREFIX_ABS/alpha13_upgrade_full ]; then
93 rm -fr $PREFIX_ABS/alpha13_upgrade_full
96 if [ -d $PREFIX_ABS/alpha13_upgrade_reference ]; then
97 rm -fr $PREFIX_ABS/alpha13_upgrade_reference
100 if [ -d $alpha13_dir ]; then
101 testit "alpha13" alpha13
102 testit "remove_dns_user" remove_dns_user
103 testit "upgradeprovision" upgradeprovision
104 testit "upgradeprovision_full" upgradeprovision_full
105 testit "reindex" reindex
106 testit_expect_failure "dbcheck" dbcheck
107 testit "dbcheck_clean" dbcheck_clean
108 testit_expect_failure "dbcheck_full" dbcheck_full
109 testit "dbcheck_full_clean" dbcheck_full_clean
110 testit "referenceprovision" referenceprovision
111 testit "samba_upgradedns" samba_upgradedns
112 testit "ldapcmp" ldapcmp
113 else
114 subunit_start_test "alpha13"
115 subunit_skip_test "alpha13" <<EOF
116 no test provision
119 subunit_start_test "remove_dns_user"
120 subunit_skip_test "remove_dns_user" <<EOF
121 no test provision
124 subunit_start_test "upgradeprovision"
125 subunit_skip_test "upgradeprovision" <<EOF
126 no test provision
128 subunit_start_test "upgradeprovision_full"
129 subunit_skip_test "upgradeprovision_full" <<EOF
130 no test provision
132 subunit_start_test "reindex"
133 subunit_skip_test "reindex" <<EOF
134 no test provision
136 subunit_start_test "dbcheck"
137 subunit_skip_test "dbcheck" <<EOF
138 no test provision
140 subunit_start_test "dbcheck_clean"
141 subunit_skip_test "dbcheck_clean" <<EOF
142 no test provision
144 subunit_start_test "dbcheck_full"
145 subunit_skip_test "dbcheck_full" <<EOF
146 no test provision
148 subunit_start_test "dbcheck_full_clean"
149 subunit_skip_test "dbcheck_full_clean" <<EOF
150 no test provision
152 subunit_start_test "samba_dnsupgrade"
153 subunit_skip_test "samba_dnsupgrade" <<EOF
154 no test provision
156 subunit_start_test "referenceprovision"
157 subunit_skip_test "referenceprovision" <<EOF
158 no test provision
160 subunit_start_test "ldapcmp"
161 subunit_skip_test "ldapcmp" <<EOF
162 no test provision
166 exit $failed