summaryrefslogtreecommitdiff
path: root/testprogs
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2020-10-21 19:14:32 +0200
committerKarolin Seeger <kseeger@samba.org>2020-10-27 08:22:02 +0000
commit995478c937824801fca8494f81fbe3b478ef4e8a (patch)
tree425f1453d2aa0dacd5da7f51a67b782d5fd95b55 /testprogs
parente51a5e8aea40b2d61956126a5d73cb9b49ae3c64 (diff)
downloadsamba-995478c937824801fca8494f81fbe3b478ef4e8a.tar.gz
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)
Diffstat (limited to 'testprogs')
-rwxr-xr-xtestprogs/blackbox/upgradeprovision-oldrelease.sh254
1 files 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