ctdb-tests: Clean up fake share handling
authorMartin Schwenke <martin@meltin.net>
Mon, 12 Feb 2018 04:41:27 +0000 (15:41 +1100)
committerAmitay Isaacs <amitay@samba.org>
Wed, 28 Mar 2018 00:57:17 +0000 (02:57 +0200)
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/tests/eventscripts/50.samba.monitor.105.sh
ctdb/tests/eventscripts/50.samba.monitor.106.sh
ctdb/tests/eventscripts/50.samba.monitor.110.sh
ctdb/tests/eventscripts/50.samba.monitor.111.sh
ctdb/tests/eventscripts/60.nfs.monitor.161.sh
ctdb/tests/eventscripts/60.nfs.monitor.162.sh
ctdb/tests/eventscripts/scripts/local.sh

index 9936eff806491bebb6f90c69c1194cabf94062e8..c6e7dcc8d288442532ac722346c27dad74729e9c 100755 (executable)
@@ -5,8 +5,8 @@
 define_test "non-existent share path"
 
 setup_samba
-shares_missing "ERROR: samba directory \"%s\" not available" 2
 
-required_result 1 "$MISSING_SHARES_TEXT"
+out=$(shares_missing "ERROR: samba directory \"%s\" not available" 2)
 
+required_result 1 "$out"
 simple_test
index 8fabfb33b6d9743a5156943adbb56fdfb2063af4..6090961e556319a12376b8f1fff768ca2bdd7811 100755 (executable)
@@ -5,7 +5,6 @@
 define_test "non-existent share - not checked"
 
 setup_samba
-shares_missing "ERROR: samba directory \"%s\" not available" 2
 
 export CTDB_SAMBA_SKIP_SHARE_CHECK="yes"
 
index 83a2271f268e6305b92b0a078cb2914bac8d7377..3c2081af0e9b8106644d1a256230783da9519aac 100755 (executable)
@@ -11,9 +11,9 @@ required_result 1 <<EOF
 ERROR: smb.conf cache create failed - testparm failed with:
 Load smb config files from ${CTDB_SYS_ETCDIR}/samba/smb.conf
 rlimit_max: increasing rlimit_max (2048) to minimum Windows limit (16384)
-Processing section "[1_existing]"
-Processing section "[2_existing]"
-Processing section "[3_existing]"
+Processing section "[share1]"
+Processing section "[share2]"
+Processing section "[share3]"
 Loaded services file OK.
 WARNING: 'workgroup' and 'netbios name' must differ.
 EOF
index 034e0128b590a25a17ea432601c2e2b0304cf511..df6662f3a101f7ffaeaacab53ff3bbe891926f50 100755 (executable)
@@ -14,9 +14,9 @@ required_result 1 <<EOF
 WARNING: smb.conf cache update failed - using old cache file
 Load smb config files from ${CTDB_SYS_ETCDIR}/samba/smb.conf
 rlimit_max: increasing rlimit_max (2048) to minimum Windows limit (16384)
-Processing section "[1_existing]"
-Processing section "[2_existing]"
-Processing section "[3_existing]"
+Processing section "[share1]"
+Processing section "[share2]"
+Processing section "[share3]"
 Loaded services file OK.
 WARNING: 'workgroup' and 'netbios name' must differ.
 
index 1e07c181c2e6faab57187282baf8f28f5cf7b7d1..11c4f78172e34a5c973e1474f7f31ffd01e8f564 100755 (executable)
@@ -6,8 +6,7 @@ define_test "2nd share missing"
 
 setup_nfs
 
-shares_missing "ERROR: nfs directory \"%s\" not available" 2
-
-required_result 1 "$MISSING_SHARES_TEXT"
+out=$(shares_missing "ERROR: nfs directory \"%s\" not available" 2)
 
+required_result 1 "$out"
 simple_test
index ccd4ca84ea1a6b9858e20e8bbc18d7d2b8afe05d..4a8be869e1db8cb99ab2073ccc0b6669df3950d3 100755 (executable)
@@ -7,8 +7,6 @@ define_test "2nd share missing, skipping share checks"
 setup_nfs
 export CTDB_NFS_SKIP_SHARE_CHECK="yes"
 
-shares_missing "ERROR: nfs directory \"%s\" not available" 2
-
 ok_null
 
 simple_test
index 73a77dce74682731063836ad56cac3d99fde45fe..7c17c6bf77f36b28210513a01bc01dc41f19a16a 100644 (file)
@@ -89,14 +89,7 @@ setup_date ()
 
 setup_generic ()
 {
-    debug "Setting up shares (3 existing shares)"
-    # Create 3 fake shares/exports.
-    export FAKE_SHARES=""
-    for i in $(seq 1 3) ; do
-       _s="${EVENTSCRIPTS_TESTS_VAR_DIR}/shares/${i}_existing"
-       mkdir -p "$_s"
-       FAKE_SHARES="${FAKE_SHARES}${FAKE_SHARES:+ }${_s}"
-    done
+    setup_shares
 
     export FAKE_PROC_NET_BONDING="$EVENTSCRIPTS_TESTS_VAR_DIR/proc-net-bonding"
     mkdir -p "$FAKE_PROC_NET_BONDING"
@@ -162,28 +155,43 @@ setup_tcp_connections_unkillable ()
        export FAKE_NETSTAT_TCP_ESTABLISHED="$_t"
 }
 
+setup_shares ()
+{
+       debug "Setting up shares (3 existing shares)"
+       # Create 3 fake shares/exports.
+       export FAKE_SHARES=""
+       for i in $(seq 1 3) ; do
+               _s="${EVENTSCRIPTS_TESTS_VAR_DIR}/shares/share${i}"
+               mkdir -p "$_s"
+               FAKE_SHARES="${FAKE_SHARES}${FAKE_SHARES:+ }${_s}"
+       done
+}
+
 shares_missing ()
 {
-    _fmt="$1" ; shift
+       # Mark some shares as non-existent
+       _fmt="$1" ; shift
 
-    # Replace some shares with non-existent ones.
-    _t=""
-    _n=1
-    _nl="
+       _out=""
+       _nl="
 "
-    export MISSING_SHARES_TEXT=""
-    for _i in $FAKE_SHARES ; do
-       if [ $_n = "$1" ] ; then
-           shift
-           _i="${_i%_existing}_missing"
-           debug "Replacing share $_n with missing share \"$_i\""
-           rmdir "$_i" 2>/dev/null || true
-           MISSING_SHARES_TEXT="${MISSING_SHARES_TEXT}${MISSING_SHARES_TEXT:+${_nl}}"$(printf "$_fmt" "${_i}")
-       fi
-       _t="${_t}${_t:+ }${_i}"
-       _n=$(($_n + 1))
-    done
-    FAKE_SHARES="$_t"
+
+       _n=1
+       for _i in $FAKE_SHARES ; do
+               for _j ; do
+                       if [ $_n -ne "$_j" ] ; then
+                               continue
+                       fi
+
+                       debug "Mark share $_n as missing share \"$_i\""
+                       rmdir "$_i"
+                       _t=$(printf "$_fmt" "${_i}")
+                       _out="${_out}${_out:+${_nl}}${_t}"
+               done
+               _n=$(($_n + 1))
+       done
+
+       echo "$_out"
 }
 
 # Setup some fake /proc/net/bonding files with just enough info for