ctdb-tests: Use setup_ctdb_base() for eventscript unit tests
authorMartin Schwenke <martin@meltin.net>
Wed, 7 Feb 2018 00:58:51 +0000 (11:58 +1100)
committerMartin Schwenke <martins@samba.org>
Fri, 9 Mar 2018 06:08:25 +0000 (07:08 +0100)
There is currently a directory of symlinks that are copied during test
setup.  These symlinks are updated during installation so they point
to the right place when copied.

Instead, use setup_ctdb_base() during test setup.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/tests/eventscripts/etc-ctdb/events.d [deleted symlink]
ctdb/tests/eventscripts/etc-ctdb/functions [deleted symlink]
ctdb/tests/eventscripts/etc-ctdb/nfs-checks.d [deleted symlink]
ctdb/tests/eventscripts/etc-ctdb/nfs-linux-kernel-callout [deleted symlink]
ctdb/tests/eventscripts/etc-ctdb/statd-callout [deleted symlink]
ctdb/tests/eventscripts/scripts/local.sh
ctdb/wscript

diff --git a/ctdb/tests/eventscripts/etc-ctdb/events.d b/ctdb/tests/eventscripts/etc-ctdb/events.d
deleted file mode 120000 (symlink)
index 69d2396..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../config/events.d
\ No newline at end of file
diff --git a/ctdb/tests/eventscripts/etc-ctdb/functions b/ctdb/tests/eventscripts/etc-ctdb/functions
deleted file mode 120000 (symlink)
index 86ba904..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../config/functions
\ No newline at end of file
diff --git a/ctdb/tests/eventscripts/etc-ctdb/nfs-checks.d b/ctdb/tests/eventscripts/etc-ctdb/nfs-checks.d
deleted file mode 120000 (symlink)
index 3dc2161..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../config/nfs-checks.d
\ No newline at end of file
diff --git a/ctdb/tests/eventscripts/etc-ctdb/nfs-linux-kernel-callout b/ctdb/tests/eventscripts/etc-ctdb/nfs-linux-kernel-callout
deleted file mode 120000 (symlink)
index 29858c2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../config/nfs-linux-kernel-callout
\ No newline at end of file
diff --git a/ctdb/tests/eventscripts/etc-ctdb/statd-callout b/ctdb/tests/eventscripts/etc-ctdb/statd-callout
deleted file mode 120000 (symlink)
index dbd3c98..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../config/statd-callout
\ No newline at end of file
index 841d7288b99058861bd6df53a0b92ebb5b2c80ac..a09f513897146cb3036c4cbe52d84e4a6e7a0fba 100644 (file)
@@ -21,12 +21,13 @@ PATH="${stubs_dir}:${PATH}"
 
 export CTDB="ctdb"
 
+[ -n "$TEST_VAR_DIR" ] || die "TEST_VAR_DIR unset"
 export EVENTSCRIPTS_TESTS_VAR_DIR="${TEST_VAR_DIR}/unit_eventscripts"
-if [ -d "$EVENTSCRIPTS_TESTS_VAR_DIR" -a \
-    "$EVENTSCRIPTS_TESTS_VAR_DIR" != "/unit_eventscripts" ] ; then
-    rm -r "$EVENTSCRIPTS_TESTS_VAR_DIR"
+if [ -d "$EVENTSCRIPTS_TESTS_VAR_DIR" ] ; then
+       rm -r "$EVENTSCRIPTS_TESTS_VAR_DIR"
 fi
 mkdir -p "$EVENTSCRIPTS_TESTS_VAR_DIR"
+
 export CTDB_SCRIPT_VARDIR="$EVENTSCRIPTS_TESTS_VAR_DIR/scripts"
 
 export CTDB_LOGGING="file:${EVENTSCRIPTS_TESTS_VAR_DIR}/log.ctdb"
@@ -40,38 +41,12 @@ else
     die "Unable to setup \$CTDB_SYS_ETCDIR"
 fi
 
-if [ -d "${TEST_SUBDIR}/etc-ctdb" ] ; then
-    cp -prL "${TEST_SUBDIR}/etc-ctdb" "$EVENTSCRIPTS_TESTS_VAR_DIR"
-    export CTDB_BASE="${EVENTSCRIPTS_TESTS_VAR_DIR}/etc-ctdb"
-else
-    die "Unable to set \$CTDB_BASE"
-fi
-export CTDB_BASE
-
-if [ ! -d "${CTDB_BASE}/events.d" ] ; then
-    cat <<EOF
-ERROR: Directory ${CTDB_BASE}/events.d does not exist.
-
-That means that no eventscripts can be tested.
-
-One possible explanation:
-
-  You have CTDB installed via RPMs (or similar), so the regular
-  CTDB_BASE directory is in /etc/ctdb/
-
-  BUT
-
-  You have done a regular "configure" and "make install" so the tests
-  are installed under /usr/local/.
-
-If so, one possible hack to fix this is to create a symlink:
-
-  ln -s /etc/ctdb /usr/local/etc/ctdb
-
-This is nasty but it works...  :-)
-EOF
-    exit 1
-fi
+setup_ctdb_base "$EVENTSCRIPTS_TESTS_VAR_DIR" "etc-ctdb" \
+               events.d \
+               functions \
+               nfs-checks.d \
+               nfs-linux-kernel-callout \
+               statd-callout
 
 ######################################################################
 
index d4170996aad8e8ec23ff410e3232bf61a95926c4..f9523a64c6169eeda9d61751f0dcb033aa1afb3d 100644 (file)
@@ -944,20 +944,6 @@ def build(bld):
     bld.symlink_as(os.path.join(bld.env.BINDIR, 'ctdb_run_cluster_tests'),
                    'ctdb_run_tests')
 
-    test_eventscript_links = [
-        'events.d',
-        'functions',
-        'nfs-checks.d',
-        'nfs-linux-kernel-callout',
-        'statd-callout'
-    ]
-
-    test_link_dir = os.path.join(bld.env.CTDB_TEST_DATADIR,
-                                 'eventscripts/etc-ctdb')
-    for t in test_eventscript_links:
-        bld.symlink_as(os.path.join(test_link_dir, t),
-                       os.path.join(bld.env.CTDB_ETCDIR, t))
-
     # 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, 'onnode/functions'),