diff options
author | Martin Schwenke <martin@meltin.net> | 2016-08-02 14:42:45 +1000 |
---|---|---|
committer | Martin Schwenke <martins@samba.org> | 2016-08-08 08:17:32 +0200 |
commit | c10dcc7b91df62f740a4789763234f8bb2f0a27f (patch) | |
tree | 58c2dfb951a8ac4049a051b05a11c1ac68eb47c8 | |
parent | 82cffc2f5759fb73bba37e45fc20b24b30ab0438 (diff) | |
download | samba-c10dcc7b91df62f740a4789763234f8bb2f0a27f.tar.gz |
ctdb-tests: Clean up and rename simple fetch_ring test
* Rename to clarify purpose of test
* Simplify test info to avoid unnecessary bit-rot
* Have fetch_ring print PNN for clearer output and update patterns in
test script to suit
* Simplify sanity checking pattern due to less data because of
--interactive/-i option
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12109
Pair-programmed-with: Amitay Isaacs <amitay@gmail.com>
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
-rwxr-xr-x | ctdb/tests/simple/52_ctdb_fetch.sh | 64 | ||||
-rwxr-xr-x | ctdb/tests/simple/52_fetch_ring.sh | 46 | ||||
-rw-r--r-- | ctdb/tests/src/fetch_ring.c | 3 |
3 files changed, 48 insertions, 65 deletions
diff --git a/ctdb/tests/simple/52_ctdb_fetch.sh b/ctdb/tests/simple/52_ctdb_fetch.sh deleted file mode 100755 index 60beef2c17a..00000000000 --- a/ctdb/tests/simple/52_ctdb_fetch.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash - -test_info() -{ - cat <<EOF -Run the ctdb_fetch test and sanity check the output. - -This doesn't test for performance regressions or similarly anything -useful. Only vague sanity checking of results is done. - -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. Run ctdb_fetch on all nodes with default options. -3. Ensure that the number of +ve and -ive messages are within 1% of - each other. -4. Ensure that the number of messages per second is greater than 10. - -Expected results: - -* ctdb_fetch runs without error and prints reasonable results. -EOF -} - -. "${TEST_SCRIPTS_DIR}/integration.bash" - -ctdb_test_init "$@" - -set -e - -cluster_is_healthy - -try_command_on_node 0 "$CTDB listnodes" -num_nodes=$(echo "$out" | wc -l) - -echo "Running ctdb_fetch on all $num_nodes nodes." -try_command_on_node -v -p all $CTDB_TEST_WRAPPER $VALGRIND fetch_ring -n $num_nodes - -pat='^(Fetch: [[:digit:]]+(\.[[:digit:]]+)? msgs/sec[[:space:]]?|msg_count=[[:digit:]]+ on node [[:digit:]]|Fetching final record|DATA:|Test data|Waiting for cluster[[:space:]]?|.*: Reqid wrap!|Sleeping for [[:digit:]]+ seconds|)+$' -sanity_check_output 1 "$pat" "$out" - -# Filter out the performance figures: -out_fetch=$(echo "$out" | egrep '^(Fetch: .*)+$') - -# Get the last line of output. -while read line ; do - prev=$line -done <<<"$out_fetch" - -# $prev should look like this: -# Fetch: 10670.93 msgs/sec -stuff="${prev##*Fetch: }" -mps="${stuff% msgs/sec*}" - -if [ ${mps%.*} -ge 10 ] ; then - echo "OK: $mps msgs/sec >= 10 msgs/sec" -else - echo "BAD: $mps msgs/sec < 10 msgs/sec" - exit 1 -fi diff --git a/ctdb/tests/simple/52_fetch_ring.sh b/ctdb/tests/simple/52_fetch_ring.sh new file mode 100755 index 00000000000..81e6a7a6bb0 --- /dev/null +++ b/ctdb/tests/simple/52_fetch_ring.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +test_info() +{ + cat <<EOF +Run the fetch_ring test and sanity check the output. + +Prerequisites: + +* An active CTDB cluster with at least 2 active nodes. +EOF +} + +. "${TEST_SCRIPTS_DIR}/integration.bash" + +ctdb_test_init "$@" + +set -e + +cluster_is_healthy + +try_command_on_node 0 "$CTDB listnodes" +num_nodes=$(echo "$out" | wc -l) + +echo "Running fetch_ring on all $num_nodes nodes." +try_command_on_node -v -p all $CTDB_TEST_WRAPPER $VALGRIND fetch_ring -n $num_nodes + +pat='^(Waiting for cluster|Fetch\[[[:digit:]]+\]: [[:digit:]]+(\.[[:digit:]]+)? msgs/sec)$' +sanity_check_output 1 "$pat" "$out" + +# Get the last line of output. +while read line ; do + prev=$line +done <<<"$out" + +# $prev should look like this: +# Fetch[1]: 10670.93 msgs/sec +stuff="${prev##*Fetch\[*\]: }" +mps="${stuff% msgs/sec*}" + +if [ ${mps%.*} -ge 10 ] ; then + echo "OK: $mps msgs/sec >= 10 msgs/sec" +else + echo "BAD: $mps msgs/sec < 10 msgs/sec" + exit 1 +fi diff --git a/ctdb/tests/src/fetch_ring.c b/ctdb/tests/src/fetch_ring.c index c875aed3a28..eb64648139e 100644 --- a/ctdb/tests/src/fetch_ring.c +++ b/ctdb/tests/src/fetch_ring.c @@ -270,7 +270,8 @@ static void fetch_ring_finish(struct tevent_req *subreq) t = timeval_elapsed(&state->start_time); - printf("Fetch: %.2f msgs/sec\n", state->msg_count / t); + printf("Fetch[%u]: %.2f msgs/sec\n", ctdb_client_pnn(state->client), + state->msg_count / t); subreq = ctdb_fetch_lock_send(state, state->ev, state->client, state->ctdb_db, state->key, false); |