The Samba-Bugzilla – Attachment 16303 Details for
Bug 14542
Fix running `make test` in a release tarball fails because of missing provision data
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for 4.13
v4-13-test.patch (text/plain), 52.85 KB, created by
Andreas Schneider
on 2020-10-23 06:02:10 UTC
(
hide
)
Description:
patch for 4.13
Filename:
MIME Type:
Creator:
Andreas Schneider
Created:
2020-10-23 06:02:10 UTC
Size:
52.85 KB
patch
obsolete
>From c981f9fca822302bf6ba7a8f272b9a2b9c0834ef Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Wed, 21 Oct 2020 07:43:08 +0200 >Subject: [PATCH 1/9] python: Create targetdir recursively > >This fixes `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 76db796181419967a483bcd71fe0cca313ccaf82) >--- > python/samba/netcmd/domain.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > >diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py >index 4cb873fd634..1d12c362911 100644 >--- a/python/samba/netcmd/domain.py >+++ b/python/samba/netcmd/domain.py >@@ -445,7 +445,7 @@ class cmd_domain_provision(Command): > > if targetdir is not None: > if not os.path.isdir(targetdir): >- os.mkdir(targetdir) >+ os.makedirs(targetdir) > > eadb = True > >-- >2.29.0 > > >From 69a3603eab44267fb940c447b8850afec0f39f8b Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Thu, 22 Oct 2020 11:39:04 +0200 >Subject: [PATCH 2/9] testprogs: Add remove_directory to common test functions > >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 3770f28c6289a9328b81968a4548bfaeb8bd40aa) >--- > testprogs/blackbox/common_test_fns.inc | 11 +++++++++++ > 1 file changed, 11 insertions(+) > >diff --git a/testprogs/blackbox/common_test_fns.inc b/testprogs/blackbox/common_test_fns.inc >index a5611c63fa0..7b421e9eb08 100755 >--- a/testprogs/blackbox/common_test_fns.inc >+++ b/testprogs/blackbox/common_test_fns.inc >@@ -107,3 +107,14 @@ kerberos_kinit() { > fi > return $status > } >+ >+remove_directory() { >+ local xdir=${1} >+ shift >+ >+ if [ "$xdir" == "/" ] || [ ! -d "$xdir" ] || [ ! $(ls -A "$xdir") ]; then >+ return >+ fi >+ >+ rm -rf "$xdir" >+} >-- >2.29.0 > > >From 58540866c75f92c8c69049866613d21cc83de324 Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Tue, 20 Oct 2020 20:47:43 +0200 >Subject: [PATCH 3/9] testprogs: Fix and improve demote-saveddb 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 e58ccdaa1a1e5943aa02ecba88d1de0323777041) >--- > testprogs/blackbox/demote-saveddb.sh | 75 ++++++++++++++++------------ > 1 file changed, 43 insertions(+), 32 deletions(-) > >diff --git a/testprogs/blackbox/demote-saveddb.sh b/testprogs/blackbox/demote-saveddb.sh >index 3d5fabd72e3..d8fccf32011 100755 >--- a/testprogs/blackbox/demote-saveddb.sh >+++ b/testprogs/blackbox/demote-saveddb.sh >@@ -10,58 +10,69 @@ fi > PREFIX_ABS="$1" > shift 1 > >-. `dirname $0`/subunit.sh >+failed=0 > >-tree_dir=`dirname $0`/../../source4/selftest/provisions/multi-dc-samba-master-c596ac6 >+. `dirname $0`/subunit.sh >+. `dirname $0`/common_test_fns.inc > >-undump() { >- if test -x $BINDIR/tdbrestore; >- then >- `dirname $0`/../../source4/selftest/provisions/undump.sh $tree_dir $PREFIX_ABS $BINDIR/tdbrestore >- else >- `dirname $0`/../../source4/selftest/provisions/undump.sh $tree_dir $PREFIX_ABS >- fi >-} >+samba_tree_dir="$SRCDIR_ABS/source4/selftest/provisions/multi-dc-samba-master-c596ac6" > >-demote() { >- $PYTHON $BINDIR/samba-tool domain demote -H tdb://$PREFIX_ABS/private/sam.ldb --remove-other-dead-server=$1 >-} >+samba_tdbrestore="tdbrestore" >+if [ -x $BINDIR/tdbrestore ]; then >+ samba_tdbrestore="$BINDIR/tdbrestore" >+fi > >+# The undump script and the provision data is not part of release tarballs, >+# skip the tests in this case! >+samba_undump="$SRCDIR_ABS/source4/selftest/provisions/undump.sh" >+if [ ! -x $samba_undump ] || [ ! -d $samba_tree_dir ]; then >+ subunit_start_test "undump" >+ subunit_skip_test "undump" <<EOF >+EOF > >-if [ -d $tree_dir ]; then >- testit "undump" undump >- testit "demote-q-0-0" demote "q-0-0" >- # The database was copied of q-0-1 so this will fail >- # as we can't remove our own name >- testit_expect_failure "demote-q-0-1" demote "q-0-1" >- testit "demote-q-1-0" demote "q-1-0" >- testit "demote-q-1-1" demote "q-1-1" >-else > subunit_start_test "undump" > subunit_skip_test "undump" <<EOF >-no test provision >+Skipping tests - no provision! > EOF > > subunit_start_test "demote-q-0-0" > subunit_skip_test "demote-q-0-0" <<EOF >-no test provision >+Skipping tests - no provision! > EOF > subunit_start_test "demote-q-0-1" > subunit_skip_test "demote-q-0-1" <<EOF >-no test provision >+Skipping tests - no provision! > EOF >- subunit_start_test "demote-q-1-1" >- subunit_skip_test "demote-q-0-1" <<EOF >-no test provision >+ subunit_start_test "demote-q-1-0" >+ subunit_skip_test "demote-q-1-0" <<EOF >+Skipping tests - no provision! > EOF > subunit_start_test "demote-q-1-1" > subunit_skip_test "demote-q-1-1" <<EOF >-no test provision >+Skipping tests - no provision! > EOF >-fi > >-if [ -d $PREFIX_ABS ]; then >- rm -fr $PREFIX_ABS >+ exit 0 > fi > >+undump() { >+ $SRCDIR_ABS/source4/selftest/provisions/undump.sh $samba_tree_dir $PREFIX_ABS $samba_tdbrestore >+} >+ >+demote() { >+ $PYTHON $BINDIR/samba-tool domain demote -H tdb://$PREFIX_ABS/private/sam.ldb --remove-other-dead-server=$1 >+} >+ >+remove_directory $PREFIX_ABS >+ >+testit "undump" undump || failed=`expr $failed + 1` >+testit "demote-q-0-0" demote "q-0-0" || failed=`expr $failed + 1` >+# The database was copied of q-0-1 so this will fail >+# as we can't remove our own name >+testit_expect_failure "demote-q-0-1" demote "q-0-1" || failed=`expr $failed + 1` >+testit "demote-q-1-0" demote "q-1-0" || failed=`expr $failed + 1` >+testit "demote-q-1-1" demote "q-1-1" || failed=`expr $failed + 1` >+ >+remove_directory $PREFIX_ABS >+ > exit $failed >-- >2.29.0 > > >From 831cf6166cea50fbcb07b7f2ae5fbd1cf7d3724a Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Wed, 21 Oct 2020 17:04:12 +0200 >Subject: [PATCH 4/9] testprogs: Fix and improve tombstones-expunge 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 e4194355f4c346179ceafe5086897c0c50c108d6) >--- > testprogs/blackbox/tombstones-expunge.sh | 94 +++++++++++++----------- > 1 file changed, 50 insertions(+), 44 deletions(-) > >diff --git a/testprogs/blackbox/tombstones-expunge.sh b/testprogs/blackbox/tombstones-expunge.sh >index aa37cfe278f..9e0588377d7 100755 >--- a/testprogs/blackbox/tombstones-expunge.sh >+++ b/testprogs/blackbox/tombstones-expunge.sh >@@ -11,9 +11,12 @@ PREFIX_ABS="$1" > RELEASE="$2" > shift 2 > >+failed=0 >+ > . `dirname $0`/subunit.sh >+. `dirname $0`/common_test_fns.inc > >-release_dir=`dirname $0`/../../source4/selftest/provisions/$RELEASE >+release_dir="$SRCDIR_ABS/source4/selftest/provisions/$RELEASE" > > ldbadd="ldbadd" > if [ -x "$BINDIR/ldbadd" ]; then >@@ -35,13 +38,28 @@ if [ -x "$BINDIR/ldbsearch" ]; then > ldbsearch="$BINDIR/ldbsearch" > fi > >+samba_tdbrestore="tdbrestore" >+if [ -x "$BINDIR/tdbrestore" ]; then >+ samba_tdbrestore="$BINDIR/tdbrestore" >+fi >+ >+samba_undump="$SRCDIR_ABS/source4/selftest/provisions/undump.sh" >+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 >+ > undump() { >- if test -x $BINDIR/tdbrestore; >- then >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE $BINDIR/tdbrestore >- else >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE >- fi >+ $samba_undump $release_dir $PREFIX_ABS/$RELEASE $samba_tdbrestore > } > > tombstones_expunge() { >@@ -198,42 +216,30 @@ check_expected_unsorted_links() { > 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 "add_dangling_link" add_dangling_link >- testit "remove_one_link" remove_one_link >- testit "remove_one_user" remove_one_user >- testit "check_match_rule_links" check_match_rule_links >- testit_expect_failure "check_match_rule_links_negative" check_match_rule_links_negative >- testit_expect_failure "check_match_rule_links_overflow" check_match_rule_links_overflow >- testit_expect_failure "check_match_rule_links_null" check_match_rule_links_null >- testit_expect_failure "check_match_rule_links_hex" check_match_rule_links_hex >- testit_expect_failure "check_match_rule_links_hex2" check_match_rule_links_hex2 >- testit_expect_failure "check_match_rule_links_decimal" check_match_rule_links_decimal >- testit_expect_failure "check_match_rule_links_backlink" check_match_rule_links_backlink >- testit_expect_failure "check_match_rule_links_notlink" check_match_rule_links_notlink >- testit "add_unsorted_links" add_unsorted_links >- testit "tombstones_expunge" tombstones_expunge >- 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 "check_expected_unsorted_links" check_expected_unsorted_links >-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 "add_dangling_link" add_dangling_link || 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 "check_match_rule_links" check_match_rule_links || failed=`expr $failed + 1` >+testit_expect_failure "check_match_rule_links_negative" check_match_rule_links_negative || failed=`expr $failed + 1` >+testit_expect_failure "check_match_rule_links_overflow" check_match_rule_links_overflow || failed=`expr $failed + 1` >+testit_expect_failure "check_match_rule_links_null" check_match_rule_links_null || failed=`expr $failed + 1` >+testit_expect_failure "check_match_rule_links_hex" check_match_rule_links_hex || failed=`expr $failed + 1` >+testit_expect_failure "check_match_rule_links_hex2" check_match_rule_links_hex2 || failed=`expr $failed + 1` >+testit_expect_failure "check_match_rule_links_decimal" check_match_rule_links_decimal || failed=`expr $failed + 1` >+testit_expect_failure "check_match_rule_links_backlink" check_match_rule_links_backlink || failed=`expr $failed + 1` >+testit_expect_failure "check_match_rule_links_notlink" check_match_rule_links_notlink || failed=`expr $failed + 1` >+testit "add_unsorted_links" add_unsorted_links || failed=`expr $failed + 1` >+testit "tombstones_expunge" tombstones_expunge || 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 "check_expected_unsorted_links" check_expected_unsorted_links || failed=`expr $failed + 1` >+ >+remove_directory $PREFIX_ABS/${RELEASE} > > exit $failed >-- >2.29.0 > > >From da5b24b10ee59620828066ce58f7347758971d19 Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Wed, 21 Oct 2020 17:35:34 +0200 >Subject: [PATCH 5/9] testprogs: Fix and improve runtime-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 a9765084f11eae991516f150d1cd1c2370854ec7) >--- > testprogs/blackbox/common-links.sh | 16 +++---- > testprogs/blackbox/runtime-links.sh | 65 ++++++++++++++++------------- > 2 files changed, 44 insertions(+), 37 deletions(-) > >diff --git a/testprogs/blackbox/common-links.sh b/testprogs/blackbox/common-links.sh >index ee7310b5108..363234ae11c 100644 >--- a/testprogs/blackbox/common-links.sh >+++ b/testprogs/blackbox/common-links.sh >@@ -1,4 +1,4 @@ >-release_dir=`dirname $0`/../../source4/selftest/provisions/$RELEASE >+release_dir=$SRCDIR_ABS/source4/selftest/provisions/$RELEASE > > ldbadd="ldbadd" > if [ -x "$BINDIR/ldbadd" ]; then >@@ -25,13 +25,15 @@ if [ -x "$BINDIR/ldbrename" ]; then > ldbrename="$BINDIR/ldbrename" > fi > >+samba_tdbrestore="tdbrestore" >+if [ -x "$BINDIR/tdbrestore" ]; then >+ samba_tdbrestore="$BINDIR/tdbrestore" >+fi >+ >+samba_undump="$SRCDIR_ABS/source4/selftest/provisions/undump.sh" >+ > undump() { >- if test -x $BINDIR/tdbrestore; >- then >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE $BINDIR/tdbrestore >- else >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE >- fi >+ $samba_undump $release_dir $PREFIX_ABS/$RELEASE $samba_tdbrestore > } > > add_dangling_link() { >diff --git a/testprogs/blackbox/runtime-links.sh b/testprogs/blackbox/runtime-links.sh >index 344b822f07e..f8de66c60e7 100755 >--- a/testprogs/blackbox/runtime-links.sh >+++ b/testprogs/blackbox/runtime-links.sh >@@ -11,10 +11,28 @@ PREFIX_ABS="$1" > RELEASE="$2" > shift 2 > >+failed=0 >+ > . `dirname $0`/subunit.sh > > . `dirname $0`/common-links.sh > >+. `dirname $0`/common_test_fns.inc >+ >+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 >+ > delete_member_of_deleted_group() { > TZ=UTC $ldbdel -H tdb://$PREFIX_ABS/${RELEASE}/private/sam.ldb 'CN=User1 UT. Tester,CN=Users,DC=release-4-5-0-pre1,DC=samba,DC=corp' > if [ "$?" != "0" ]; then >@@ -36,39 +54,26 @@ delete_dangling_backlink_memberof_group() { > fi > } > >+remove_directory $PREFIX_ABS/${RELEASE} > >-if [ -d $release_dir ]; then >- testit $RELEASE undump >- 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 "dangling_one_way_link" dangling_one_way_link >- testit "dangling_one_way_dn" dangling_one_way_dn >- testit "deleted_one_way_dn" deleted_one_way_dn >- testit "add_dangling_multi_valued" add_dangling_multi_valued >+testit $RELEASE undump || 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 "dangling_one_way_link" dangling_one_way_link || 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 "add_dangling_multi_valued" add_dangling_multi_valued || failed=`expr $failed + 1` > > #Now things are set up, work with the DB >- testit "delete_member_of_deleted_group" delete_member_of_deleted_group >- testit "delete_backlink_memberof_deleted_group" delete_backlink_memberof_deleted_group >- testit "delete_dangling_backlink_memberof_group" delete_dangling_backlink_memberof_group >-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 >+testit "delete_member_of_deleted_group" delete_member_of_deleted_group || failed=`expr $failed + 1` >+testit "delete_backlink_memberof_deleted_group" delete_backlink_memberof_deleted_group || failed=`expr $failed + 1` >+testit "delete_dangling_backlink_memberof_group" delete_dangling_backlink_memberof_group || failed=`expr $failed + 1` > >-if [ -d $PREFIX_ABS/${RELEASE} ]; then >- rm -fr $PREFIX_ABS/${RELEASE} >-fi >+remove_directory $PREFIX_ABS/${RELEASE} > > exit $failed >-- >2.29.0 > > >From 627a0df89b4969792d327c0ff5da1e94a168b67d Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Wed, 21 Oct 2020 17:41:27 +0200 >Subject: [PATCH 6/9] 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) >--- > testprogs/blackbox/dbcheck-links.sh | 160 ++++++++++++++-------------- > 1 file 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 >-- >2.29.0 > > >From 38f6da3a575221b998221b33ba55311e82f25482 Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Wed, 21 Oct 2020 17:54:54 +0200 >Subject: [PATCH 7/9] testprogs: Fix and improve functionalprep 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 28720d66df017bfaadd44378dfffaaab4e30cf22) >--- > testprogs/blackbox/functionalprep.sh | 77 ++++++++++++++++------------ > 1 file changed, 44 insertions(+), 33 deletions(-) > >diff --git a/testprogs/blackbox/functionalprep.sh b/testprogs/blackbox/functionalprep.sh >index 1d37611ef7a..a5ac4b8bc7f 100755 >--- a/testprogs/blackbox/functionalprep.sh >+++ b/testprogs/blackbox/functionalprep.sh >@@ -10,45 +10,56 @@ fi > PREFIX_ABS="$1" > shift 1 > >+failed=0 >+ > . `dirname $0`/subunit.sh >+. `dirname $0`/common_test_fns.inc > > RELEASE="release-4-8-0-pre1" >-release_dir=`dirname $0`/../../source4/selftest/provisions/$RELEASE >+release_dir="$SRCDIR_ABS/source4/selftest/provisions/$RELEASE" > > OLD_RELEASE="release-4-1-0rc3" >-old_release_dir=`dirname $0`/../../source4/selftest/provisions/$OLD_RELEASE >+old_release_dir="$SRCDIR_ABS/source4/selftest/provisions/$OLD_RELEASE" > >-cleanup_output_directories() >-{ >- if [ -d $PREFIX_ABS/2012R2_schema ]; then >- rm -fr $PREFIX_ABS/2012R2_schema >- fi >+samba_tdbrestore="tdbrestore" >+if [ -x "$BINDIR/tdbrestore" ]; then >+ samba_tdbrestore="$BINDIR/tdbrestore" >+fi >+ >+samba_undump="$SRCDIR_ABS/source4/selftest/provisions/undump.sh" >+ >+if [ ! -x $samba_undump ] || [ ! -d $release_dir ] || [ ! -d $old_release_dir ]; then >+ subunit_start_test $RELEASE >+ subunit_skip_test $RELEASE <<EOF >+no test provision >+EOF > >- if [ -d $PREFIX_ABS/$RELEASE ]; then >- rm -fr $PREFIX_ABS/$RELEASE >- fi >+ subunit_start_test "functional_prep" >+ subunit_skip_test "functional_prep" <<EOF >+no test provision >+EOF >+ >+ subunit_start_test "functional_prep_old" >+ subunit_skip_test "functional_prep_old" <<EOF >+no test provision >+EOF > >- if [ -d $PREFIX_ABS/$OLD_RELEASE ]; then >- rm -fr $PREFIX_ABS/$OLD_RELEASE >- fi >+ exit 0 >+fi >+ >+cleanup_output_directories() >+{ >+ remove_directory $PREFIX_ABS/2012R2_schema >+ remove_directory $PREFIX_ABS/$RELEASE >+ remove_directory $PREFIX_ABS/$OLD_RELEASE > } > > undump() { >- if test -x $BINDIR/tdbrestore; >- then >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE $BINDIR/tdbrestore >- else >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE >- fi >+ $samba_undump $release_dir $PREFIX_ABS/$RELEASE $samba_tdbrestore > } > > undump_old() { >- if test -x $BINDIR/tdbrestore; >- then >- `dirname $0`/../../source4/selftest/provisions/undump.sh $old_release_dir $PREFIX_ABS/$OLD_RELEASE $BINDIR/tdbrestore >- else >- `dirname $0`/../../source4/selftest/provisions/undump.sh $old_release_dir $PREFIX_ABS/$OLD_RELEASE >- fi >+ $samba_undump $old_release_dir $PREFIX_ABS/$OLD_RELEASE $samba_tdbrestore > } > > >@@ -91,24 +102,24 @@ schema_upgrade() { > # double-check we cleaned up from the last test run > cleanup_output_directories > >-testit $RELEASE undump >+testit $RELEASE undump || failed=`expr $failed + 1` > > # Provision a DC based on 2012R2 schema >-testit "provision_2012R2_schema" provision_2012r2 >+testit "provision_2012R2_schema" provision_2012r2 || failed=`expr $failed + 1` > > # Perform functional prep up to 2012 R2 level >-testit "functional_prep" functional_prep >+testit "functional_prep" functional_prep || failed=`expr $failed + 1` > > # check that the databases are now the same >-testit "check_databases_same" ldapcmp >+testit "check_databases_same" ldapcmp || failed=`expr $failed + 1` > >-testit $OLD_RELEASE undump_old >+testit $OLD_RELEASE undump_old || failed=`expr $failed + 1` > >-testit "steal_roles" steal_roles >+testit "steal_roles" steal_roles || failed=`expr $failed + 1` > >-testit "schema_upgrade" schema_upgrade >+testit "schema_upgrade" schema_upgrade || failed=`expr $failed + 1` > >-testit "functional_prep_old" functional_prep_old >+testit "functional_prep_old" functional_prep_old || failed=`expr $failed + 1` > > cleanup_output_directories > >-- >2.29.0 > > >From 120d486d128517738f2c868f3458eb9eddd1b634 Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Wed, 21 Oct 2020 18:03:25 +0200 >Subject: [PATCH 8/9] testprogs: Fix and improve dbcheck-oldrelease 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 32305d607f43a84fa862f9f97c0dc1ea51b45ab7) >--- > testprogs/blackbox/dbcheck-oldrelease.sh | 240 ++++++++++++----------- > 1 file changed, 123 insertions(+), 117 deletions(-) > >diff --git a/testprogs/blackbox/dbcheck-oldrelease.sh b/testprogs/blackbox/dbcheck-oldrelease.sh >index 41c55178d4e..9e9924654be 100755 >--- a/testprogs/blackbox/dbcheck-oldrelease.sh >+++ b/testprogs/blackbox/dbcheck-oldrelease.sh >@@ -11,7 +11,10 @@ PREFIX_ABS="$1" > RELEASE="$2" > shift 2 > >+failed=0 >+ > . `dirname $0`/subunit.sh >+. `dirname $0`/common_test_fns.inc > > release_dir=`dirname $0`/../../source4/selftest/provisions/$RELEASE > >@@ -30,13 +33,94 @@ if [ -x "$BINDIR/ldbsearch" ]; then > ldbsearch="$BINDIR/ldbsearch" > fi > >+samba_tdbrestore="tdbrestore" >+if [ -x "$BINDIR/tdbrestore" ]; then >+ samba_tdbrestore="$BINDIR/tdbrestore" >+fi >+ >+samba_undump="$SRCDIR_ABS/source4/selftest/provisions/undump.sh" >+if [ ! -x $samba_undump ] || [ ! -d $release_dir ]; then >+ subunit_start_test $RELEASE >+ subunit_skip_test $RELEASE <<EOF >+no test provision >+EOF >+ >+ subunit_start_test "reindex" >+ subunit_skip_test "reindex" <<EOF >+no test provision >+EOF >+ subunit_start_test check_expected_before_values >+ subunit_skip_test check_expected_before_values<<EOF >+no test provision >+EOF >+ subunit_start_test "dbcheck" >+ subunit_skip_test "dbcheck" <<EOF >+no test provision >+EOF >+ subunit_start_test "dbcheck_clean" >+ subunit_skip_test "dbcheck_clean" <<EOF >+no test provision >+EOF >+ subunit_start_test check_expected_after_values >+ subunit_skip_test check_expected_after_values<<EOF >+no test provision >+EOF >+ subunit_start_test "dbcheck_acl_reset" >+ subunit_skip_test "dbcheck_acl_reset" <<EOF >+no test provision >+EOF >+ subunit_start_test "dbcheck_clean_acl_reset" >+ subunit_skip_test "dbcheck_clean_acl_reset" <<EOF >+no test provision >+EOF >+ subunit_start_test add_userparameters0 >+ subunit_skip_test add_userparameters0<<EOF >+no test provision >+EOF >+ >+ subunit_start_test add_userparameters1 >+ subunit_skip_test add_userparameters1<<EOF >+no test provision >+EOF >+ >+ subunit_start_test add_userparameters2 >+ subunit_skip_test add_userparameters2<<EOF >+no test provision >+EOF >+ >+ subunit_start_test add_userparameters3 >+ subunit_skip_test add_userparameters3<<EOF >+no test provision >+EOF >+ >+ subunit_start_test check_expected_before_values >+ subunit_skip_test check_expected_before_values<<EOF >+no test provision >+EOF >+ >+ subunit_start_test "dbcheck2" >+ subunit_skip_test "dbcheck2" <<EOF >+no test provision >+EOF >+ >+ subunit_start_test "referenceprovision" >+ subunit_skip_test "referenceprovision" <<EOF >+no test provision >+EOF >+ subunit_start_test "ldapcmp" >+ subunit_skip_test "ldapcmp" <<EOF >+no test provision >+EOF >+ subunit_start_test "ldapcmp_sd" >+ subunit_skip_test "ldapcmp_sd" <<EOF >+no test provision >+EOF >+ >+ exit 0 >+fi >+ > undump() { >- if test -x $BINDIR/tdbrestore; >- then >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE $BINDIR/tdbrestore >- else >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/$RELEASE >- fi >+ $samba_undump $release_dir $PREFIX_ABS/$RELEASE $samba_tdbrestore > } > > add_userparameters0() { >@@ -398,121 +482,43 @@ ldapcmp_sd() { > fi > } > >-if [ -d $release_dir ]; then >- testit $RELEASE undump >- testit "reindex" reindex >- testit "current_version_mod" do_current_version_mod >- testit "check_expected_before_values" check_expected_before_values >- testit_expect_failure "dbcheck_objectclass" dbcheck_objectclass >- testit_expect_failure "dbcheck" dbcheck >- testit "check_expected_after_values" check_expected_after_values >- testit "check_forced_duplicate_values" check_forced_duplicate_values >- testit_expect_failure "dbcheck_after_dup" dbcheck_after_dup >- testit "check_expected_after_dup_values" check_expected_after_dup_values >- testit "dbcheck_clean" dbcheck_clean >- testit_expect_failure "dbcheck_acl_reset" dbcheck_acl_reset >- testit "dbcheck_acl_reset_clean" dbcheck_acl_reset_clean >- testit "add_userparameters0" add_userparameters1 >- testit "add_userparameters1" add_userparameters1 >- testit "add_userparameters2" add_userparameters2 >- testit "add_userparameters3" add_userparameters3 >- testit_expect_failure "dbcheck2" dbcheck2 >- testit "dbcheck_clean2" dbcheck_clean2 >- testit "check_expected_userparameters" check_expected_userparameters >- testit "rm_deleted_objects" rm_deleted_objects >- # We must re-index again because rm_deleted_objects went behind >- # the back of the main sam.ldb. >- testit "reindex2" reindex >- testit_expect_failure "dbcheck3" dbcheck3 >- testit "dbcheck_clean3" dbcheck_clean3 >- testit "check_expected_after_deleted_objects" check_expected_after_deleted_objects >- testit "referenceprovision" referenceprovision >- testit "ldapcmp" ldapcmp >- testit "ldapcmp_sd" ldapcmp_sd >-else >- subunit_start_test $RELEASE >- subunit_skip_test $RELEASE <<EOF >-no test provision >-EOF >- >- subunit_start_test "reindex" >- subunit_skip_test "reindex" <<EOF >-no test provision >-EOF >- subunit_start_test check_expected_before_values >- subunit_skip_test check_expected_before_values<<EOF >-no test provision >-EOF >- subunit_start_test "dbcheck" >- subunit_skip_test "dbcheck" <<EOF >-no test provision >-EOF >- subunit_start_test "dbcheck_clean" >- subunit_skip_test "dbcheck_clean" <<EOF >-no test provision >-EOF >- subunit_start_test check_expected_after_values >- subunit_skip_test check_expected_after_values<<EOF >-no test provision >-EOF >- subunit_start_test "dbcheck_acl_reset" >- subunit_skip_test "dbcheck_acl_reset" <<EOF >-no test provision >-EOF >- subunit_start_test "dbcheck_clean_acl_reset" >- subunit_skip_test "dbcheck_clean_acl_reset" <<EOF >-no test provision >-EOF >- subunit_start_test add_userparameters0 >- subunit_skip_test add_userparameters0<<EOF >-no test provision >-EOF >- >- subunit_start_test add_userparameters1 >- subunit_skip_test add_userparameters1<<EOF >-no test provision >-EOF >- >- subunit_start_test add_userparameters2 >- subunit_skip_test add_userparameters2<<EOF >-no test provision >-EOF >- >- subunit_start_test add_userparameters3 >- subunit_skip_test add_userparameters3<<EOF >-no test provision >-EOF >- >- subunit_start_test check_expected_before_values >- subunit_skip_test check_expected_before_values<<EOF >-no test provision >-EOF >- >- subunit_start_test "dbcheck2" >- subunit_skip_test "dbcheck2" <<EOF >-no test provision >-EOF >- >- subunit_start_test "referenceprovision" >- subunit_skip_test "referenceprovision" <<EOF >-no test provision >-EOF >- subunit_start_test "ldapcmp" >- subunit_skip_test "ldapcmp" <<EOF >-no test provision >-EOF >- subunit_start_test "ldapcmp_sd" >- subunit_skip_test "ldapcmp_sd" <<EOF >-no test provision >-EOF >-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_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` > > if [ -d $PREFIX_ABS/${RELEASE} ]; then > rm -fr $PREFIX_ABS/${RELEASE} > fi > >-if [ -d $PREFIX_ABS/${RELEASE}_reference ]; then >- rm -fr $PREFIX_ABS/${RELEASE}_reference >-fi >+remove_directory $PREFIX_ABS/${RELEASE}_reference > > exit $failed >-- >2.29.0 > > >From 6bf28568dbe074918b4a306384befb77aec9e531 Mon Sep 17 00:00:00 2001 >From: Andreas Schneider <asn@samba.org> >Date: Wed, 21 Oct 2020 19:14:32 +0200 >Subject: [PATCH 9/9] testprogs: Fix and improve upgradeprovision-oldrelease > 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> > >Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> >Autobuild-Date(master): Thu Oct 22 17:28:39 UTC 2020 on sn-devel-184 > >(cherry picked from commit 1432d225b0426e366649cde4837eff58ee95b0c8) >--- > .../blackbox/upgradeprovision-oldrelease.sh | 254 +++++++++--------- > 1 file changed, 121 insertions(+), 133 deletions(-) > >diff --git a/testprogs/blackbox/upgradeprovision-oldrelease.sh b/testprogs/blackbox/upgradeprovision-oldrelease.sh >index 208baa54a02..5b095fca05e 100755 >--- a/testprogs/blackbox/upgradeprovision-oldrelease.sh >+++ b/testprogs/blackbox/upgradeprovision-oldrelease.sh >@@ -11,37 +11,113 @@ PREFIX_ABS="$1" > RELEASE="$2" > shift 2 > >+failed=0 >+ > . `dirname $0`/subunit.sh >+. `dirname $0`/common_test_fns.inc > >-release_dir=`dirname $0`/../../source4/selftest/provisions/${RELEASE} >+release_dir="$SRCDIR_ABS/source4/selftest/provisions/${RELEASE}" > > LDBDEL_BIN=ldbdel > if [ -x "$BINDIR/ldbdel" ]; then > LDBDEL_BIN=$BINDIR/ldbdel > fi > >+samba_tdbrestore="tdbrestore" >+if [ -x "$BINDIR/tdbrestore" ]; then >+ samba_tdbrestore="$BINDIR/tdbrestore" >+fi >+ >+samba_undump="$SRCDIR_ABS/source4/selftest/provisions/undump.sh" >+if [ ! -x $samba_undump ] || [ ! -d $release_dir ]; then >+ subunit_start_test "${RELEASE}" >+ subunit_skip_test "${RELEASE}" <<EOF >+no test provision >+EOF >+ >+ subunit_start_test "remove_dns_user" >+ subunit_skip_test "remove_dns_user" <<EOF >+no test provision >+EOF >+ >+ subunit_start_test "upgradeprovision" >+ subunit_skip_test "upgradeprovision" <<EOF >+no test provision >+EOF >+ subunit_start_test "upgradeprovision_full" >+ subunit_skip_test "upgradeprovision_full" <<EOF >+no test provision >+EOF >+ subunit_start_test "reindex" >+ subunit_skip_test "reindex" <<EOF >+no test provision >+EOF >+ subunit_start_test "dbcheck" >+ subunit_skip_test "dbcheck" <<EOF >+no test provision >+EOF >+ subunit_start_test "dbcheck_clean" >+ subunit_skip_test "dbcheck_clean" <<EOF >+no test provision >+EOF >+ # So far, only releases before 4.0.0rc6 need a dbcheck if upgradeprovision has already been run >+ if [ x$RELEASE != x"release-4-0-0" ]; then >+ subunit_start_test "dbcheck_full" >+ subunit_skip_test "dbcheck_full" <<EOF >+no test provision >+EOF >+ fi >+ subunit_start_test "dbcheck_full_clean" >+ subunit_skip_test "dbcheck_full_clean" <<EOF >+no test provision >+EOF >+ subunit_start_test "dbcheck_full_clean_well_known_acls" >+ subunit_skip_test "dbcheck_full_clean_well_known_acls" <<EOF >+no test provision >+EOF >+ subunit_start_test "samba_dnsupgrade" >+ subunit_skip_test "samba_dnsupgrade" <<EOF >+no test provision >+EOF >+ subunit_start_test "referenceprovision" >+ subunit_skip_test "referenceprovision" <<EOF >+no test provision >+EOF >+ subunit_start_test "ldapcmp" >+ subunit_skip_test "ldapcmp" <<EOF >+no test provision >+EOF >+ subunit_start_test "ldapcmp_full" >+ subunit_skip_test "ldapcmp_full" <<EOF >+no test provision >+EOF >+ subunit_start_test "ldapcmp_sd" >+ subunit_skip_test "ldapcmp_sd" <<EOF >+no test provision >+EOF >+ subunit_start_test "ldapcmp_full_sd" >+ subunit_skip_test "ldapcmp_full_sd" <<EOF >+no test provision >+EOF >+ >+ exit 0 >+fi >+ > undump() { >- if test -x $BINDIR/tdbrestore; >- then >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade $BINDIR/tdbrestore >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade_full $BINDIR/tdbrestore >- else >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade >- `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade_full >- fi >- cp -a $release_dir/private/*.keytab $PREFIX_ABS/${RELEASE}_upgrade/private/ >- cp -a $release_dir/sysvol $PREFIX_ABS/${RELEASE}_upgrade/ >- mkdir $PREFIX_ABS/${RELEASE}_upgrade/etc/ >- cat $release_dir/etc/smb.conf.template | \ >- sed "s|@@PREFIX@@|$PREFIX_ABS/${RELEASE}_upgrade|g" \ >- > $PREFIX_ABS/${RELEASE}_upgrade/etc/smb.conf >- >- cp -a $release_dir/private/*.keytab $PREFIX_ABS/${RELEASE}_upgrade_full/private/ >- cp -a $release_dir/sysvol $PREFIX_ABS/${RELEASE}_upgrade_full/ >- mkdir $PREFIX_ABS/${RELEASE}_upgrade_full/etc/ >- cat $release_dir/etc/smb.conf.template | \ >- sed "s|@@PREFIX@@|$PREFIX_ABS/${RELEASE}_upgrade_full|g" \ >- > $PREFIX_ABS/${RELEASE}_upgrade_full/etc/smb.conf >+ $samba_undump $release_dir $PREFIX_ABS/${RELEASE}_upgrade $samba_tdbrestore >+ $samba_undump $release_dir $PREFIX_ABS/${RELEASE}_upgrade_full $samba_tdbrestore >+ >+ cp -a $release_dir/private/*.keytab $PREFIX_ABS/${RELEASE}_upgrade/private/ >+ cp -a $release_dir/sysvol $PREFIX_ABS/${RELEASE}_upgrade/ >+ mkdir $PREFIX_ABS/${RELEASE}_upgrade/etc/ >+ sed -e "s|@@PREFIX@@|$PREFIX_ABS/${RELEASE}_upgrade|g" $release_dir/etc/smb.conf.template \ >+ > $PREFIX_ABS/${RELEASE}_upgrade/etc/smb.conf >+ >+ cp -a $release_dir/private/*.keytab $PREFIX_ABS/${RELEASE}_upgrade_full/private/ >+ cp -a $release_dir/sysvol $PREFIX_ABS/${RELEASE}_upgrade_full/ >+ mkdir $PREFIX_ABS/${RELEASE}_upgrade_full/etc/ >+ sed -e "s|@@PREFIX@@|$PREFIX_ABS/${RELEASE}_upgrade_full|g" $release_dir/etc/smb.conf.template \ >+ > $PREFIX_ABS/${RELEASE}_upgrade_full/etc/smb.conf > } > > remove_dns_user() { >@@ -122,116 +198,28 @@ ldapcmp_full_sd() { > $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb --two --sd --skip-missing-dn > } > >-if [ -d $PREFIX_ABS/${RELEASE}_upgrade ]; then >- rm -fr $PREFIX_ABS/${RELEASE}_upgrade >-fi >- >-if [ -d $PREFIX_ABS/${RELEASE}_upgrade_full ]; then >- rm -fr $PREFIX_ABS/${RELEASE}_upgrade_full >-fi >- >-if [ -d $PREFIX_ABS/${RELEASE}_upgrade_reference ]; then >- rm -fr $PREFIX_ABS/${RELEASE}_upgrade_reference >-fi >- >-if [ -d $release_dir ]; then >- testit $RELEASE undump >- testit "remove_dns_user" remove_dns_user >- testit "upgradeprovision" upgradeprovision >- testit "upgradeprovision_full" upgradeprovision_full >- testit "reindex" reindex >- testit_expect_failure "dbcheck" dbcheck >- testit_expect_failure "dbcheck_full" dbcheck_full >- testit "dbcheck_clean" dbcheck_clean >- testit "dbcheck_full_clean" dbcheck_full_clean >- testit "dbcheck_full_clean_well_known_acls" dbcheck_full_clean_well_known_acls >- testit "referenceprovision" referenceprovision >- testit "samba_upgradedns" samba_upgradedns >- testit "ldapcmp" ldapcmp >- testit "ldapcmp_sd" ldapcmp_sd >- testit "ldapcmp_full_sd" ldapcmp_full_sd >-else >- subunit_start_test "${RELEASE}" >- subunit_skip_test "${RELEASE}" <<EOF >-no test provision >-EOF >- >- subunit_start_test "remove_dns_user" >- subunit_skip_test "remove_dns_user" <<EOF >-no test provision >-EOF >- >- subunit_start_test "upgradeprovision" >- subunit_skip_test "upgradeprovision" <<EOF >-no test provision >-EOF >- subunit_start_test "upgradeprovision_full" >- subunit_skip_test "upgradeprovision_full" <<EOF >-no test provision >-EOF >- subunit_start_test "reindex" >- subunit_skip_test "reindex" <<EOF >-no test provision >-EOF >- subunit_start_test "dbcheck" >- subunit_skip_test "dbcheck" <<EOF >-no test provision >-EOF >- subunit_start_test "dbcheck_clean" >- subunit_skip_test "dbcheck_clean" <<EOF >-no test provision >-EOF >- # So far, only releases before 4.0.0rc6 need a dbcheck if upgradeprovision has already been run >- if [ x$RELEASE != x"release-4-0-0" ]; then >- subunit_start_test "dbcheck_full" >- subunit_skip_test "dbcheck_full" <<EOF >-no test provision >-EOF >- fi >- subunit_start_test "dbcheck_full_clean" >- subunit_skip_test "dbcheck_full_clean" <<EOF >-no test provision >-EOF >- subunit_start_test "dbcheck_full_clean_well_known_acls" >- subunit_skip_test "dbcheck_full_clean_well_known_acls" <<EOF >-no test provision >-EOF >- subunit_start_test "samba_dnsupgrade" >- subunit_skip_test "samba_dnsupgrade" <<EOF >-no test provision >-EOF >- subunit_start_test "referenceprovision" >- subunit_skip_test "referenceprovision" <<EOF >-no test provision >-EOF >- subunit_start_test "ldapcmp" >- subunit_skip_test "ldapcmp" <<EOF >-no test provision >-EOF >- subunit_start_test "ldapcmp_full" >- subunit_skip_test "ldapcmp_full" <<EOF >-no test provision >-EOF >- subunit_start_test "ldapcmp_sd" >- subunit_skip_test "ldapcmp_sd" <<EOF >-no test provision >-EOF >- subunit_start_test "ldapcmp_full_sd" >- subunit_skip_test "ldapcmp_full_sd" <<EOF >-no test provision >-EOF >-fi >- >-if [ -d $PREFIX_ABS/${RELEASE}_upgrade ]; then >- rm -fr $PREFIX_ABS/${RELEASE}_upgrade >-fi >- >-if [ -d $PREFIX_ABS/${RELEASE}_upgrade_full ]; then >- rm -fr $PREFIX_ABS/${RELEASE}_upgrade_full >-fi >- >-if [ -d $PREFIX_ABS/${RELEASE}_upgrade_reference ]; then >- rm -fr $PREFIX_ABS/${RELEASE}_upgrade_reference >-fi >+remove_directory $PREFIX_ABS/${RELEASE}_upgrade >+remove_directory $PREFIX_ABS/${RELEASE}_upgrade_full >+remove_directory $PREFIX_ABS/${RELEASE}_upgrade_reference >+ >+testit $RELEASE undump || failed=`expr $failed + 1` >+testit "remove_dns_user" remove_dns_user || failed=`expr $failed + 1` >+testit "upgradeprovision" upgradeprovision || failed=`expr $failed + 1` >+testit "upgradeprovision_full" upgradeprovision_full || failed=`expr $failed + 1` >+testit "reindex" reindex || failed=`expr $failed + 1` >+testit_expect_failure "dbcheck" dbcheck || failed=`expr $failed + 1` >+testit_expect_failure "dbcheck_full" dbcheck_full || failed=`expr $failed + 1` >+testit "dbcheck_clean" dbcheck_clean || failed=`expr $failed + 1` >+testit "dbcheck_full_clean" dbcheck_full_clean || failed=`expr $failed + 1` >+testit "dbcheck_full_clean_well_known_acls" dbcheck_full_clean_well_known_acls || failed=`expr $failed + 1` >+testit "referenceprovision" referenceprovision || failed=`expr $failed + 1` >+testit "samba_upgradedns" samba_upgradedns || failed=`expr $failed + 1` >+testit "ldapcmp" ldapcmp || failed=`expr $failed + 1` >+testit "ldapcmp_sd" ldapcmp_sd || failed=`expr $failed + 1` >+testit "ldapcmp_full_sd" ldapcmp_full_sd || failed=`expr $failed + 1` >+ >+remove_directory $PREFIX_ABS/${RELEASE}_upgrade >+remove_directory $PREFIX_ABS/${RELEASE}_upgrade_full >+remove_directory $PREFIX_ABS/${RELEASE}_upgrade_reference > > exit $failed >-- >2.29.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
ab
:
review+
Actions:
View
Attachments on
bug 14542
: 16303