2008-11-25 17:53:28 +11:00
#!/bin/bash
test_info( )
{
cat <<EOF
Verify that 'ctdb getdebug' works as expected.
Prerequisites:
* An active CTDB cluster with at least 2 active nodes.
Steps:
1. Verify that the status on all of the ctdb nodes is 'OK' .
2. Get the current debug level on a node, using 'ctdb getdebug -n <node>' .
3. Verify that colon-separated output is generated with the -Y option.
4. Verify that the '-n all' option shows the debug level on all nodes.
Expected results:
* 'ctdb getdebug' shows the debug level on all the nodes.
EOF
}
. ctdb_test_functions.bash
ctdb_test_init " $@ "
set -e
2008-12-03 15:48:24 +11:00
onnode 0 $CTDB_TEST_WRAPPER cluster_is_healthy
2008-11-25 17:53:28 +11:00
2009-01-08 17:12:03 +11:00
try_command_on_node 0 " $CTDB listnodes | wc -l "
2008-11-25 17:53:28 +11:00
num_nodes = " $out "
2009-01-08 17:12:03 +11:00
try_command_on_node -v 1 " onnode -q all $CTDB getdebug "
2008-11-25 17:53:28 +11:00
getdebug_onnode = " $out "
sanity_check_output \
$num_nodes \
2009-05-01 17:40:45 +10:00
'^Node [[:digit:]]+ is at debug level [[:alpha:]]+ \([[:digit:]]\)$' \
2008-11-25 17:53:28 +11:00
" $out "
2009-01-08 17:12:03 +11:00
try_command_on_node -v 1 " $CTDB getdebug -n all "
2008-11-25 17:53:28 +11:00
getdebug_all = " $out "
cmd = ""
n = 0
while [ $n -lt $num_nodes ] ; do
2009-01-08 17:12:03 +11:00
cmd = " ${ cmd } ${ cmd : +; } $CTDB getdebug -n $n "
2008-11-25 17:53:28 +11:00
n = $(( $n + 1 ))
done
try_command_on_node -v 1 " $cmd "
getdebug_n = " $out "
if [ " $getdebug_onnode " = " $getdebug_all " -a \
" $getdebug_all " = " $getdebug_n " ] ; then
echo "They're the same... cool!"
else
echo "Error: they differ."
testfailures = 1
fi
colons = ""
nl = "
"
while read line ; do
2009-05-01 17:40:45 +10:00
t = $( echo " $line " | sed -r -e 's@Node [[:digit:]]+ is at debug level ([[:alpha:]]+) \((-?[[:digit:]])\)$@:\1:\2:@' )
2008-11-25 17:53:28 +11:00
colons = " ${ colons } ${ colons : + ${ nl } } :Name:Level: ${ nl } ${ t } "
done <<< " $getdebug_onnode "
2009-01-08 17:12:03 +11:00
cmd = " $CTDB -Y getdebug -n all "
2008-11-25 17:53:28 +11:00
echo " Checking that \" $cmd \" produces expected output... "
try_command_on_node 1 " $cmd "
if [ " $out " = " $colons " ] ; then
echo "Yep, looks good!"
else
echo "Nope, it looks like this:"
echo " $out "
testfailures = 1
fi
ctdb_test_exit