summaryrefslogtreecommitdiff
path: root/ctdb/tests/INTEGRATION/simple/basics.011.statistics_reset.sh
blob: 51f34d9f03402648faf652b0696cc6a6cc9a4238 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env bash

# Verify that 'ctdb statisticsreset' works as expected

# This is pretty superficial.  It just checks that a few particular
# items reduce.

. "${TEST_SCRIPTS_DIR}/integration.bash"

set -e

ctdb_test_init

try_command_on_node 0 "$CTDB listnodes | wc -l"
num_nodes="$out"

get_stat ()
{
	local label="$1"

	cat "$outfile" |
	sed -rn -e "s@^[[:space:]]+${label}[[:space:]]+([[:digit:]])@\1@p" |
	head -1
}

check_reduced ()
{
    local label="$1"
    local before="$2"
    local after="$3"

    if [ $after -lt $before ] ; then
	echo "GOOD: ${label} reduced from ${before} to ${after}"
    else
	die "BAD: ${label} did not reduce from ${before} to ${after}"
    fi
}

n=0
while [ $n -lt $num_nodes ] ; do
    echo "Getting initial statistics for node ${n}..."

    try_command_on_node -v $n $CTDB statistics

    before_req_control=$(get_stat "req_control")
    before_reply_control=$(get_stat "reply_control")
    before_node_packets_recv=$(get_stat "node_packets_recv")

    try_command_on_node $n $CTDB statisticsreset

    try_command_on_node -v $n $CTDB statistics

    after_req_control=$(get_stat "req_control")
    after_reply_control=$(get_stat "reply_control")
    after_node_packets_recv=$(get_stat "node_packets_recv")

    check_reduced "req_control" "$before_req_control" "$after_req_control"
    check_reduced "reply_control" "$before_reply_control" "$after_reply_control"
    check_reduced "node_packets_recv" "$before_node_packets_recv" "$after_node_packets_recv"

    n=$(($n + 1))
done