a06e025c2a7534ef9e2474a758b8f13fffb9c6b4
[mat/samba.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 dbcheck_acl_reset() {
42        $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
43 }
44 # But having fixed it all up, this should pass
45 dbcheck_acl_reset_clean() {
46        $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@
47 }
48
49 referenceprovision() {
50         $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
51 }
52
53 ldapcmp() {
54     if [ x$RELEASE != x"alpha13" ]; then
55          $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
56     fi
57 }
58
59 ldapcmp_sd() {
60     if [ x$RELEASE != x"alpha13" ]; then
61         $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
62     fi
63 }
64
65 if [ -d $release_dir ]; then
66     testit $RELEASE undump
67     testit "reindex" reindex
68     testit_expect_failure "dbcheck" dbcheck
69     testit "dbcheck_clean" dbcheck_clean
70     testit_expect_failure "dbcheck_acl_reset" dbcheck_acl_reset
71     testit "dbcheck_acl_reset_clean" dbcheck_acl_reset_clean
72     testit "referenceprovision" referenceprovision
73     testit "ldapcmp" ldapcmp
74     testit "ldapcmp_sd" ldapcmp_sd
75 else
76     subunit_start_test $RELEASE
77     subunit_skip_test $RELEASE <<EOF
78 no test provision
79 EOF
80
81     subunit_start_test "reindex"
82     subunit_skip_test "reindex" <<EOF
83 no test provision
84 EOF
85     subunit_start_test "dbcheck"
86     subunit_skip_test "dbcheck" <<EOF
87 no test provision
88 EOF
89     subunit_start_test "dbcheck_clean"
90     subunit_skip_test "dbcheck_clean" <<EOF
91 no test provision
92 EOF
93     subunit_start_test "dbcheck_acl_reset"
94     subunit_skip_test "dbcheck_acl_reset" <<EOF
95 no test provision
96 EOF
97     subunit_start_test "dbcheck_clean_acl_reset"
98     subunit_skip_test "dbcheck_clean_acl_reset" <<EOF
99 no test provision
100 EOF
101     subunit_start_test "referenceprovision"
102     subunit_skip_test "referenceprovision" <<EOF
103 no test provision
104 EOF
105     subunit_start_test "ldapcmp"
106     subunit_skip_test "ldapcmp" <<EOF
107 no test provision
108 EOF
109     subunit_start_test "ldapcmp_sd"
110     subunit_skip_test "ldapcmp_sd" <<EOF
111 no test provision
112 EOF
113 fi
114
115 if [ -d $PREFIX_ABS/${RELEASE} ]; then
116   rm -fr $PREFIX_ABS/${RELEASE}
117 fi
118
119 if [ -d $PREFIX_ABS/${RELEASE}_reference ]; then
120   rm -fr $PREFIX_ABS/${RELEASE}_reference
121 fi
122
123 exit $failed