From c981f9fca822302bf6ba7a8f272b9a2b9c0834ef Mon Sep 17 00:00:00 2001 From: Andreas Schneider 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 Reviewed-by: Alexander Bokovoy (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 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 Reviewed-by: Alexander Bokovoy (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 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 Reviewed-by: Alexander Bokovoy (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" < 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 Reviewed-by: Alexander Bokovoy (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 < 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 Reviewed-by: Alexander Bokovoy (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 < 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 Reviewed-by: Alexander Bokovoy (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 < 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 Reviewed-by: Alexander Bokovoy (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 < 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 Reviewed-by: Alexander Bokovoy (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 < 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 Reviewed-by: Alexander Bokovoy Autobuild-User(master): Andreas Schneider 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}" < $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}" <