]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-tests: Do not require eval tricks for faking NFS callout
authorMartin Schwenke <martin@meltin.net>
Fri, 27 May 2022 13:16:28 +0000 (23:16 +1000)
committerAmitay Isaacs <amitay@samba.org>
Fri, 24 Jun 2022 09:49:33 +0000 (09:49 +0000)
The current code requires the use of eval in the NFS callout handling
to facilitate testing.  Improve the code to remove this need.

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
12 files changed:
ctdb/tests/UNIT/eventscripts/06.nfs.releaseip.001.sh
ctdb/tests/UNIT/eventscripts/06.nfs.releaseip.002.sh
ctdb/tests/UNIT/eventscripts/06.nfs.takeip.001.sh
ctdb/tests/UNIT/eventscripts/06.nfs.takeip.002.sh
ctdb/tests/UNIT/eventscripts/60.nfs.monitor.108.sh
ctdb/tests/UNIT/eventscripts/60.nfs.monitor.109.sh
ctdb/tests/UNIT/eventscripts/60.nfs.releaseip.002.sh
ctdb/tests/UNIT/eventscripts/60.nfs.shutdown.002.sh
ctdb/tests/UNIT/eventscripts/60.nfs.startup.002.sh
ctdb/tests/UNIT/eventscripts/60.nfs.takeip.002.sh
ctdb/tests/UNIT/eventscripts/scripts/local.sh
ctdb/tests/UNIT/eventscripts/stubs/nfs-fake-callout [new file with mode: 0755]

index fe5994e3f115aa6d4b9dce72fa9774a4d7fe8715..0546863c96d414214e0b7b7895c4f50af8be7cb1 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'true'"
+define_test "callout succeeds"
 
 setup
 
-setup_script_options "service" "60.nfs" <<EOF
-CTDB_NFS_CALLOUT="true"
-EOF
+setup_nfs_callout
 
 ok_null
 simple_test
index f46dd63761fc0cb87f695e4e207c209be6d4a615..dc44d2d1b8b9067e7a21a182bd14437d002f49e3 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'false', causes releaseip-pre to fail"
+define_test "callout causes releaseip-pre to fail"
 
 setup
 
-setup_script_options "service" "60.nfs" <<EOF
-CTDB_NFS_CALLOUT="echo releaseip-pre ; false"
-EOF
+setup_nfs_callout "releaseip-pre"
 
 required_result 1 "releaseip-pre"
 simple_test
index fe5994e3f115aa6d4b9dce72fa9774a4d7fe8715..0546863c96d414214e0b7b7895c4f50af8be7cb1 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'true'"
+define_test "callout succeeds"
 
 setup
 
-setup_script_options "service" "60.nfs" <<EOF
-CTDB_NFS_CALLOUT="true"
-EOF
+setup_nfs_callout
 
 ok_null
 simple_test
index 4c6cfba9573308ea7e366c3ae673896382696dc8..c9f3db9368f2b757c9607789b9d96797874a7999 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'false', causes takeip-pre to fail"
+define_test "callout causes takeip-pre to fail"
 
 setup
 
-setup_script_options "service" "60.nfs" <<EOF
-CTDB_NFS_CALLOUT="echo takeip-pre ; false"
-EOF
+setup_nfs_callout "takeip-pre"
 
 required_result 1 "takeip-pre"
 simple_test
index eb139edbad8aa31cbcedc3192f4247e3aab56257..39aba84ad766e89133f38ff328a8254a85b43953 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'false', causes monitor-pre to fail"
+define_test "callout causes monitor-pre to fail"
 
 setup
 
-setup_script_options <<EOF
-CTDB_NFS_CALLOUT="echo monitor-pre ; false"
-EOF
+setup_nfs_callout "monitor-pre"
 
 required_result 1 "monitor-pre"
 simple_test
index d0cf43c3b651c9f09b05cc6c69ae6b01dcb623aa..36572e9a407e7dc68b9cf985969c9457d9581eef 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'false', causes monitor-post to fail"
+define_test "callout causes monitor-post to fail"
 
 setup
 
-setup_script_options <<EOF
-CTDB_NFS_CALLOUT="echo monitor-post ; false"
-EOF
+setup_nfs_callout "monitor-post"
 
 required_result 1 "monitor-post"
 simple_test
index 7f0d6b115ec68430df796b7457dedb5c0b7cff69..998c3bae21e47061831ea7ca4ee3c34a438f80f9 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'false', causes releaseip to fail"
+define_test "callout causes releaseip to fail"
 
 setup
 
-setup_script_options <<EOF
-CTDB_NFS_CALLOUT="echo releaseip ; false"
-EOF
+setup_nfs_callout "releaseip"
 
 required_result 1 "releaseip"
 simple_test
index 11312d6d1ab4607769c14909144e02778b46953e..9db06561487dcc896d485d1714b1bda11a03a630 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'false', causes shutdown to fail"
+define_test "callout causes shutdown to fail"
 
 setup
 
-setup_script_options <<EOF
-CTDB_NFS_CALLOUT="echo shutdown ; false"
-EOF
+setup_nfs_callout "shutdown"
 
 required_result 1 "shutdown"
 simple_test
index ccea98e4bd7f99d0fdfec42de6757ba0c1e5aea1..bf881d9fa8d984ff0f10f563a747bdccd33e0b2b 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'false', causes startup to fail"
+define_test "callout causes startup to fail"
 
 setup
 
-setup_script_options <<EOF
-CTDB_NFS_CALLOUT="echo startup ; false"
-EOF
+setup_nfs_callout "startup"
 
 required_result 1 "startup"
 simple_test
index 4d887b77cbbaa571823e56e99bfd4f64526ec091..3f247ffa589ea732db9af35d8c4e15c47b6a7e88 100755 (executable)
@@ -2,13 +2,11 @@
 
 . "${TEST_SCRIPTS_DIR}/unit.sh"
 
-define_test "callout is 'false', causes takeip to fail"
+define_test "callout causes takeip to fail"
 
 setup
 
-setup_script_options <<EOF
-CTDB_NFS_CALLOUT="echo takeip ; false"
-EOF
+setup_nfs_callout "takeip"
 
 required_result 1 "takeip"
 simple_test
index 84a5fc9772fbf63084c12a2c7d9ddb3b98e7ff42..0b73f7d1a5324c141f2371e7148ebac3e8ce516d 100644 (file)
@@ -407,6 +407,12 @@ nfs_load_config ()
     done
 }
 
+setup_nfs_callout()
+{
+       export CTDB_NFS_CALLOUT="${CTDB_HELPER_BINDIR}/nfs-fake-callout"
+       export NFS_FAKE_CALLOUT_MAGIC="$1"
+}
+
 program_stack_trace ()
 {
        _prog="$1"
diff --git a/ctdb/tests/UNIT/eventscripts/stubs/nfs-fake-callout b/ctdb/tests/UNIT/eventscripts/stubs/nfs-fake-callout
new file mode 100755 (executable)
index 0000000..a4d43d0
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+case "$1" in
+register)
+       echo "ALL"
+       exit
+       ;;
+esac
+
+if [ "$NFS_FAKE_CALLOUT_MAGIC" = "$1" ]; then
+       echo "$1"
+       exit 1
+fi
+
+exit 0