fbc9e9b22d408881acff9452cc78a7a71a715a4f
[kai/samba-autobuild/.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 undump() {
19        if test -x $BINDIR/tdbrestore;
20        then
21         `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE $BINDIR/tdbrestore
22        else
23         `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE
24        fi
25 }
26
27 reindex() {
28        $PYTHON $BINDIR/samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
29 }
30
31 # This should 'fail', because it returns the number of modified records
32 dbcheck() {
33        $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
34 }
35 # But having fixed it all up, this should pass
36 dbcheck_clean() {
37        $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
38 }
39
40 # This should 'fail', because it returns the number of modified records.  
41 # We don't need to run this against 4.1 releases
42 dbcheck_acl_reset() {
43     if [ x$RELEASE = x"release-4-0-0" -o x$RELEASE = x"alpha13" ]; then
44        $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
45     else 
46         return 1
47     fi
48 }
49 # But having fixed it all up, this should pass.  
50 # We don't need to run this against 4.1.0rc3
51 dbcheck_acl_reset_clean() {
52     if [ x$RELEASE != x"release-4-1-0rc3" ]; then
53        $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
54     fi
55 }
56
57 referenceprovision() {
58     if [ x$RELEASE == x"release-4-0-0" ]; then
59         $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
60     fi
61 }
62
63 ldapcmp() {
64     if [ x$RELEASE == x"release-4-0-0" ]; then
65          $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
66     fi
67 }
68
69 ldapcmp_sd() {
70     if [ x$RELEASE == x"release-4-0-0" ]; then
71         $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
72     fi
73 }
74
75 if [ -d $release_dir ]; then
76     testit $RELEASE undump
77     testit "reindex" reindex
78     testit_expect_failure "dbcheck" dbcheck
79     testit "dbcheck_clean" dbcheck_clean
80     testit_expect_failure "dbcheck_acl_reset" dbcheck_acl_reset
81     testit "dbcheck_acl_reset_clean" dbcheck_acl_reset_clean
82     testit "referenceprovision" referenceprovision
83     testit "ldapcmp" ldapcmp
84     testit "ldapcmp_sd" ldapcmp_sd
85 else
86     subunit_start_test $RELEASE
87     subunit_skip_test $RELEASE <<EOF
88 no test provision
89 EOF
90
91     subunit_start_test "reindex"
92     subunit_skip_test "reindex" <<EOF
93 no test provision
94 EOF
95     subunit_start_test "dbcheck"
96     subunit_skip_test "dbcheck" <<EOF
97 no test provision
98 EOF
99     subunit_start_test "dbcheck_clean"
100     subunit_skip_test "dbcheck_clean" <<EOF
101 no test provision
102 EOF
103     subunit_start_test "dbcheck_acl_reset"
104     subunit_skip_test "dbcheck_acl_reset" <<EOF
105 no test provision
106 EOF
107     subunit_start_test "dbcheck_clean_acl_reset"
108     subunit_skip_test "dbcheck_clean_acl_reset" <<EOF
109 no test provision
110 EOF
111     subunit_start_test "referenceprovision"
112     subunit_skip_test "referenceprovision" <<EOF
113 no test provision
114 EOF
115     subunit_start_test "ldapcmp"
116     subunit_skip_test "ldapcmp" <<EOF
117 no test provision
118 EOF
119     subunit_start_test "ldapcmp_sd"
120     subunit_skip_test "ldapcmp_sd" <<EOF
121 no test provision
122 EOF
123 fi
124
125 if [ -d $PREFIX_ABS/${RELEASE} ]; then
126   rm -fr $PREFIX_ABS/${RELEASE}
127 fi
128
129 if [ -d $PREFIX_ABS/${RELEASE}_reference ]; then
130   rm -fr $PREFIX_ABS/${RELEASE}_reference
131 fi
132
133 exit $failed