diff options
author | Martin Schwenke <martin@meltin.net> | 2019-07-29 17:22:50 +1000 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2019-09-04 08:31:23 +0000 |
commit | 9063f5dde3f9fc43037539e4424944400c00ddb5 (patch) | |
tree | c80585ce330faa1ed6a58164c939acd2934ca23b /ctdb/tests | |
parent | a03443efef6488a5b2dc74962f77070c0c8ecb06 (diff) | |
download | samba-9063f5dde3f9fc43037539e4424944400c00ddb5.tar.gz |
ctdb-tests: Strengthen volatile DB traverse test
Check the record count more often, from multiple nodes. Add a case
with multiple records.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14085
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit ca4df06080709adf0cbebc95b0a70b4090dad5ba)
Diffstat (limited to 'ctdb/tests')
-rwxr-xr-x | ctdb/tests/simple/79_volatile_db_traverse.sh | 67 |
1 files changed, 52 insertions, 15 deletions
diff --git a/ctdb/tests/simple/79_volatile_db_traverse.sh b/ctdb/tests/simple/79_volatile_db_traverse.sh index af7e962f579..7f3007d5105 100755 --- a/ctdb/tests/simple/79_volatile_db_traverse.sh +++ b/ctdb/tests/simple/79_volatile_db_traverse.sh @@ -42,11 +42,56 @@ try_command_on_node 0 $CTDB writekey "$TESTDB" "foo" "bar0" echo "write foo=bar1 on node 1" try_command_on_node 1 $CTDB writekey "$TESTDB" "foo" "bar1" -echo "do traverse on node 0" -try_command_on_node -v 0 $CTDB catdb "$TESTDB" +echo -echo "do traverse on node 1" -try_command_on_node -v 1 $CTDB catdb "$TESTDB" +check_db_num_records () +{ + local node="$1" + local db="$2" + local n="$3" + + echo "Checking on node ${node} to ensure ${db} has ${n} records..." + try_command_on_node "$node" "${CTDB} catdb ${db}" + + num=$(sed -n -e 's|^Dumped \(.*\) records$|\1|p' "$outfile") + if [ "$num" = "$n" ] ; then + echo "OK: Number of records=${num}" + echo + else + echo "BAD: There were ${num} (!= ${n}) records" + cat "$outfile" + exit 1 + fi +} + +check_db_num_records 0 "$TESTDB" 1 +check_db_num_records 1 "$TESTDB" 1 + +cat <<EOF + +Again, this time with 10 records, rewriting 5 of them on the 2nd node + +EOF + +echo "wipe test database $TESTDB" +try_command_on_node 0 $CTDB wipedb "$TESTDB" + +for i in $(seq 0 9) ; do + k="foo${i}" + v="bar${i}@0" + echo "write ${k}=${v} on node 0" + try_command_on_node 0 "${CTDB} writekey ${TESTDB} ${k} ${v}" +done + +for i in $(seq 1 5) ; do + k="foo${i}" + v="bar${i}@1" + echo "write ${k}=${v} on node 1" + try_command_on_node 1 "${CTDB} writekey ${TESTDB} ${k} ${v}" +done + +check_db_num_records 0 "$TESTDB" 10 +check_db_num_records 1 "$TESTDB" 10 cat <<EOF @@ -63,8 +108,6 @@ try_command_on_node 1 $CTDB setlmasterrole off try_command_on_node -v 1 $CTDB getcapabilities wait_until_node_has_status 1 notlmaster 10 0 -# Wait for recovery and new VNN map to be pushed -#sleep_for 10 echo "write foo=bar0 on node 0" try_command_on_node 0 $CTDB writekey "$TESTDB" "foo" "bar0" @@ -72,16 +115,10 @@ try_command_on_node 0 $CTDB writekey "$TESTDB" "foo" "bar0" echo "write foo=bar1 on node 1" try_command_on_node 1 $CTDB writekey "$TESTDB" "foo" "bar1" -echo "do traverse on node 0" -try_command_on_node -v 0 $CTDB catdb "$TESTDB" +echo -num=$(sed -n -e 's|^Dumped \(.*\) records$|\1|p' "$outfile") -if [ "$num" = 1 ] ; then - echo "OK: There was 1 record" -else - echo "BAD: There were ${num} (!= 1) records" - exit 1 -fi +check_db_num_records 0 "$TESTDB" 1 +check_db_num_records 1 "$TESTDB" 1 if grep -q "^data(4) = \"bar1\"\$" "$outfile" ; then echo "OK: Data from node 1 was returned" |