]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
testprogs: Fix and improve runtime-links test
authorAndreas Schneider <asn@samba.org>
Wed, 21 Oct 2020 15:35:34 +0000 (17:35 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Thu, 22 Oct 2020 16:05:30 +0000 (16:05 +0000)
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>
testprogs/blackbox/common-links.sh
testprogs/blackbox/runtime-links.sh

index ee7310b510890293137ea0923b04c500f8ee2f84..363234ae11c3c0d8fe2425d95112ca789cb813f0 100644 (file)
@@ -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() {
index 344b822f07e34197c5913a0f0868644bdc0b24bd..f8de66c60e79bb55645f747ed772ec61dd0c8fe3 100755 (executable)
@@ -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