selftest: Run dbcheck and improved upgrdeprovision tests against release-4-0-0
[Samba/gebeck_regimport.git] / testprogs / blackbox / upgradeprovision-oldrelease.sh
blob593babcd5a82217c2fc9e979bc6308afb5fb838a
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 . `dirname $0`/subunit.sh
16 release_dir=`dirname $0`/../../source4/selftest/provisions/${RELEASE}
18 undump() {
19 if test -x $BINDIR/tdbrestore;
20 then
21 `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade $BINDIR/tdbrestore
22 `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade_full $BINDIR/tdbrestore
23 else
24 `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade
25 `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade_full
27 cp -a $release_dir/private/*.keytab $PREFIX_ABS/${RELEASE}_upgrade/private/
28 cp -a $release_dir/sysvol $PREFIX_ABS/${RELEASE}_upgrade/
29 mkdir $PREFIX_ABS/${RELEASE}_upgrade/etc/
30 cat $release_dir/etc/smb.conf.template | \
31 sed "s|@@PREFIX@@|$PREFIX_ABS/${RELEASE}_upgrade|g" \
32 > $PREFIX_ABS/${RELEASE}_upgrade/etc/smb.conf
34 cp -a $release_dir/private/*.keytab $PREFIX_ABS/${RELEASE}_upgrade_full/private/
35 cp -a $release_dir/sysvol $PREFIX_ABS/${RELEASE}_upgrade_full/
36 mkdir $PREFIX_ABS/${RELEASE}_upgrade_full/etc/
37 cat $release_dir/etc/smb.conf.template | \
38 sed "s|@@PREFIX@@|$PREFIX_ABS/${RELEASE}_upgrade_full|g" \
39 > $PREFIX_ABS/${RELEASE}_upgrade_full/etc/smb.conf
42 remove_dns_user() {
43 if [ x$RELEASE != x"release-4-0-0" ]; then
44 # This is done, because otherwise the upgrdeprovision will not run without --full
45 $BINDIR/ldbdel -H tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb cn=dns,cn=users,dc=${RELEASE},dc=samba,dc=corp
49 reindex() {
50 $BINDIR/samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb $@
53 # This should 'fail', because it returns the number of modified records
54 dbcheck() {
55 $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb $@
58 dbcheck_clean() {
59 $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb $@
62 # This should 'fail', because it returns the number of modified records
63 dbcheck_full() {
64 $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb $@
67 dbcheck_full_clean() {
68 $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb $@
71 upgradeprovision() {
72 $PYTHON $BINDIR/samba_upgradeprovision -s "$PREFIX_ABS/${RELEASE}_upgrade/etc/smb.conf" --debugchange
75 upgradeprovision_full() {
76 $PYTHON $BINDIR/samba_upgradeprovision -s "$PREFIX_ABS/${RELEASE}_upgrade_full/etc/smb.conf" --full --debugchange
79 samba_upgradedns() {
80 $PYTHON $BINDIR/samba_upgradedns --dns-backend=SAMBA_INTERNAL -s "$PREFIX_ABS/${RELEASE}_upgrade_full/etc/smb.conf"
83 referenceprovision() {
84 $PYTHON $BINDIR/samba-tool domain provision --server-role="dc" --domain=SAMBA --host-name=ares --realm=${RELEASE}.samba.corp --targetdir=$PREFIX_ABS/${RELEASE}_upgrade_reference --use-ntvfs --host-ip=127.0.0.1 --host-ip6=::1
87 ldapcmp() {
88 if [ x$RELEASE != x"alpha13" ]; then
89 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb --two --skip-missing-dn --filter=dnsRecord
93 ldapcmp_full() {
94 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb --two --filter=dNSProperty,dnsRecord,cn,displayName,versionNumber,systemFlags,msDS-HasInstantiatedNCs --skip-missing-dn
97 ldapcmp_sd() {
98 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb --two --sd --skip-missing-dn
101 ldapcmp_full_sd() {
102 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb --two --sd --skip-missing-dn
105 if [ -d $PREFIX_ABS/${RELEASE}_upgrade ]; then
106 rm -fr $PREFIX_ABS/${RELEASE}_upgrade
109 if [ -d $PREFIX_ABS/${RELEASE}_upgrade_full ]; then
110 rm -fr $PREFIX_ABS/${RELEASE}_upgrade_full
113 if [ -d $PREFIX_ABS/${RELEASE}_upgrade_reference ]; then
114 rm -fr $PREFIX_ABS/${RELEASE}_upgrade_reference
117 if [ -d $release_dir ]; then
118 testit $RELEASE undump
119 testit "remove_dns_user" remove_dns_user
120 testit "upgradeprovision" upgradeprovision
121 testit "upgradeprovision_full" upgradeprovision_full
122 testit "reindex" reindex
123 # So far, only releases before 4.0.0rc6 need a dbcheck if upgradeprovision has already been run
124 if [ x$RELEASE != x"release-4-0-0" ]; then
125 testit_expect_failure "dbcheck" dbcheck
127 testit_expect_failure "dbcheck_full" dbcheck_full
128 testit "dbcheck_clean" dbcheck_clean
129 testit "dbcheck_full_clean" dbcheck_full_clean
130 testit "referenceprovision" referenceprovision
131 testit "samba_upgradedns" samba_upgradedns
132 testit "ldapcmp" ldapcmp
133 testit "ldapcmp_sd" ldapcmp_sd
134 testit "ldapcmp_full_sd" ldapcmp_full_sd
135 else
136 subunit_start_test "${RELEASE}"
137 subunit_skip_test "${RELEASE}" <<EOF
138 no test provision
141 subunit_start_test "remove_dns_user"
142 subunit_skip_test "remove_dns_user" <<EOF
143 no test provision
146 subunit_start_test "upgradeprovision"
147 subunit_skip_test "upgradeprovision" <<EOF
148 no test provision
150 subunit_start_test "upgradeprovision_full"
151 subunit_skip_test "upgradeprovision_full" <<EOF
152 no test provision
154 subunit_start_test "reindex"
155 subunit_skip_test "reindex" <<EOF
156 no test provision
158 subunit_start_test "dbcheck"
159 subunit_skip_test "dbcheck" <<EOF
160 no test provision
162 subunit_start_test "dbcheck_clean"
163 subunit_skip_test "dbcheck_clean" <<EOF
164 no test provision
166 # So far, only releases before 4.0.0rc6 need a dbcheck if upgradeprovision has already been run
167 if [ x$RELEASE != x"release-4-0-0" ]; then
168 subunit_start_test "dbcheck_full"
169 subunit_skip_test "dbcheck_full" <<EOF
170 no test provision
173 subunit_start_test "dbcheck_full_clean"
174 subunit_skip_test "dbcheck_full_clean" <<EOF
175 no test provision
177 subunit_start_test "samba_dnsupgrade"
178 subunit_skip_test "samba_dnsupgrade" <<EOF
179 no test provision
181 subunit_start_test "referenceprovision"
182 subunit_skip_test "referenceprovision" <<EOF
183 no test provision
185 subunit_start_test "ldapcmp"
186 subunit_skip_test "ldapcmp" <<EOF
187 no test provision
189 subunit_start_test "ldapcmp_full"
190 subunit_skip_test "ldapcmp_full" <<EOF
191 no test provision
193 subunit_start_test "ldapcmp_sd"
194 subunit_skip_test "ldapcmp_sd" <<EOF
195 no test provision
197 subunit_start_test "ldapcmp_full_sd"
198 subunit_skip_test "ldapcmp_full_sd" <<EOF
199 no test provision
203 exit $failed