]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-tests: Update statd-callout tests to handle both modes
authorMartin Schwenke <mschwenke@ddn.com>
Fri, 30 Jun 2023 11:50:10 +0000 (21:50 +1000)
committerAmitay Isaacs <amitay@samba.org>
Fri, 13 Dec 2024 13:57:32 +0000 (13:57 +0000)
Add support for shared_dir mode.

Instead of duplicating all of the tests, update them so they can be
wrapped.  Created new tests for shared_dir mode that source the
"original" tests.

Signed-off-by: Martin Schwenke <mschwenke@ddn.com>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
15 files changed:
ctdb/tests/UNIT/eventscripts/scripts/statd-callout.sh
ctdb/tests/UNIT/eventscripts/statd-callout.001.sh
ctdb/tests/UNIT/eventscripts/statd-callout.002.sh
ctdb/tests/UNIT/eventscripts/statd-callout.003.sh
ctdb/tests/UNIT/eventscripts/statd-callout.004.sh
ctdb/tests/UNIT/eventscripts/statd-callout.005.sh
ctdb/tests/UNIT/eventscripts/statd-callout.006.sh
ctdb/tests/UNIT/eventscripts/statd-callout.007.sh
ctdb/tests/UNIT/eventscripts/statd-callout.101.sh [new file with mode: 0755]
ctdb/tests/UNIT/eventscripts/statd-callout.102.sh [new file with mode: 0755]
ctdb/tests/UNIT/eventscripts/statd-callout.103.sh [new file with mode: 0755]
ctdb/tests/UNIT/eventscripts/statd-callout.104.sh [new file with mode: 0755]
ctdb/tests/UNIT/eventscripts/statd-callout.105.sh [new file with mode: 0755]
ctdb/tests/UNIT/eventscripts/statd-callout.106.sh [new file with mode: 0755]
ctdb/tests/UNIT/eventscripts/statd-callout.107.sh [new file with mode: 0755]

index f27d83760e1090ee567a86f6475af14d2417011d..53b8dbc485b4fe0f3180006c7648b4bb66ed37e7 100644 (file)
@@ -1,10 +1,28 @@
 setup()
 {
+       CTDB_STATD_CALLOUT_SHARED_STORAGE="$1"
+
        setup_public_addresses
        ctdb_set_pnn
        setup_date "1234567890"
 
        export FAKE_NFS_HOSTNAME="cluster1"
+
+       case "$CTDB_STATD_CALLOUT_SHARED_STORAGE" in
+       "" | persistent_db)
+               CTDB_STATD_CALLOUT_SHARED_STORAGE="persistent_db:ctdb.tdb"
+               ;;
+       shared_dir)
+               export CTDB_NFS_SHARED_STATE_DIR="/clusterfs"
+               ;;
+       esac
+
+       export CTDB_STATD_CALLOUT_SHARED_STORAGE
+       statd_callout_mode="${CTDB_STATD_CALLOUT_SHARED_STORAGE%%:*}"
+       statd_callout_location="${CTDB_STATD_CALLOUT_SHARED_STORAGE#*:}"
+       if [ "$statd_callout_location" = "$CTDB_STATD_CALLOUT_SHARED_STORAGE" ]; then
+               statd_callout_location=""
+       fi
 }
 
 ctdb_catdb_format_pairs()
@@ -44,10 +62,53 @@ EOF
                done |
                ctdb_catdb_format_pairs | {
                ok
-               simple_test_command ctdb catdb ctdb.tdb
+               simple_test_command ctdb catdb "$statd_callout_location"
+       } || exit $?
+}
+
+check_shared_dir_statd_state()
+{
+       ctdb_get_my_public_addresses |
+               while read -r _ _sip _; do
+                       for _cip; do
+                               echo "statd-state@${_sip}@${_cip}"
+                       done
+               done |
+               sort | {
+               ok
+               _dir="${CTDB_TEST_TMP_DIR}${statd_callout_location}"
+               mkdir -p "$_dir"
+               (cd "$_dir" && simple_test_command ls)
        } || exit $?
 }
 
+check_shared_storage_statd_state()
+{
+       case "$statd_callout_mode" in
+       persistent_db)
+               if [ -z "$statd_callout_location" ]; then
+                       statd_callout_location="ctdb.tdb"
+               fi
+               check_ctdb_tdb_statd_state "$@"
+               ;;
+       shared_dir)
+               if [ -z "$statd_callout_location" ]; then
+                       statd_callout_location="statd"
+               fi
+               case "$statd_callout_location" in
+               /*)
+                       :
+                       ;;
+               *)
+                       _t="$CTDB_NFS_SHARED_STATE_DIR"
+                       statd_callout_location="${_t}/${statd_callout_location}"
+                       ;;
+               esac
+               check_shared_dir_statd_state "$@"
+               ;;
+       esac
+}
+
 check_statd_callout_smnotify()
 {
        # The state here doesn't really matter because the date stub
index 07421620d145454e97da225612fa538c695903a4..475750041c57b4e9e67415f0d6574b50729e7d0a 100755 (executable)
@@ -2,13 +2,18 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "single add-client"
+if [ -z "$CTDB_STATD_CALLOUT_SHARED_STORAGE" ]; then
+       CTDB_STATD_CALLOUT_SHARED_STORAGE="persistent_db"
+fi
+mode="$CTDB_STATD_CALLOUT_SHARED_STORAGE"
 
-setup
+define_test "${mode} - single add-client"
+
+setup "$mode"
 
 ok_null
 simple_test_event "startup"
 simple_test_event "add-client" "192.168.123.45"
 simple_test_event "update"
 
-check_ctdb_tdb_statd_state "192.168.123.45"
+check_shared_storage_statd_state "192.168.123.45"
index 6785d844d54f2f3b55b6743e01efbc77f04de3dd..7e5d7b2362182dc4bc3323778146754d5b0892e5 100755 (executable)
@@ -2,9 +2,14 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "2 x add-client, update"
+if [ -z "$CTDB_STATD_CALLOUT_SHARED_STORAGE" ]; then
+       CTDB_STATD_CALLOUT_SHARED_STORAGE="persistent_db"
+fi
+mode="$CTDB_STATD_CALLOUT_SHARED_STORAGE"
 
-setup
+define_test "${mode} - 2 x add-client, update"
+
+setup "$mode"
 
 ok_null
 simple_test_event "startup"
@@ -12,4 +17,4 @@ simple_test_event "add-client" "192.168.123.45"
 simple_test_event "add-client" "192.168.123.46"
 simple_test_event "update"
 
-check_ctdb_tdb_statd_state "192.168.123.45" "192.168.123.46"
+check_shared_storage_statd_state "192.168.123.45" "192.168.123.46"
index 796d3b6aab419497bfc6f49006b5293c3f570d23..2522c9569907a4cfa542f910f0ac200a01ca508c 100755 (executable)
@@ -2,9 +2,14 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "add-client, update, del-client, update"
+if [ -z "$CTDB_STATD_CALLOUT_SHARED_STORAGE" ]; then
+       CTDB_STATD_CALLOUT_SHARED_STORAGE="persistent_db"
+fi
+mode="$CTDB_STATD_CALLOUT_SHARED_STORAGE"
 
-setup
+define_test "${mode} - add-client, update, del-client, update"
+
+setup "$mode"
 
 ok_null
 simple_test_event "startup"
@@ -14,4 +19,4 @@ simple_test_event "update"
 simple_test_event "del-client" "192.168.123.45"
 simple_test_event "update"
 
-check_ctdb_tdb_statd_state
+check_shared_storage_statd_state
index 001da78a78050b85db039183988e79f4524d8c4a..1b1bc05490af50dd50ccc046abd4b2fbe766ee17 100755 (executable)
@@ -2,17 +2,22 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "single add-client, notify"
+if [ -z "$CTDB_STATD_CALLOUT_SHARED_STORAGE" ]; then
+       CTDB_STATD_CALLOUT_SHARED_STORAGE="persistent_db"
+fi
+mode="$CTDB_STATD_CALLOUT_SHARED_STORAGE"
 
-setup
+define_test "${mode} - single add-client, notify"
+
+setup "$mode"
 
 ok_null
 simple_test_event "startup"
 simple_test_event "add-client" "192.168.123.45"
 simple_test_event "update"
 
-check_ctdb_tdb_statd_state "192.168.123.45"
+check_shared_storage_statd_state "192.168.123.45"
 
 check_statd_callout_smnotify "192.168.123.45"
 
-check_ctdb_tdb_statd_state
+check_shared_storage_statd_state
index e9555da152d44dafc369283bf7dc94cd1ba76e6c..5a9274b14023aeb764b0e106a89ba9b465c0f5ae 100755 (executable)
@@ -2,9 +2,14 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "2 x add-client to different nodes, notify on 1"
+if [ -z "$CTDB_STATD_CALLOUT_SHARED_STORAGE" ]; then
+       CTDB_STATD_CALLOUT_SHARED_STORAGE="persistent_db"
+fi
+mode="$CTDB_STATD_CALLOUT_SHARED_STORAGE"
 
-setup
+define_test "${mode} - 2 x add-client to different nodes, notify on 1"
+
+setup "$mode"
 
 ok_null
 simple_test_event "startup"
@@ -24,4 +29,4 @@ check_statd_callout_smnotify "192.168.123.45"
 
 ctdb_set_pnn 1
 
-check_ctdb_tdb_statd_state "192.168.123.46"
+check_shared_storage_statd_state "192.168.123.46"
index 96c4cb517e55b4917217a138398e9ea51fbe950d..1721a5c50b3fe91569724936f0b851e474a6b976 100755 (executable)
@@ -2,9 +2,14 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "2 x add-client to different nodes, notify on both"
+if [ -z "$CTDB_STATD_CALLOUT_SHARED_STORAGE" ]; then
+       CTDB_STATD_CALLOUT_SHARED_STORAGE="persistent_db"
+fi
+mode="$CTDB_STATD_CALLOUT_SHARED_STORAGE"
 
-setup
+define_test "${mode} - 2 x add-client to different nodes, notify on both"
+
+setup "$mode"
 
 ok_null
 simple_test_event "startup"
@@ -26,4 +31,4 @@ ctdb_set_pnn 1
 
 check_statd_callout_smnotify "192.168.123.46"
 
-check_ctdb_tdb_statd_state
+check_shared_storage_statd_state
index ceeb248ef6c24551ea352067bf4606e399d3d7f7..071c583ebedafeac9898cd619f1e8881afb95cb6 100755 (executable)
@@ -2,9 +2,14 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "add-client, del-client, update"
+if [ -z "$CTDB_STATD_CALLOUT_SHARED_STORAGE" ]; then
+       CTDB_STATD_CALLOUT_SHARED_STORAGE="persistent_db"
+fi
+mode="$CTDB_STATD_CALLOUT_SHARED_STORAGE"
 
-setup
+define_test "${mode} - add-client, del-client, update"
+
+setup "$mode"
 
 ok_null
 simple_test_event "startup"
@@ -12,4 +17,4 @@ simple_test_event "add-client" "192.168.123.45"
 simple_test_event "del-client" "192.168.123.45"
 simple_test_event "update"
 
-check_ctdb_tdb_statd_state
+check_shared_storage_statd_state
diff --git a/ctdb/tests/UNIT/eventscripts/statd-callout.101.sh b/ctdb/tests/UNIT/eventscripts/statd-callout.101.sh
new file mode 100755 (executable)
index 0000000..b57bd95
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="shared_dir"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.001.sh"
diff --git a/ctdb/tests/UNIT/eventscripts/statd-callout.102.sh b/ctdb/tests/UNIT/eventscripts/statd-callout.102.sh
new file mode 100755 (executable)
index 0000000..0827669
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="shared_dir"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.002.sh"
diff --git a/ctdb/tests/UNIT/eventscripts/statd-callout.103.sh b/ctdb/tests/UNIT/eventscripts/statd-callout.103.sh
new file mode 100755 (executable)
index 0000000..07fb082
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="shared_dir"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.003.sh"
diff --git a/ctdb/tests/UNIT/eventscripts/statd-callout.104.sh b/ctdb/tests/UNIT/eventscripts/statd-callout.104.sh
new file mode 100755 (executable)
index 0000000..836a938
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="shared_dir"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.004.sh"
diff --git a/ctdb/tests/UNIT/eventscripts/statd-callout.105.sh b/ctdb/tests/UNIT/eventscripts/statd-callout.105.sh
new file mode 100755 (executable)
index 0000000..436f2d5
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="shared_dir"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.005.sh"
diff --git a/ctdb/tests/UNIT/eventscripts/statd-callout.106.sh b/ctdb/tests/UNIT/eventscripts/statd-callout.106.sh
new file mode 100755 (executable)
index 0000000..5e225f9
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="shared_dir"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.006.sh"
diff --git a/ctdb/tests/UNIT/eventscripts/statd-callout.107.sh b/ctdb/tests/UNIT/eventscripts/statd-callout.107.sh
new file mode 100755 (executable)
index 0000000..1a761c6
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+CTDB_STATD_CALLOUT_SHARED_STORAGE="shared_dir"
+
+_dir=$(dirname "$0")
+. "${_dir}/statd-callout.007.sh"