summaryrefslogtreecommitdiff
path: root/testprogs
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2017-10-30 15:29:36 +1300
committerStefan Metzmacher <metze@samba.org>2017-11-24 15:50:16 +0100
commit7be38c605468786894a373e15068b8017323da78 (patch)
tree5b85ea5c58d5253fe47533df2b7aba07408552cc /testprogs
parent527f2c95cfe24d29fa34ed19db3b073781d96d9a (diff)
downloadsamba-7be38c605468786894a373e15068b8017323da78.tar.gz
selftest: add more dbcheck tests
This validates some more combinations and ensures that the changes in 962a1b32201fce0a49c6be55943d4fbb57ed781e are tested. Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'testprogs')
-rwxr-xr-xtestprogs/blackbox/dbcheck-links.sh93
1 files changed, 81 insertions, 12 deletions
diff --git a/testprogs/blackbox/dbcheck-links.sh b/testprogs/blackbox/dbcheck-links.sh
index 17973e97429..655e1aa2de0 100755
--- a/testprogs/blackbox/dbcheck-links.sh
+++ b/testprogs/blackbox/dbcheck-links.sh
@@ -50,31 +50,41 @@ undump() {
}
dbcheck() {
- tmpfile=$PREFIX_ABS/$RELEASE/expected-dbcheck-link-output.txt.tmp
- tmpldif1=$PREFIX_ABS/$RELEASE/expected-dbcheck-output2.txt.tmp1
+ tmpfile=$PREFIX_ABS/$RELEASE/expected-dbcheck-link-output${1}.txt.tmp
+ tmpldif1=$PREFIX_ABS/$RELEASE/expected-dbcheck-output${1}2.txt.tmp1
TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb -s base -b '' | grep highestCommittedUSN > $tmpldif1
- $PYTHON $BINDIR/samba-tool dbcheck -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --fix --yes > $tmpfile
- if [ "$?" != "1" ]; then
+ $PYTHON $BINDIR/samba-tool dbcheck -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $3 --fix --yes > $tmpfile
+ if [ "$?" != "$2" ]; then
return 1
fi
sort $tmpfile > $tmpfile.sorted
- sort $release_dir/expected-dbcheck-link-output.txt > $tmpfile.expected
+ sort $release_dir/expected-dbcheck-link-output${1}.txt > $tmpfile.expected
diff -u $tmpfile.sorted $tmpfile.expected
if [ "$?" != "0" ]; then
return 1
fi
- tmpldif2=$PREFIX_ABS/$RELEASE/expected-dbcheck-output2.txt.tmp2
+ tmpldif2=$PREFIX_ABS/$RELEASE/expected-dbcheck-output${1}2.txt.tmp2
TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb -s base -b '' | grep highestCommittedUSN > $tmpldif2
- diff $tmpldif1 $tmpldif2
+ diff -u $tmpldif1 $tmpldif2
if [ "$?" != "0" ]; then
return 1
fi
}
+dbcheck_dangling() {
+ dbcheck "" "1" ""
+ return $?
+}
+
+dbcheck_one_way() {
+ dbcheck "_one_way" "0" "CN=Configuration,DC=release-4-5-0-pre1,DC=samba,DC=corp"
+ return $?
+}
+
dbcheck_clean() {
tmpldif1=$PREFIX_ABS/$RELEASE/expected-dbcheck-output2.txt.tmp1
@@ -127,6 +137,42 @@ add_dangling_backlink() {
fi
}
+add_deleted_dangling_backlink() {
+ ldif=$release_dir/add-deleted-backlink-user.ldif
+ TZ=UTC $ldbadd -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $ldif
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+
+ ldif=$release_dir/add-deleted-backlink.ldif
+ TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-5-0-PRE1,DC%3DSAMBA,DC%3DCORP.ldb $ldif
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+}
+
+add_deleted_target_backlink() {
+ ldif=$release_dir/add-deleted-target-backlink-user.ldif
+ TZ=UTC $ldbadd -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $ldif
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+
+ ldif=$release_dir/add-deleted-target-backlink.ldif
+ TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-5-0-PRE1,DC%3DSAMBA,DC%3DCORP.ldb $ldif
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+}
+
+add_deleted_target_link() {
+ ldif=$release_dir/add-dangling-deleted-link.ldif
+ TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-5-0-PRE1,DC%3DSAMBA,DC%3DCORP.ldb $ldif
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+}
+
add_two_more_users() {
ldif=$release_dir/add-two-more-users.ldif
TZ=UTC $ldbadd -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $ldif
@@ -193,14 +239,30 @@ check_expected_after_objects() {
fi
}
-dangling_one_way() {
- ldif=$release_dir/dangling-one-way-link.ldif
+dangling_one_way_dn() {
+ ldif=$release_dir/dangling-one-way-dn.ldif
TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $ldif
if [ "$?" != "0" ]; then
return 1
fi
}
+deleted_one_way_dn() {
+ ldif=$release_dir/deleted-one-way-dn.ldif
+ TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $ldif
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+}
+
+dangling_one_way_link() {
+ ldif=$release_dir/dangling-one-way-link.ldif
+ TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/CN%3DCONFIGURATION,DC%3DRELEASE-4-5-0-PRE1,DC%3DSAMBA,DC%3DCORP.ldb $ldif
+ if [ "$?" != "0" ]; then
+ return 1
+ fi
+}
+
dangling_multi_valued() {
# multi1 - All 4 backlinks
# multi2 - Missing all 4 backlinks
@@ -282,13 +344,20 @@ if [ -d $release_dir ]; then
testit "move_one_user" move_one_user
testit "add_dangling_link" add_dangling_link
testit "add_dangling_backlink" add_dangling_backlink
- testit "dbcheck" dbcheck
+ testit "add_deleted_dangling_backlink" add_deleted_dangling_backlink
+ testit "add_deleted_target_link" add_deleted_target_link
+ testit "add_deleted_target_backlink" add_deleted_target_backlink
+ testit "dbcheck_dangling" dbcheck_dangling
testit "dbcheck_clean" dbcheck_clean
testit "check_expected_after_deleted_links" check_expected_after_deleted_links
testit "check_expected_after_links" check_expected_after_links
testit "check_expected_after_objects" check_expected_after_objects
- testit "dangling_one_way" dangling_one_way
- testit "dbcheck_clean" dbcheck_clean
+ testit "dangling_one_way_link" dangling_one_way_link
+ testit "dbcheck_one_way" dbcheck_one_way
+ testit "dbcheck_clean2" dbcheck_clean
+ testit "dangling_one_way_dn" dangling_one_way_dn
+ testit "deleted_one_way_dn" deleted_one_way_dn
+ testit "dbcheck_clean3" dbcheck_clean
testit "dangling_multi_valued" dangling_multi_valued
testit "dangling_multi_valued_check_missing" dangling_multi_valued_check_missing
testit "dangling_multi_valued_check_equal_or_too_many" dangling_multi_valued_check_equal_or_too_many