[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Wed Dec 4 19:07:04 MST 2013


The branch, master has been updated
       via  97e8b56 idmap_cache: Use gencache_parse
       via  89013af idmap_cache: Use an fstring instead of talloc_asprintf
       via  051fb91 messaging3: Do not go through messages.tdb for self-sends
       via  549b70e torture: enum snapshots after FSRVP creation
       via  29b730a test: add fake_snap.pl for snapshot simulation
       via  b0bbb59 ctdb:tests: update README
       via  3c81066 ctdb/tests/scripts: Promote scripts/run_tests
       via  318f2cf ctdb/tests/scripts: Simplify the top-level test scripts
       via  bbd46e8 ctdb/tests/scripts: Sort command-line options
       via  f67a104 ctdb/tests/integration: Decentralise the daemon restart code
       via  f05db5e ctdb/tests/integration: Update daemons shutdown pseudo-test
       via  6b15fe2 ctdb/tests/simple: Local daemons version of setup_ctdb() overrides
       via  85a711f ctdb/tests/integration: Remove some unused functions
       via  a3fd8dd ctdb/tests/integration: Remove the time logging code
       via  28acce2 ctdb/tests/simple: Move the local daemons code to its own file
       via  ef0e8cc ctdb/tests/integration: Update NFS tickles test and supporting code
      from  de55856 lib/replace remove orphaned code

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 97e8b56250f30e73ad4bdcae292fe5c0df65e69a
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Dec 4 15:37:21 2013 +0000

    idmap_cache: Use gencache_parse
    
    This avoids a few tallocs and brings down user CPU a bit more
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Thu Dec  5 03:06:10 CET 2013 on sn-devel-104

commit 89013af15aa45311510318b517de8986580f4e2f
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Dec 4 15:14:03 2013 +0000

    idmap_cache: Use an fstring instead of talloc_asprintf
    
    In a test doing one million uid2sid calls this brings down user CPU from
    1.3 seconds to 0.9 seconds. And it saves a few code lines.
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 051fb9155642a8c74f892df3547203a55826d2b9
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Dec 3 13:20:38 2013 +0000

    messaging3: Do not go through messages.tdb for self-sends
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 549b70eb434889ba54d83776f3773f2eac513ba3
Author: David Disseldorp <ddiss at samba.org>
Date:   Tue Dec 3 14:45:50 2013 +0100

    torture: enum snapshots after FSRVP creation
    
    Issue an SMB2 ENUM_SNAPSHOTS ioctl following FSRVP snapshot creation to
    cover Explorer previous file version use-cases.
    
    This test will fail against Windows Server 2012, as FSRVP created
    snapshots are not exposed via the ENUM_SNAPSHOTS ioctl.
    
    Signed-off-by: David Disseldorp <ddiss at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 29b730a4487410e4bdb42d970dc21fe235dce654
Author: David Disseldorp <ddiss at samba.org>
Date:   Tue Dec 3 14:45:49 2013 +0100

    test: add fake_snap.pl for snapshot simulation
    
    The script simulates snapshots by simply copying file data from the base
    path to a snapshot path located under .snapshots/@GMT-%Y.%m.%d-%H.%M.%S/
    
    Signed-off-by: David Disseldorp <ddiss at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit b0bbb59c49bd068a0a8feea76b2564da8cfabb11
Author: Michael Adam <obnox at samba.org>
Date:   Fri Nov 29 10:15:20 2013 +0100

    ctdb:tests: update README
    
    explain how to run individual tests and test collections and remove mention of
    tests/scripts/run_tests which does not exist any more.
    
    Signed-off-by: Michael Adam <obnox at samba.org>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

commit 3c81066105b70921a616feede33e7327c0f49c61
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Dec 2 15:39:48 2013 +1100

    ctdb/tests/scripts: Promote scripts/run_tests
    
    The wrapper is not needed anymore.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 318f2cf9123875acdef39d170cdbc6683a79e896
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Dec 2 15:37:18 2013 +1100

    ctdb/tests/scripts: Simplify the top-level test scripts
    
    At the moment run_tests.sh has quite fragile argument processing.  It
    needs that annoying "--" between options and tests.  The random
    default (mktemp -d) for TEST_VAR_DIR is wrong and is worked around in
    various places.
    
    Instead:
    
    * Change the default behaviour to print a summary, add new option -N
      to turn off summary, and remove old -s option.
    
    * Change the default behaviour to run integration tests with local
      daemons, add new options -c to run on a cluster, remove old -l
      option.
    
    * Make $testdir/var the default if the tests are not installed, and
      $(mktemp -d ) the default if tests are installed.
    
    * Move the default tests for local/cluster into scripts/run_tests.
    
    run_tests.sh (and the run_cluster_tests.sh symlink) should behave as
    before but with slightly more reasonable defaults.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit bbd46e8634f5db7631ce80a4b81781adf507a383
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Dec 2 15:30:29 2013 +1100

    ctdb/tests/scripts: Sort command-line options
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit f67a1043b381f623ec9c97ac137568ca7ab6cd8a
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 29 14:07:43 2013 +1100

    ctdb/tests/integration: Decentralise the daemon restart code
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit f05db5edc434da61bc7cd7233c5b9cb61cd888bf
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 29 14:05:49 2013 +1100

    ctdb/tests/integration: Update daemons shutdown pseudo-test
    
    Don't scatter the TEST_LOCAL_DAEMONS logic around the code.  Limit it
    to the local daemons file.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 6b15fe247c4c026064a8f412011d484d3b74bfc7
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 28 17:27:06 2013 +1100

    ctdb/tests/simple: Local daemons version of setup_ctdb() overrides
    
    setup_ctdb() doesn't need to do anything on a cluster.  To avoid a
    conditional, just override it for local daemons.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 85a711f5a8e9aaea42595cc53998a250b0ff6469
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 28 17:26:09 2013 +1100

    ctdb/tests/integration: Remove some unused functions
    
    This was the start of some refactorisation that was never completed.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit a3fd8ddf3586f5e255df181d9b4e998f3c85e928
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 28 17:11:03 2013 +1100

    ctdb/tests/integration: Remove the time logging code
    
    This hasn't been required for a long time and is probably broken.  If
    it is needed in future then we know where to find it.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 28acce28626d17c27af831240a5ea593e0410616
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 28 17:08:43 2013 +1100

    ctdb/tests/simple: Move the local daemons code to its own file
    
    This is just a straight move.  The clever stuff will follow.  :-)
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit ef0e8cc1928dbd12c862a5e96710471ce3b4d023
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 28 16:43:55 2013 +1100

    ctdb/tests/integration: Update NFS tickles test and supporting code
    
    This currently requires an eventscript to be dynamically installed.
    This eventscript is only used to help determine when a monitor event
    has occurred.  This code is horrible and fragile.
    
    A better way is to just monitor the output of "ctdb scriptstatus".
    When changes it changes then a monitor event has occurred.
    
    Also remove the old code that checks for tickle information in shared
    storage.  CTDB hasn't done things this way for a long time.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Michael Adam <obnox at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 ctdb/tests/README                            |   28 ++-
 ctdb/tests/complex/31_nfs_tickle.sh          |   28 +--
 ctdb/tests/run_tests.sh                      |  335 +++++++++++++++++++---
 ctdb/tests/scripts/integration.bash          |  405 ++------------------------
 ctdb/tests/scripts/run_tests                 |  283 ------------------
 ctdb/tests/simple/00_ctdb_onnode.sh          |    9 -
 ctdb/tests/simple/99_daemons_shutdown.sh     |    6 +-
 ctdb/tests/simple/scripts/local.bash         |    3 +
 ctdb/tests/simple/scripts/local_daemons.bash |  135 +++++++++
 source3/lib/idmap_cache.c                    |   97 ++++---
 source3/lib/messages_local.c                 |   54 ++++
 source3/script/tests/fake_snap.pl            |   70 +++++
 source4/torture/rpc/fsrvp.c                  |  102 +++++++-
 13 files changed, 771 insertions(+), 784 deletions(-)
 delete mode 100755 ctdb/tests/scripts/run_tests
 create mode 100644 ctdb/tests/simple/scripts/local.bash
 create mode 100644 ctdb/tests/simple/scripts/local_daemons.bash
 create mode 100755 source3/script/tests/fake_snap.pl


Changeset truncated at 500 lines:

diff --git a/ctdb/tests/README b/ctdb/tests/README
index 1c9983b..92b637a 100644
--- a/ctdb/tests/README
+++ b/ctdb/tests/README
@@ -19,12 +19,30 @@ also pass options, which are then passed to run_tests.  However, if
 you just try to pass options to run_tests then you lose the default
 list of tests that are run.  You can't have everything...
 
-scripts/run_tests
------------------
+tests/run_tests.sh
+------------------
 
-The above scripts invoke tests/scripts/run_tests.  This script has a
-lot of command-line switches.  Some of the more useful options
-include:
+This script can be used to manually run all or selected unit tests and
+simple integration tests against local daemons. Test selection is done
+by specifying optional call parameters. If no parameter is given,
+all unit tests and simple integration tests are run.
+
+This runs all unit tests of the "tool" category:
+
+  ./tests/run_tests.sh tool
+
+In order to run a single test, one simply specifies the path of the
+test script to run as the last parameter, e.g.:
+
+  ./tests/run_tests.sh ./tests/eventscripts/00.ctdb.monitor.001
+  ./tests/run_tests.sh ./tests/simple/76_ctdb_pdb_recovery.sh
+
+One can also specify multiple test suites and tests:
+
+  ./tests/run_tests.sh eventscripts tool ./tests/onnode/0001.sh
+
+The script also has number of command-line switches.
+Some of the more useful options include:
 
   -s  Print a summary of tests results after running all tests
 
diff --git a/ctdb/tests/complex/31_nfs_tickle.sh b/ctdb/tests/complex/31_nfs_tickle.sh
index ce4ae81..b5ed47e 100755
--- a/ctdb/tests/complex/31_nfs_tickle.sh
+++ b/ctdb/tests/complex/31_nfs_tickle.sh
@@ -52,11 +52,7 @@ cluster_is_healthy
 # Reset configuration
 ctdb_restart_when_done
 
-ctdb_test_exit_hook_add ctdb_test_eventscript_uninstall
-
-ctdb_test_eventscript_install
-
-# We need this for later, so we know how long to sleep.
+# We need this for later, so we know how long to run nc for.
 try_command_on_node any $CTDB getvar MonitorInterval
 monitor_interval="${out#*= }"
 #echo "Monitor interval on node $test_node is $monitor_interval seconds."
@@ -81,27 +77,7 @@ echo "Sleeping until tickles are synchronised across nodes..."
 try_command_on_node $test_node $CTDB getvar TickleUpdateInterval
 sleep_for "${out#*= }"
 
-if try_command_on_node any "test -r /etc/ctdb/events.d/61.nfstickle" ; then
-    echo "Trying to determine NFS_TICKLE_SHARED_DIRECTORY..."
-    if [ -f /etc/sysconfig/nfs ]; then
-	f="/etc/sysconfig/nfs"
-    elif [ -f /etc/default/nfs ]; then
-	f="/etc/default/nfs"
-    elif [ -f /etc/ctdb/sysconfig/nfs ]; then
-	f="/etc/ctdb/sysconfig/nfs"
-    fi
-    try_command_on_node -v any "[ -r $f ] &&  sed -n -e s@^NFS_TICKLE_SHARED_DIRECTORY=@@p $f" || true
-
-    nfs_tickle_shared_directory="${out:-/gpfs/.ctdb/nfs-tickles}"
-
-    try_command_on_node $test_node hostname
-    test_hostname=$out
-
-    try_command_on_node -v any cat "${nfs_tickle_shared_directory}/$test_hostname/$test_ip"
-else
-    echo "That's OK, we'll use \"ctdb gettickles\", which is newer..."
-    try_command_on_node -v any "ctdb -Y gettickles $test_ip $test_port"
-fi
+try_command_on_node -v any "ctdb -Y gettickles $test_ip $test_port"
 
 if [ "${out/${src_socket}/}" != "$out" ] ; then
     echo "GOOD: NFS connection tracked OK."
diff --git a/ctdb/tests/run_tests.sh b/ctdb/tests/run_tests.sh
index 5fcd89d..2ff11ff 100755
--- a/ctdb/tests/run_tests.sh
+++ b/ctdb/tests/run_tests.sh
@@ -1,46 +1,311 @@
-#!/bin/sh
+#!/bin/bash
 
-test_dir=$(dirname "$0")
+usage() {
+    cat <<EOF
+Usage: $0 [OPTIONS] [TESTS]
+
+Options:
+  -A		Use "cat -A" to print test output (only some tests)
+  -c		Run integration tests on a cluster
+  -C		Clean up - kill daemons and remove TEST_VAR_DIR when done
+  -d		Print descriptions of tests instead of filenames (dodgy!)
+  -D		Show diff between failed/expected test output (some tests only)
+  -e		Exit on the first test failure
+  -H		No headers - for running single test with other wrapper
+  -N		Don't print summary of tests results after running all tests
+  -q		Quiet - don't show tests being run (hint: use with -s)
+  -S            Enable socket wrapper
+  -v		Verbose - print test output for non-failures (only some tests)
+  -V <dir>	Use <dir> as TEST_VAR_DIR
+  -x		Trace this script with the -x option
+  -X		Trace certain scripts run by tests using -x (only some tests)
+EOF
+    exit 1
+}
+
+# Print a message and exit.
+die ()
+{
+    echo "$1" >&2 ; exit ${2:-1}
+}
+
+######################################################################
+
+with_summary=true
+with_desc=false
+quiet=false
+exit_on_fail=false
+no_header=false
+socket_wrapper=false
+
+export TEST_VERBOSE=false
+export TEST_COMMAND_TRACE=false
+export TEST_CAT_RESULTS_OPTS=""
+export TEST_DIFF_RESULTS=false
+export TEST_LOCAL_DAEMONS
+[ -n "$TEST_LOCAL_DAEMONS" ] || TEST_LOCAL_DAEMONS=3
+export TEST_VAR_DIR=""
+export TEST_CLEANUP=false
+
+temp=$(getopt -n "$prog" -o "AcCdDehHNqSvV:xX" -l help -- "$@")
+
+[ $? != 0 ] && usage
+
+eval set -- "$temp"
+
+while true ; do
+    case "$1" in
+	-A) TEST_CAT_RESULTS_OPTS="-A" ; shift ;;
+	-c) TEST_LOCAL_DAEMONS="" ; shift ;;
+	-C) TEST_CLEANUP=true ; shift ;;
+	-d) with_desc=true ; shift ;;  # 4th line of output is description
+	-D) TEST_DIFF_RESULTS=true ; shift ;;
+	-e) exit_on_fail=true ; shift ;;
+	-H) no_header=true ; shift ;;
+	-N) with_summary=false ; shift ;;
+	-q) quiet=true ; shift ;;
+	-S) socket_wrapper=true ; shift ;;
+	-v) TEST_VERBOSE=true ; shift ;;
+	-V) TEST_VAR_DIR="$2" ; shift 2 ;;
+	-x) set -x; shift ;;
+	-X) TEST_COMMAND_TRACE=true ; shift ;;
+	--) shift ; break ;;
+	*) usage ;;
+    esac
+done
 
 case $(basename "$0") in
     *run_cluster_tests*)
-	# Running on a cluster:
-	# * print summary, run any integration tests against cluster
-	# * default to running: all integration tests, no unit tests
-	opts="-s"
-	tests="simple complex"
+	# Running on a cluster...  same as -c
+	TEST_LOCAL_DAEMONS=""
 	;;
-    *)
-	# Running on local machine:
-	# * print summary, run any integration tests against local daemons
-	# * default to running: all unit tests, simple integration tests
-	opts="-s -l"
-	tests="onnode takeover tool eventscripts simple"
-	# If running in the source tree then use a fixed TEST_VAR_DIR.
-	# If this script is installed using the INSTALL script then
-	# TEST_BIN_DIR will be set, so use this as the test.
-	if [ -z "$TEST_BIN_DIR" ] ; then
-	    opts="${opts} -V ${test_dir}/var"
-	fi
 esac
 
-# Allow options to be passed to this script.  However, if any options
-# are passed there must be a "--" between the options and the tests.
-# This makes it easy to handle options that take arguments.
-case "$1" in
-    -*)
-	while [ -n "$1" ] ; do
-	    case "$1" in
-		--) shift ; break ;;
-		*) opts="$opts $1" ; shift ;;
-	    esac
+if $quiet ; then
+    show_progress() { cat >/dev/null ; }
+else
+    show_progress() { cat ; }
+fi
+
+######################################################################
+
+ctdb_test_begin ()
+{
+    local name="$1"
+
+    teststarttime=$(date '+%s')
+    testduration=0
+
+    echo "--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--"
+    echo "Running test $name ($(date '+%T'))"
+    echo "--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--"
+}
+
+ctdb_test_end ()
+{
+    local name="$1" ; shift
+    local status="$1" ; shift
+    # "$@" is command-line
+
+    local interp="SKIPPED"
+    local statstr=" (reason $*)"
+    if [ -n "$status" ] ; then
+	if [ $status -eq 0 ] ; then
+	    interp="PASSED"
+	    statstr=""
+	    echo "ALL OK: $*"
+	else
+	    interp="FAILED"
+	    statstr=" (status $status)"
+	fi
+    fi
+
+    testduration=$(($(date +%s)-$teststarttime))
+
+    echo "=========================================================================="
+    echo "TEST ${interp}: ${name}${statstr} (duration: ${testduration}s)"
+    echo "=========================================================================="
+
+}
+
+ctdb_test_run ()
+{
+    local name="$1" ; shift
+
+    [ -n "$1" ] || set -- "$name"
+
+    $no_header || ctdb_test_begin "$name"
+
+    local status=0
+    "$@" || status=$?
+
+    $no_header || ctdb_test_end "$name" "$status" "$*"
+
+    return $status
+}
+
+######################################################################
+
+tests_total=0
+tests_passed=0
+tests_failed=0
+summary=""
+
+if ! which mktemp >/dev/null 2>&1 ; then
+    # Not perfect, but it will do...
+    mktemp ()
+    {
+	_dir=false
+	if [ "$1" = "-d" ] ; then
+	    _dir=true
+	fi
+	_t="${TMPDIR:-/tmp}/tmp.$$.$RANDOM"
+	(
+	    umask 077
+	    if $_dir ; then
+		mkdir "$_t"
+	    else
+		>"$_t"
+	    fi
+	)
+	echo "$_t"
+    }
+fi
+
+tf=$(mktemp)
+sf=$(mktemp)
+
+set -o pipefail
+
+run_one_test ()
+{
+    _f="$1"
+
+    [ -x "$_f" ] || die "test \"$_f\" is not executable"
+    tests_total=$(($tests_total + 1))
+
+    ctdb_test_run "$_f" | tee "$tf" | show_progress
+    status=$?
+    if [ $status -eq 0 ] ; then
+	tests_passed=$(($tests_passed + 1))
+    else
+	tests_failed=$(($tests_failed + 1))
+    fi
+    if $with_summary ; then
+	if [ $status -eq 0 ] ; then
+	    _t=" PASSED "
+	else
+	    _t="*FAILED*"
+	fi
+	if $with_desc ; then
+	    desc=$(tail -n +4 $tf | head -n 1)
+	    _f="$desc"
+	fi
+	echo "$_t $_f" >>"$sf"
+    fi
+}
+
+find_and_run_one_test ()
+{
+    _t="$1"
+    _dir="$2"
+
+    _f="${_dir}${_dir:+/}${_t}"
+
+    if [ -d "$_f" ] ; then
+	for _i in $(ls "${_f%/}/"*".sh" 2>/dev/null) ; do
+	    run_one_test "$_i"
+	    if $exit_on_fail && [ $status -ne 0 ] ; then
+		break
+	    fi
 	done
-esac
+	# No tests found?  Not a tests directory!  Not found...
+	[ -n "$status" ] || status=127
+    elif [ -f "$_f" ] ; then
+	run_one_test "$_f"
+    else
+	status=127
+    fi
+}
+
+# Following 2 lines may be modified by installation script
+export CTDB_TESTS_ARE_INSTALLED=false
+test_dir=$(dirname "$0")
+
+if [ -z "$TEST_VAR_DIR" ] ; then
+    if $CTDB_TESTS_ARE_INSTALLED ; then
+	TEST_VAR_DIR=$(mktemp -d)
+    else
+	TEST_VAR_DIR="${test_dir}/var"
+    fi
+fi
+mkdir -p "$TEST_VAR_DIR"
+
+# Must be absolute
+TEST_VAR_DIR=$(cd "$TEST_VAR_DIR"; echo "$PWD")
+echo "TEST_VAR_DIR=$TEST_VAR_DIR"
+
+if $socket_wrapper ; then
+    export SOCKET_WRAPPER_DIR="${TEST_VAR_DIR}/sw"
+    mkdir -p "$SOCKET_WRAPPER_DIR"
+fi
+
+export TEST_SCRIPTS_DIR="${test_dir}/scripts"
+
+# If no tests specified then run some defaults
+if [ -z "$1" ] ; then
+    if [ -n "$TEST_LOCAL_DAEMONS" ] ; then
+	set -- onnode takeover tool eventscripts simple
+    else
+	set -- simple complex
+    fi
+fi
+
+for f ; do
+    find_and_run_one_test "$f"
+
+    if [ $status -eq 127 ] ; then
+	# Find the the top-level tests directory
+	tests_dir=$(dirname $(cd $TEST_SCRIPTS_DIR; echo $PWD))
+	# Strip off current directory from beginning, if there, just
+	# to make paths more friendly.
+	tests_dir=${tests_dir#$PWD/}
+	find_and_run_one_test "$f" "$tests_dir"
+    fi
+
+    if [ $status -eq 127 ] ; then
+	    die "test \"$f\" is not recognised"
+    fi
+
+    if $exit_on_fail && [ $status -ne 0 ] ; then
+	    break
+    fi
+done
+
+rm -f "$tf"
+
+if $with_summary ; then
+    echo
+    cat "$sf"
+    echo
+    echo "${tests_passed}/${tests_total} tests passed"
+fi
+
+rm -f "$sf"
 
-# If no tests are specified, then run the defaults.
-[ -n "$1" ] || set -- $tests
+echo
 
-"${test_dir}/scripts/run_tests" $opts "$@" || exit 1
+if $TEST_CLEANUP ; then
+    echo "Removing TEST_VAR_DIR=$TEST_VAR_DIR"
+    rm -rf "$TEST_VAR_DIR"
+else
+    echo "Not cleaning up TEST_VAR_DIR=$TEST_VAR_DIR"
+fi
 
-echo "All OK"
-exit 0
+if $no_header || $exit_on_fail ; then
+    exit $status
+elif [ $tests_failed -gt 0 ] ; then
+    exit 1
+else
+    exit 0
+fi
diff --git a/ctdb/tests/scripts/integration.bash b/ctdb/tests/scripts/integration.bash
index c98d511..665fc7d 100644
--- a/ctdb/tests/scripts/integration.bash
+++ b/ctdb/tests/scripts/integration.bash
@@ -2,24 +2,6 @@
 
 . "${TEST_SCRIPTS_DIR}/common.sh"
 
-# If we're not running on a real cluster then we need a local copy of
-# ctdb (and other stuff) in $PATH and we will use local daemons.
-if [ -n "$TEST_LOCAL_DAEMONS" ] ; then
-    export CTDB_NODES_SOCKETS=""
-    for i in $(seq 0 $(($TEST_LOCAL_DAEMONS - 1))) ; do
-	CTDB_NODES_SOCKETS="${CTDB_NODES_SOCKETS}${CTDB_NODES_SOCKETS:+ }${TEST_VAR_DIR}/sock.${i}"
-    done
-
-    # Use in-tree binaries if running against local daemons.
-    # Otherwise CTDB need to be installed on all nodes.
-    if [ -n "$ctdb_dir" -a -d "${ctdb_dir}/bin" ] ; then
-	PATH="${ctdb_dir}/bin:${PATH}"
-        export CTDB_LOCK_HELPER="${ctdb_dir}/bin/ctdb_lock_helper"
-    fi
-
-    export CTDB_NODES="${TEST_VAR_DIR}/nodes.txt"
-fi
-
 ######################################################################
 
 export CTDB_TIMEOUT=60
@@ -41,54 +23,6 @@ PATH="${TEST_SCRIPTS_DIR}:${PATH}"
 
 ######################################################################
 
-ctdb_check_time_logs ()
-{
-    local threshold=20
-
-    local jump=false
-    local prev=""
-    local ds_prev=""
-    local node=""
-
-    out=$(onnode all tail -n 20 "${TEST_VAR_DIR}/ctdb.test.time.log" 2>&1)
-
-    if [ $? -eq 0 ] ; then
-	local line
-	while read line ; do
-	    case "$line" in
-		\>\>\ NODE:\ *\ \<\<)
-		    node="${line#>> NODE: }"
-		    node=${node% <<*}
-		    ds_prev=""
-		    ;;
-		*\ *)
-		    set -- $line
-		    ds_curr="$1${2:0:1}"
-		    if [ -n "$ds_prev" ] && \
-			[ $(($ds_curr - $ds_prev)) -ge $threshold ] ; then
-			echo "Node $node had time jump of $(($ds_curr - $ds_prev))ds between $(date +'%T' -d @${ds_prev%?}) and $(date +'%T' -d @${ds_curr%?})"
-			jump=true
-		    fi
-		    prev="$line"
-		    ds_prev="$ds_curr"


-- 
Samba Shared Repository


More information about the samba-cvs mailing list