diff options
author | Andrew Bartlett <abartlet@samba.org> | 2017-10-30 15:29:36 +1300 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2017-11-24 15:50:16 +0100 |
commit | 7be38c605468786894a373e15068b8017323da78 (patch) | |
tree | 5b85ea5c58d5253fe47533df2b7aba07408552cc /testprogs | |
parent | 527f2c95cfe24d29fa34ed19db3b073781d96d9a (diff) | |
download | samba-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-x | testprogs/blackbox/dbcheck-links.sh | 93 |
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 |