From ae3452244de69b8b2f31d41e3c9405d9d4e01bb1 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Fri, 22 Apr 2022 15:46:04 +0200 Subject: [PATCH] testprogs: Reformat dbcheck-oldrelease.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit shfmt -w -p -i 0 -fn testprogs/blackbox/dbcheck-oldrelease.sh Signed-off-by: Andreas Schneider Reviewed-by: Pavel Filipenský --- testprogs/blackbox/dbcheck-oldrelease.sh | 636 ++++++++++++----------- 1 file changed, 332 insertions(+), 304 deletions(-) diff --git a/testprogs/blackbox/dbcheck-oldrelease.sh b/testprogs/blackbox/dbcheck-oldrelease.sh index 1c558202bc5..2df08ade13f 100755 --- a/testprogs/blackbox/dbcheck-oldrelease.sh +++ b/testprogs/blackbox/dbcheck-oldrelease.sh @@ -1,10 +1,10 @@ #!/bin/sh if [ $# -lt 1 ]; then -cat < $tmpldif - diff -u $tmpldif $release_dir/expected-userParameters-after-dbcheck.ldif - if [ "$?" != "0" ]; then - return 1 +check_expected_userparameters() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + tmpldif=$PREFIX_ABS/$RELEASE/expected-userParameters-after-dbcheck.ldif.tmp + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb userParameters=* --scope=sub -b DC=release-4-1-0rc3,DC=samba,DC=corp userParameters --sorted | grep -v \# >$tmpldif + diff -u $tmpldif $release_dir/expected-userParameters-after-dbcheck.ldif + if [ "$?" != "0" ]; then + return 1 + fi fi - fi - return 0 + return 0 } -reindex() { - $PYTHON $BINDIR/samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ +reindex() +{ + $PYTHON $BINDIR/samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ } -do_current_version_mod() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - # Confirm (in combination with the ldbsearch below) that - # changing the attribute with current Samba fixes it, and that - # a fixed attriute isn't unfixed by dbcheck. - tmpldif=$release_dir/sudoers2-mod.ldif - $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $tmpldif - fi - return 0 +do_current_version_mod() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + # Confirm (in combination with the ldbsearch below) that + # changing the attribute with current Samba fixes it, and that + # a fixed attriute isn't unfixed by dbcheck. + tmpldif=$release_dir/sudoers2-mod.ldif + $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $tmpldif + fi + return 0 } -check_expected_before_values() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - tmpldif=$PREFIX_ABS/$RELEASE/expected-replpropertymetadata-before-dbcheck.ldif.tmp - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary > $tmpldif - diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck.ldif - if [ "$?" != "0" ]; then - return 1 +check_expected_before_values() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + tmpldif=$PREFIX_ABS/$RELEASE/expected-replpropertymetadata-before-dbcheck.ldif.tmp + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary >$tmpldif + diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck.ldif + if [ "$?" != "0" ]; then + return 1 + fi + + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything2 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary | grep -v originating_change_time | grep -v whenChanged >$tmpldif + + # Here we remove originating_change_time and whenChanged as + # these are time-dependent, caused by the ldbmodify above. + + diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck2.ldif + if [ "$?" != "0" ]; then + return 1 + fi + + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything3 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary >$tmpldif + diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck3.ldif + if [ "$?" != "0" ]; then + return 1 + fi + elif [ x$RELEASE = x"release-4-5-0-pre1" ]; then + tmpldif=$PREFIX_ABS/$RELEASE/rootdse-version.initial.txt.tmp + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope=base -b '' | grep highestCommittedUSN >$tmpldif + diff -u $tmpldif $release_dir/rootdse-version.initial.txt + if [ "$?" != "0" ]; then + return 1 + fi fi - - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything2 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary | grep -v originating_change_time| grep -v whenChanged > $tmpldif - - # Here we remove originating_change_time and whenChanged as - # these are time-dependent, caused by the ldbmodify above. - - diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck2.ldif - if [ "$?" != "0" ]; then - return 1 - fi - - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything3 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary > $tmpldif - diff -u $tmpldif $release_dir/expected-replpropertymetadata-before-dbcheck3.ldif - if [ "$?" != "0" ]; then - return 1 - fi - elif [ x$RELEASE = x"release-4-5-0-pre1" ]; then - tmpldif=$PREFIX_ABS/$RELEASE/rootdse-version.initial.txt.tmp - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope=base -b '' | grep highestCommittedUSN > $tmpldif - diff -u $tmpldif $release_dir/rootdse-version.initial.txt - if [ "$?" != "0" ]; then - return 1 - fi - fi - return 0 + return 0 } # This should 'fail', because it returns the number of modified records -dbcheck_objectclass() { - if [ x$RELEASE = x"release-4-1-6-partial-object" ]; then - $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --attrs=objectclass $@ - else - return 1 - fi +dbcheck_objectclass() +{ + if [ x$RELEASE = x"release-4-1-6-partial-object" ]; then + $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --attrs=objectclass $@ + else + return 1 + fi } # This should 'fail', because it returns the number of wrong records, which it must if we did not skip the deleted objects -dbcheck_deleted_objects() { - if [ x$RELEASE = x"alpha13" ]; then - basedn=$($ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope base -b "" defaultNamingContext| grep -i defaultNamingContext| cut -d\ -f 2) +dbcheck_deleted_objects() +{ + if [ x$RELEASE = x"alpha13" ]; then + basedn=$($ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope base -b "" defaultNamingContext | grep -i defaultNamingContext | cut -d\ -f 2) - $PYTHON $BINDIR/samba-tool dbcheck -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "cn=deleted objects,$basedn" --scope base $@ - else - return 1 - fi + $PYTHON $BINDIR/samba-tool dbcheck -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb "cn=deleted objects,$basedn" --scope base $@ + else + return 1 + fi } # This should 'fail', because it returns the number of modified records -dbcheck() { - $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ +dbcheck() +{ + $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ } -check_expected_after_values() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - tmpldif=$PREFIX_ABS/$RELEASE/expected-replpropertymetadata-after-dbcheck.ldif.tmp - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary > $tmpldif - diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck.ldif - if [ "$?" != "0" ]; then - return 1 - fi - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything2 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary | grep -v originating_change_time| grep -v whenChanged > $tmpldif - diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck2.ldif - if [ "$?" != "0" ]; then - return 1 - fi - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything3 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary > $tmpldif - diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck3.ldif - if [ "$?" != "0" ]; then - return 1 - fi - # Check DomainDNS partition for replica locations - tmpldif=$PREFIX_ABS/$RELEASE/expected-replica-locations-after-dbcheck.ldif.tmp - $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=49a69498-9a85-48af-9be4-aa0b3e0054f9 --scope=one -b CN=Partitions,CN=Configuration,DC=release-4-1-0rc3,DC=samba,DC=corp msDS-NC-Replica-Locations > $tmpldif - diff -u $tmpldif $release_dir/expected-replica-locations-after-dbcheck.ldif - if [ "$?" != "0" ]; then - return 1 - fi - # Check ForestDNS partition for replica locations - $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=7d2a15af-c0d4-487c-847e-e036292bcc65 --scope=one -b CN=Partitions,CN=Configuration,DC=release-4-1-0rc3,DC=samba,DC=corp msDS-NC-Replica-Locations > $tmpldif - diff -u $tmpldif $release_dir/expected-replica-locations-after-dbcheck2.ldif - if [ "$?" != "0" ]; then - return 1 - fi - elif [ x$RELEASE = x"release-4-5-0-pre1" ]; then - echo $RELEASE checking after values - tmpldif=$PREFIX_ABS/$RELEASE/expected-links-after-dbcheck.ldif.tmp - $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --show-recycled --show-deleted --show-deactivated-link --reveal member memberOf lastKnownParent objectCategory lastKnownParent wellKnownObjects legacyExchangeDN sAMAccountType uSNChanged --sorted > $tmpldif - diff -u $tmpldif $release_dir/expected-links-after-dbcheck.ldif - if [ "$?" != "0" ]; then - return 1 - fi +check_expected_after_values() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + tmpldif=$PREFIX_ABS/$RELEASE/expected-replpropertymetadata-after-dbcheck.ldif.tmp + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary >$tmpldif + diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck.ldif + if [ "$?" != "0" ]; then + return 1 + fi + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything2 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary | grep -v originating_change_time | grep -v whenChanged >$tmpldif + diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck2.ldif + if [ "$?" != "0" ]; then + return 1 + fi + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=ops_run_anything3 --scope=one -b OU=SUDOers,DC=release-4-1-0rc3,DC=samba,DC=corp \* replpropertymetadata --sorted --show-binary >$tmpldif + diff -u $tmpldif $release_dir/expected-replpropertymetadata-after-dbcheck3.ldif + if [ "$?" != "0" ]; then + return 1 + fi + # Check DomainDNS partition for replica locations + tmpldif=$PREFIX_ABS/$RELEASE/expected-replica-locations-after-dbcheck.ldif.tmp + $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=49a69498-9a85-48af-9be4-aa0b3e0054f9 --scope=one -b CN=Partitions,CN=Configuration,DC=release-4-1-0rc3,DC=samba,DC=corp msDS-NC-Replica-Locations >$tmpldif + diff -u $tmpldif $release_dir/expected-replica-locations-after-dbcheck.ldif + if [ "$?" != "0" ]; then + return 1 + fi + # Check ForestDNS partition for replica locations + $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=7d2a15af-c0d4-487c-847e-e036292bcc65 --scope=one -b CN=Partitions,CN=Configuration,DC=release-4-1-0rc3,DC=samba,DC=corp msDS-NC-Replica-Locations >$tmpldif + diff -u $tmpldif $release_dir/expected-replica-locations-after-dbcheck2.ldif + if [ "$?" != "0" ]; then + return 1 + fi + elif [ x$RELEASE = x"release-4-5-0-pre1" ]; then + echo $RELEASE checking after values + tmpldif=$PREFIX_ABS/$RELEASE/expected-links-after-dbcheck.ldif.tmp + $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --show-recycled --show-deleted --show-deactivated-link --reveal member memberOf lastKnownParent objectCategory lastKnownParent wellKnownObjects legacyExchangeDN sAMAccountType uSNChanged --sorted >$tmpldif + diff -u $tmpldif $release_dir/expected-links-after-dbcheck.ldif + if [ "$?" != "0" ]; then + return 1 + fi - # If in the future dbcheck has to make a change recorded in replPropertyMetadata, - # this test will fail and can be removed. - tmpversion=$PREFIX_ABS/$RELEASE/rootdse-version.final.txt.tmp - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope=base -b '' | grep highestCommittedUSN > $tmpversion - diff -u $tmpversion $release_dir/rootdse-version.final.txt - if [ "$?" != "0" ]; then - return 1 - fi - fi - return 0 -} - -check_forced_duplicate_values() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - ldif=$release_dir/forced-duplicate-value-for-dbcheck.ldif - TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb $ldif - if [ "$?" != "0" ]; then - return 1 + # If in the future dbcheck has to make a change recorded in replPropertyMetadata, + # this test will fail and can be removed. + tmpversion=$PREFIX_ABS/$RELEASE/rootdse-version.final.txt.tmp + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --scope=base -b '' | grep highestCommittedUSN >$tmpversion + diff -u $tmpversion $release_dir/rootdse-version.final.txt + if [ "$?" != "0" ]; then + return 1 + fi fi - else return 0 - fi +} + +check_forced_duplicate_values() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + ldif=$release_dir/forced-duplicate-value-for-dbcheck.ldif + TZ=UTC $ldbmodify -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb $ldif + if [ "$?" != "0" ]; then + return 1 + fi + else + return 0 + fi } # This should 'fail', because it returns the number of modified records -dbcheck_after_dup() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=administrator,cn=users,DC=release-4-1-0rc3,DC=samba,DC=corp $@ - else - return 1 - fi +dbcheck_after_dup() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=administrator,cn=users,DC=release-4-1-0rc3,DC=samba,DC=corp $@ + else + return 1 + fi } -check_expected_after_dup_values() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - tmpldif=$PREFIX_ABS/$RELEASE/expected-otherphone-after-dbcheck.ldif.tmp - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=administrator --scope=base -b cn=administrator,cn=users,DC=release-4-1-0rc3,DC=samba,DC=corp otherHomePhone --sorted --show-binary | grep -v \# | sort > $tmpldif - diff -u $tmpldif $release_dir/expected-otherphone-after-dbcheck.ldif - if [ "$?" != "0" ]; then - return 1 +check_expected_after_dup_values() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + tmpldif=$PREFIX_ABS/$RELEASE/expected-otherphone-after-dbcheck.ldif.tmp + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=administrator --scope=base -b cn=administrator,cn=users,DC=release-4-1-0rc3,DC=samba,DC=corp otherHomePhone --sorted --show-binary | grep -v \# | sort >$tmpldif + diff -u $tmpldif $release_dir/expected-otherphone-after-dbcheck.ldif + if [ "$?" != "0" ]; then + return 1 + fi fi - fi - return 0 + return 0 } # But having fixed it all up, this should pass -dbcheck_clean() { - $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ +dbcheck_clean() +{ + $PYTHON $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ } -# This should 'fail', because it returns the number of modified records. +# This should 'fail', because it returns the number of modified records. # We don't need to run this against 4.1 releases -dbcheck_acl_reset() { - if [ x$RELEASE = x"release-4-0-0" -o x$RELEASE = x"alpha13" ]; then - $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ - else - return 1 - fi +dbcheck_acl_reset() +{ + if [ x$RELEASE = x"release-4-0-0" -o x$RELEASE = x"alpha13" ]; then + $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ + else + return 1 + fi } -# But having fixed it all up, this should pass. +# But having fixed it all up, this should pass. # We don't need to run this against 4.1.0rc3 -dbcheck_acl_reset_clean() { - if [ x$RELEASE != x"release-4-1-0rc3" ]; then - $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ - fi +dbcheck_acl_reset_clean() +{ + if [ x$RELEASE != x"release-4-1-0rc3" ]; then + $PYTHON $BINDIR/samba-tool dbcheck --reset-well-known-acls --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ + fi } # This should 'fail', because it returns the number of modified records -dbcheck2() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ - else - exit 1 - fi +dbcheck2() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ + else + exit 1 + fi } # But having fixed it all up, this should pass -dbcheck_clean2() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ - fi +dbcheck_clean2() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ + fi } -rm_deleted_objects() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - TZ=UTC $ldbdel -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb 'CN=Deleted Objects,DC=RELEASE-4-1-0RC3,DC=SAMBA,DC=CORP' - if [ "$?" != "0" ]; then - return 1 +rm_deleted_objects() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + TZ=UTC $ldbdel -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb.d/DC%3DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb 'CN=Deleted Objects,DC=RELEASE-4-1-0RC3,DC=SAMBA,DC=CORP' + if [ "$?" != "0" ]; then + return 1 + fi + else + return 0 + fi +} +# This should 'fail', because it returns the number of modified records +dbcheck3() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ + else + exit 1 + fi +} +# But having fixed it all up, this should pass +dbcheck_clean3() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ + fi +} + +check_expected_after_deleted_objects() +{ + if [ x$RELEASE = x"release-4-1-0rc3" ]; then + tmpldif=$PREFIX_ABS/$RELEASE/expected-deleted_objects-after-dbcheck.ldif.tmp + TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=deleted\ objects --scope=base -b cn=deleted\ objects,DC=release-4-1-0rc3,DC=samba,DC=corp objectClass description isDeleted isCriticalSystemObject objectGUID showInAdvancedViewOnly systemFlags --sorted --show-binary --show-deleted | grep -v \# | sort >$tmpldif + diff -u $tmpldif $release_dir/expected-deleted_objects-after-dbcheck.ldif + if [ "$?" != "0" ]; then + return 1 + fi fi - else return 0 - fi -} -# This should 'fail', because it returns the number of modified records -dbcheck3() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ - else - exit 1 - fi -} -# But having fixed it all up, this should pass -dbcheck_clean3() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - $PYTHON $BINDIR/samba-tool dbcheck --selftest-check-expired-tombstones --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb $@ - fi } -check_expected_after_deleted_objects() { - if [ x$RELEASE = x"release-4-1-0rc3" ]; then - tmpldif=$PREFIX_ABS/$RELEASE/expected-deleted_objects-after-dbcheck.ldif.tmp - TZ=UTC $ldbsearch -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb cn=deleted\ objects --scope=base -b cn=deleted\ objects,DC=release-4-1-0rc3,DC=samba,DC=corp objectClass description isDeleted isCriticalSystemObject objectGUID showInAdvancedViewOnly systemFlags --sorted --show-binary --show-deleted | grep -v \# | sort > $tmpldif - diff -u $tmpldif $release_dir/expected-deleted_objects-after-dbcheck.ldif - if [ "$?" != "0" ]; then - return 1 +referenceprovision() +{ + if [ x$RELEASE = x"release-4-0-0" ]; then + $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 --function-level=2003 --base-schema=2008_R2_old + + # on top of this, also apply 2008R2 changes we accidentally missed in the past + $PYTHON $BINDIR/samba-tool domain schemaupgrade -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --ldf-file=samba-4.7-missing-for-schema45.ldif,fix-forest-rev.ldf fi - fi - return 0 } -referenceprovision() { - if [ x$RELEASE = x"release-4-0-0" ]; then - $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 --function-level=2003 --base-schema=2008_R2_old - - # on top of this, also apply 2008R2 changes we accidentally missed in the past - $PYTHON $BINDIR/samba-tool domain schemaupgrade -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb --ldf-file=samba-4.7-missing-for-schema45.ldif,fix-forest-rev.ldf - fi +ldapcmp() +{ + if [ x$RELEASE = x"release-4-0-0" ]; then + $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,displayName,msDS-SupportedEncryptionTypes,servicePrincipalName + fi } -ldapcmp() { - if [ x$RELEASE = x"release-4-0-0" ]; then - $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,displayName,msDS-SupportedEncryptionTypes,servicePrincipalName - fi -} - -ldapcmp_sd() { - if [ x$RELEASE = x"release-4-0-0" ]; then - $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 --filter=servicePrincipalName - fi +ldapcmp_sd() +{ + if [ x$RELEASE = x"release-4-0-0" ]; then + $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 --filter=servicePrincipalName + fi } remove_directory $PREFIX_ABS/${RELEASE}_reference -testit $RELEASE undump || failed=`expr $failed + 1` -testit "reindex" reindex || failed=`expr $failed + 1` -testit "current_version_mod" do_current_version_mod || failed=`expr $failed + 1` -testit "check_expected_before_values" check_expected_before_values || failed=`expr $failed + 1` -testit_expect_failure "dbcheck_deleted_objects" dbcheck_deleted_objects || failed=`expr $failed + 1` -testit_expect_failure "dbcheck_objectclass" dbcheck_objectclass || failed=`expr $failed + 1` -testit_expect_failure "dbcheck" dbcheck || failed=`expr $failed + 1` -testit "check_expected_after_values" check_expected_after_values || failed=`expr $failed + 1` -testit "check_forced_duplicate_values" check_forced_duplicate_values || failed=`expr $failed + 1` -testit_expect_failure "dbcheck_after_dup" dbcheck_after_dup || failed=`expr $failed + 1` -testit "check_expected_after_dup_values" check_expected_after_dup_values || failed=`expr $failed + 1` -testit "dbcheck_clean" dbcheck_clean || failed=`expr $failed + 1` -testit_expect_failure "dbcheck_acl_reset" dbcheck_acl_reset || failed=`expr $failed + 1` -testit "dbcheck_acl_reset_clean" dbcheck_acl_reset_clean || failed=`expr $failed + 1` -testit "add_userparameters0" add_userparameters1 || failed=`expr $failed + 1` -testit "add_userparameters1" add_userparameters1 || failed=`expr $failed + 1` -testit "add_userparameters2" add_userparameters2 || failed=`expr $failed + 1` -testit "add_userparameters3" add_userparameters3 || failed=`expr $failed + 1` -testit_expect_failure "dbcheck2" dbcheck2 || failed=`expr $failed + 1` -testit "dbcheck_clean2" dbcheck_clean2 || failed=`expr $failed + 1` -testit "check_expected_userparameters" check_expected_userparameters || failed=`expr $failed + 1` -testit "rm_deleted_objects" rm_deleted_objects || failed=`expr $failed + 1` +testit $RELEASE undump || failed=$(expr $failed + 1) +testit "reindex" reindex || failed=$(expr $failed + 1) +testit "current_version_mod" do_current_version_mod || failed=$(expr $failed + 1) +testit "check_expected_before_values" check_expected_before_values || failed=$(expr $failed + 1) +testit_expect_failure "dbcheck_deleted_objects" dbcheck_deleted_objects || failed=$(expr $failed + 1) +testit_expect_failure "dbcheck_objectclass" dbcheck_objectclass || failed=$(expr $failed + 1) +testit_expect_failure "dbcheck" dbcheck || failed=$(expr $failed + 1) +testit "check_expected_after_values" check_expected_after_values || failed=$(expr $failed + 1) +testit "check_forced_duplicate_values" check_forced_duplicate_values || failed=$(expr $failed + 1) +testit_expect_failure "dbcheck_after_dup" dbcheck_after_dup || failed=$(expr $failed + 1) +testit "check_expected_after_dup_values" check_expected_after_dup_values || failed=$(expr $failed + 1) +testit "dbcheck_clean" dbcheck_clean || failed=$(expr $failed + 1) +testit_expect_failure "dbcheck_acl_reset" dbcheck_acl_reset || failed=$(expr $failed + 1) +testit "dbcheck_acl_reset_clean" dbcheck_acl_reset_clean || failed=$(expr $failed + 1) +testit "add_userparameters0" add_userparameters1 || failed=$(expr $failed + 1) +testit "add_userparameters1" add_userparameters1 || failed=$(expr $failed + 1) +testit "add_userparameters2" add_userparameters2 || failed=$(expr $failed + 1) +testit "add_userparameters3" add_userparameters3 || failed=$(expr $failed + 1) +testit_expect_failure "dbcheck2" dbcheck2 || failed=$(expr $failed + 1) +testit "dbcheck_clean2" dbcheck_clean2 || failed=$(expr $failed + 1) +testit "check_expected_userparameters" check_expected_userparameters || failed=$(expr $failed + 1) +testit "rm_deleted_objects" rm_deleted_objects || failed=$(expr $failed + 1) # We must re-index again because rm_deleted_objects went behind # the back of the main sam.ldb. -testit "reindex2" reindex || failed=`expr $failed + 1` -testit_expect_failure "dbcheck3" dbcheck3 || failed=`expr $failed + 1` -testit "dbcheck_clean3" dbcheck_clean3 || failed=`expr $failed + 1` -testit "check_expected_after_deleted_objects" check_expected_after_deleted_objects || failed=`expr $failed + 1` -testit "referenceprovision" referenceprovision || failed=`expr $failed + 1` -testit "ldapcmp" ldapcmp || failed=`expr $failed + 1` -testit "ldapcmp_sd" ldapcmp_sd || failed=`expr $failed + 1` +testit "reindex2" reindex || failed=$(expr $failed + 1) +testit_expect_failure "dbcheck3" dbcheck3 || failed=$(expr $failed + 1) +testit "dbcheck_clean3" dbcheck_clean3 || failed=$(expr $failed + 1) +testit "check_expected_after_deleted_objects" check_expected_after_deleted_objects || failed=$(expr $failed + 1) +testit "referenceprovision" referenceprovision || failed=$(expr $failed + 1) +testit "ldapcmp" ldapcmp || failed=$(expr $failed + 1) +testit "ldapcmp_sd" ldapcmp_sd || failed=$(expr $failed + 1) if [ -d $PREFIX_ABS/${RELEASE} ]; then - rm -fr $PREFIX_ABS/${RELEASE} + rm -fr $PREFIX_ABS/${RELEASE} fi remove_directory $PREFIX_ABS/${RELEASE}_reference