summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2020-10-21 17:41:27 +0200
committerKarolin Seeger <kseeger@samba.org>2020-10-27 08:22:02 +0000
commit7b2c975a88be98ae09474316001ac1cc5ae88893 (patch)
tree7b83948790b5140527bf21e16c0ca1dbecbe42c9
parent2aad79378ad8aec28026649157bad4c229ab22c0 (diff)
downloadsamba-7b2c975a88be98ae09474316001ac1cc5ae88893.tar.gz
testprogs: Fix and improve dbcheck-links test
This fixes running `make test` in a release tarball! BUG: https://bugzilla.samba.org/show_bug.cgi?id=14542 Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org> (cherry picked from commit d8fe4315c85811ef3c5a1cfa42bf416bc1c8109e)
-rwxr-xr-xtestprogs/blackbox/dbcheck-links.sh160
1 files changed, 82 insertions, 78 deletions
diff --git a/testprogs/blackbox/dbcheck-links.sh b/testprogs/blackbox/dbcheck-links.sh
index eb0e0b3163f..ead59d691e0 100755
--- a/testprogs/blackbox/dbcheck-links.sh
+++ b/testprogs/blackbox/dbcheck-links.sh
@@ -14,6 +14,23 @@ shift 2
. `dirname $0`/subunit.sh
. `dirname $0`/common-links.sh
+. `dirname $0`/common_test_fns.inc
+
+failed=0
+
+if [ ! -x $samba_undump ] || [ ! -d $release_dir ]; then
+ subunit_start_test $RELEASE
+ subunit_skip_test $RELEASE <<EOF
+no test provision
+EOF
+
+ subunit_start_test "tombstones_expunge"
+ subunit_skip_test "tombstones_expunge" <<EOF
+no test provision
+EOF
+
+ exit 0
+fi
dbcheck() {
tmpfile=$PREFIX_ABS/$RELEASE/expected-dbcheck-link-output${1}.txt.tmp
@@ -873,83 +890,70 @@ EOF
fi
}
-if [ -d $release_dir ]; then
- testit $RELEASE undump
- testit "add_two_more_users" add_two_more_users
- testit "add_four_more_links" add_four_more_links
- testit "remove_one_link" remove_one_link
- testit "remove_one_user" remove_one_user
- testit "move_one_user" move_one_user
- testit "add_dangling_link" add_dangling_link
- testit "add_dangling_backlink" add_dangling_backlink
- testit "add_deleted_dangling_backlink" add_deleted_dangling_backlink
- testit "revive_links_on_deleted_group" revive_links_on_deleted_group
- testit "revive_backlink_on_deleted_group" revive_backlink_on_deleted_group
- 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 "duplicate_member" duplicate_member
- testit "dbcheck_duplicate_member" dbcheck_duplicate_member
- testit "check_expected_after_duplicate_links" check_expected_after_duplicate_links
- testit "duplicate_clean" dbcheck_clean
- testit "forward_link_corruption" forward_link_corruption
- testit "dbcheck_forward_link_corruption" dbcheck_forward_link_corruption
- testit "check_expected_after_dbcheck_forward_link_corruption" check_expected_after_dbcheck_forward_link_corruption
- testit "forward_link_corruption_clean" dbcheck_clean
- testit "oneway_link_corruption" oneway_link_corruption
- testit "dbcheck_oneway_link_corruption" dbcheck_oneway_link_corruption
- testit "check_expected_after_dbcheck_oneway_link_corruption" check_expected_after_dbcheck_oneway_link_corruption
- testit "oneway_link_corruption_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 "missing_link_sid_corruption" missing_link_sid_corruption
- testit "dbcheck_missing_link_sid_corruption" dbcheck_missing_link_sid_corruption
- testit "missing_link_sid_clean" dbcheck_clean
- testit "add_lost_deleted_user1" add_lost_deleted_user1
- testit "dbcheck_lost_deleted_user1" dbcheck_lost_deleted_user1
- testit "lost_deleted_user1_clean_A" dbcheck_clean
- testit "remove_lost_deleted_user1" remove_lost_deleted_user1
- testit "lost_deleted_user1_clean_B" dbcheck_clean
- testit "add_lost_deleted_user2" add_lost_deleted_user2
- testit "dbcheck_lost_deleted_user2" dbcheck_lost_deleted_user2
- testit "lost_deleted_user2_clean" dbcheck_clean
- testit "add_lost_deleted_user3" add_lost_deleted_user3
- testit "dbcheck_lost_deleted_user3" dbcheck_lost_deleted_user3
- testit "lost_deleted_user3_clean_A" dbcheck_clean
- testit "remove_lost_deleted_user3" remove_lost_deleted_user3
- testit "lost_deleted_user3_clean_B" 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 "add_dangling_multi_valued" add_dangling_multi_valued
- testit "dbcheck_dangling_multi_valued" dbcheck_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
- # Currently this cannot pass
- testit "dbcheck_dangling_multi_valued_clean" dbcheck_clean
- testit "dangling_link_does_not_prevent_delete" dangling_link_does_not_prevent_delete
- testit "dangling_link_to_unknown_does_not_prevent_delete" dangling_link_to_unknown_does_not_prevent_delete
- testit "dangling_link_to_known_and_unknown_does_not_prevent_delete" dangling_link_to_known_and_unknown_does_not_prevent_delete
-
-else
- subunit_start_test $RELEASE
- subunit_skip_test $RELEASE <<EOF
-no test provision
-EOF
-
- subunit_start_test "tombstones_expunge"
- subunit_skip_test "tombstones_expunge" <<EOF
-no test provision
-EOF
-fi
-
-if [ -d $PREFIX_ABS/${RELEASE} ]; then
- rm -fr $PREFIX_ABS/${RELEASE}
-fi
+remove_directory $PREFIX_ABS/${RELEASE}
+
+testit $RELEASE undump || failed=`expr $failed + 1`
+testit "add_two_more_users" add_two_more_users || failed=`expr $failed + 1`
+testit "add_four_more_links" add_four_more_links || failed=`expr $failed + 1`
+testit "remove_one_link" remove_one_link || failed=`expr $failed + 1`
+testit "remove_one_user" remove_one_user || failed=`expr $failed + 1`
+testit "move_one_user" move_one_user || failed=`expr $failed + 1`
+testit "add_dangling_link" add_dangling_link || failed=`expr $failed + 1`
+testit "add_dangling_backlink" add_dangling_backlink || failed=`expr $failed + 1`
+testit "add_deleted_dangling_backlink" add_deleted_dangling_backlink || failed=`expr $failed + 1`
+testit "revive_links_on_deleted_group" revive_links_on_deleted_group || failed=`expr $failed + 1`
+testit "revive_backlink_on_deleted_group" revive_backlink_on_deleted_group || failed=`expr $failed + 1`
+testit "add_deleted_target_link" add_deleted_target_link || failed=`expr $failed + 1`
+testit "add_deleted_target_backlink" add_deleted_target_backlink || failed=`expr $failed + 1`
+testit "dbcheck_dangling" dbcheck_dangling || failed=`expr $failed + 1`
+testit "dbcheck_clean" dbcheck_clean || failed=`expr $failed + 1`
+testit "check_expected_after_deleted_links" check_expected_after_deleted_links || failed=`expr $failed + 1`
+testit "check_expected_after_links" check_expected_after_links || failed=`expr $failed + 1`
+testit "check_expected_after_objects" check_expected_after_objects || failed=`expr $failed + 1`
+testit "duplicate_member" duplicate_member || failed=`expr $failed + 1`
+testit "dbcheck_duplicate_member" dbcheck_duplicate_member || failed=`expr $failed + 1`
+testit "check_expected_after_duplicate_links" check_expected_after_duplicate_links || failed=`expr $failed + 1`
+testit "duplicate_clean" dbcheck_clean || failed=`expr $failed + 1`
+testit "forward_link_corruption" forward_link_corruption || failed=`expr $failed + 1`
+testit "dbcheck_forward_link_corruption" dbcheck_forward_link_corruption || failed=`expr $failed + 1`
+testit "check_expected_after_dbcheck_forward_link_corruption" check_expected_after_dbcheck_forward_link_corruption || failed=`expr $failed + 1`
+testit "forward_link_corruption_clean" dbcheck_clean || failed=`expr $failed + 1`
+testit "oneway_link_corruption" oneway_link_corruption || failed=`expr $failed + 1`
+testit "dbcheck_oneway_link_corruption" dbcheck_oneway_link_corruption || failed=`expr $failed + 1`
+testit "check_expected_after_dbcheck_oneway_link_corruption" check_expected_after_dbcheck_oneway_link_corruption || failed=`expr $failed + 1`
+testit "oneway_link_corruption_clean" dbcheck_clean || failed=`expr $failed + 1`
+testit "dangling_one_way_link" dangling_one_way_link || failed=`expr $failed + 1`
+testit "dbcheck_one_way" dbcheck_one_way || failed=`expr $failed + 1`
+testit "dbcheck_clean2" dbcheck_clean || failed=`expr $failed + 1`
+testit "missing_link_sid_corruption" missing_link_sid_corruption || failed=`expr $failed + 1`
+testit "dbcheck_missing_link_sid_corruption" dbcheck_missing_link_sid_corruption || failed=`expr $failed + 1`
+testit "missing_link_sid_clean" dbcheck_clean || failed=`expr $failed + 1`
+testit "add_lost_deleted_user1" add_lost_deleted_user1 || failed=`expr $failed + 1`
+testit "dbcheck_lost_deleted_user1" dbcheck_lost_deleted_user1 || failed=`expr $failed + 1`
+testit "lost_deleted_user1_clean_A" dbcheck_clean || failed=`expr $failed + 1`
+testit "remove_lost_deleted_user1" remove_lost_deleted_user1 || failed=`expr $failed + 1`
+testit "lost_deleted_user1_clean_B" dbcheck_clean || failed=`expr $failed + 1`
+testit "add_lost_deleted_user2" add_lost_deleted_user2 || failed=`expr $failed + 1`
+testit "dbcheck_lost_deleted_user2" dbcheck_lost_deleted_user2 || failed=`expr $failed + 1`
+testit "lost_deleted_user2_clean" dbcheck_clean || failed=`expr $failed + 1`
+testit "add_lost_deleted_user3" add_lost_deleted_user3 || failed=`expr $failed + 1`
+testit "dbcheck_lost_deleted_user3" dbcheck_lost_deleted_user3 || failed=`expr $failed + 1`
+testit "lost_deleted_user3_clean_A" dbcheck_clean || failed=`expr $failed + 1`
+testit "remove_lost_deleted_user3" remove_lost_deleted_user3 || failed=`expr $failed + 1`
+testit "lost_deleted_user3_clean_B" dbcheck_clean || failed=`expr $failed + 1`
+testit "dangling_one_way_dn" dangling_one_way_dn || failed=`expr $failed + 1`
+testit "deleted_one_way_dn" deleted_one_way_dn || failed=`expr $failed + 1`
+testit "dbcheck_clean3" dbcheck_clean || failed=`expr $failed + 1`
+testit "add_dangling_multi_valued" add_dangling_multi_valued || failed=`expr $failed + 1`
+testit "dbcheck_dangling_multi_valued" dbcheck_dangling_multi_valued || failed=`expr $failed + 1`
+testit "dangling_multi_valued_check_missing" dangling_multi_valued_check_missing || failed=`expr $failed + 1`
+testit "dangling_multi_valued_check_equal_or_too_many" dangling_multi_valued_check_equal_or_too_many || failed=`expr $failed + 1`
+# Currently this cannot pass
+testit "dbcheck_dangling_multi_valued_clean" dbcheck_clean || failed=`expr $failed + 1`
+testit "dangling_link_does_not_prevent_delete" dangling_link_does_not_prevent_delete || failed=`expr $failed + 1`
+testit "dangling_link_to_unknown_does_not_prevent_delete" dangling_link_to_unknown_does_not_prevent_delete || failed=`expr $failed + 1`
+testit "dangling_link_to_known_and_unknown_does_not_prevent_delete" dangling_link_to_known_and_unknown_does_not_prevent_delete || failed=`expr $failed + 1`
+
+remove_directory $PREFIX_ABS/${RELEASE}
exit $failed