+++ /dev/null
-../../config/functions
\ No newline at end of file
# Don't remove old directory since state is retained between tests
mkdir -p "$SIMPLE_TESTS_VAR_DIR"
-# onnode needs CTDB_BASE to be set when run in-tree
-if [ -z "$CTDB_BASE" ] ; then
- export CTDB_BASE="$TEST_SUBDIR"
-fi
-
-if [ -n "$TEST_LOCAL_DAEMONS" ] ; then
- . "${TEST_SUBDIR}/scripts/local_daemons.bash"
+if [ -z "$TEST_LOCAL_DAEMONS" ] ; then
+ # Running against a real cluster
+ setup_ctdb_base "$SIMPLE_TESTS_VAR_DIR" "ctdb-etc" \
+ functions \
+ nodes
+else
+ . "${TEST_SUBDIR}/scripts/local_daemons.bash"
fi
local pnn
for pnn in $(seq 0 $(($TEST_LOCAL_DAEMONS - 1))) ; do
local node_dir=$(node_dir "$pnn")
- mkdir -p "$node_dir"
+
+ setup_ctdb_base "$SIMPLE_TESTS_VAR_DIR" "node.${pnn}" \
+ functions
+
+ if [ "$node_dir" != "$CTDB_BASE" ] ; then
+ die "Inconsistent CTDB_BASE"
+ fi
local public_addresses="${node_dir}/public_addresses"
start_ctdb_1 ()
{
local pnn="$1"
+ local node_dir=$(node_dir "$pnn")
local pidfile=$(node_pidfile "$pnn")
local conf=$(node_conf "$pnn")
fi
CTDBD="${VALGRIND} ctdbd --sloppy-start --nopublicipcheck" \
+ CTDB_BASE="$node_dir" \
CTDBD_CONF="$conf" \
CTDB_PIDFILE="$pidfile" \
ctdbd_wrapper start
stop_ctdb_1 ()
{
local pnn="$1"
+ local node_dir=$(node_dir "$pnn")
local pidfile=$(node_pidfile "$pnn")
local conf=$(node_conf "$pnn")
- CTDBD_CONF="$conf" \
- CTDB_PIDFILE="$pidfile" \
- ctdbd_wrapper stop
+ CTDB_BASE="$node_dir" \
+ CTDBD_CONF="$conf" \
+ CTDB_PIDFILE="$pidfile" \
+ ctdbd_wrapper stop
}
daemons_stop ()
socket=$(node_socket "$i")
CTDB_NODES_SOCKETS="${CTDB_NODES_SOCKETS}${CTDB_NODES_SOCKETS:+ }${socket}"
done
+
+# Need a default CTDB_BASE for onnode (to find the functions file).
+# Any node will do, so pick the 1st...
+export CTDB_BASE=$(node_dir 0)
bld.symlink_as(os.path.join(bld.env.BINDIR, 'ctdb_run_cluster_tests'),
'ctdb_run_tests')
- # Tests that use onnode need to overwrite link to in-tree
- # functions file when installed
- bld.symlink_as(os.path.join(bld.env.CTDB_TEST_DATADIR, 'simple/functions'),
- os.path.join(bld.env.CTDB_ETCDIR, 'functions'))
-
- # Need a link to nodes file because $CTDB_BASE is overridden
- bld.symlink_as(os.path.join(bld.env.CTDB_TEST_DATADIR, 'simple/nodes'),
- os.path.join(bld.env.CTDB_ETCDIR, 'nodes'))
-
def testonly(ctx):
cmd = 'tests/run_tests.sh -V tests/var'