ctdb-tests: Update integration tests to use ctdb -X
[vlendec/samba-autobuild/.git] / ctdb / tests / simple / 11_ctdb_ip.sh
index 75edccd155045e4ab9ed2a70668cfa7d7ef88c8d..0e02b5e8171496aaedf698abaa6bb47d1a00b83e 100755 (executable)
@@ -15,7 +15,7 @@ Steps:
 2. Run 'ctdb ip' on one of the nodes and verify the list of IP
    addresses displayed (cross check the result with the output of
    'ip addr show' on the node).
-3. Verify that colon-separated output is generated with the -Y option.
+3. Verify that pipe-separated output is generated with the -X option.
 
 Expected results:
 
@@ -23,41 +23,48 @@ Expected results:
 EOF
 }
 
-. ctdb_test_functions.bash
+. "${TEST_SCRIPTS_DIR}/integration.bash"
 
 ctdb_test_init "$@"
 
 set -e
 
-onnode 0 $TEST_WRAP cluster_is_healthy
+cluster_is_healthy
 
 echo "Getting list of public IPs..."
-try_command_on_node 1 ctdb ip -n all
-ips=$(echo "$out" | sed -e '1d')
-colons=$(echo "$ips" | sed -e 's@^@:@' -e 's@$@:@' -e 's@ @:@')
-
-while read ip pnn ; do
-    try_command_on_node $pnn "ip addr show"
-    if [ "${out/inet ${ip}\/}" != "$out" ] ; then
-       echo "GOOD: node $pnn appears to have $ip assigned"
-    else
-       echo "BAD:  node $pnn does not appear to have $ip assigned"
-       testfailures=1
-    fi
-done <<<"$ips" # bashism to avoid problem setting variable in pipeline.
+try_command_on_node -v 1 "$CTDB ip -n all | tail -n +2"
+ips=$(echo "$out" | sed \
+       -e 's@ node\[@ @' \
+       -e 's@\].*$@@')
+machineout=$(echo "$out" | sed -r \
+       -e 's@^| |$@\|@g' \
+       -e 's@[[:alpha:]]+\[@@g' \
+       -e 's@\]@@g')
+
+if [ -z "$TEST_LOCAL_DAEMONS" ]; then
+    while read ip pnn ; do
+        try_command_on_node $pnn "ip addr show"
+        if [ "${out/inet* ${ip}\/}" != "$out" ] ; then
+            echo "GOOD: node $pnn appears to have $ip assigned"
+        else
+            echo "BAD:  node $pnn does not appear to have $ip assigned"
+            testfailures=1
+        fi
+    done <<<"$ips" # bashism to avoid problem setting variable in pipeline.
+fi
 
 [ "$testfailures" != 1 ] && echo "Looks good!"
 
-cmd="ctdb -Y ip -n all | sed -e '1d'"
+cmd="$CTDB -X ip -n all | tail -n +2"
 echo "Checking that \"$cmd\" produces expected output..."
 
 try_command_on_node 1 "$cmd"
-if [ "$out" = "$colons" ] ; then
+if [ "$out" = "$machineout" ] ; then
     echo "Yep, looks good!"
 else
     echo "Nope, it looks like this:"
     echo "$out"
+    echo "Should be like this:"
+    echo "$machineout"
     testfailures=1
 fi
-
-ctdb_test_exit