diff options
author | Andreas Schneider <asn@samba.org> | 2020-10-21 17:41:27 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2020-10-27 08:22:02 +0000 |
commit | 7b2c975a88be98ae09474316001ac1cc5ae88893 (patch) | |
tree | 7b83948790b5140527bf21e16c0ca1dbecbe42c9 | |
parent | 2aad79378ad8aec28026649157bad4c229ab22c0 (diff) | |
download | samba-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-x | testprogs/blackbox/dbcheck-links.sh | 160 |
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 |