diff options
author | Martin Schwenke <martin@meltin.net> | 2019-07-29 17:22:50 +1000 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2019-09-03 12:05:40 +0000 |
commit | 4cbd3cd970a8f145a8b7f2b58734bfb69560298b (patch) | |
tree | e2b218ed4cb131260ee0db86a891656e3782de2f /ctdb | |
parent | 3801c9582b759baaf1a609f0d55441d65db9c102 (diff) | |
download | samba-4cbd3cd970a8f145a8b7f2b58734bfb69560298b.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')
-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 b73a57a20fe..dbf3d668eb1 100755 --- a/ctdb/tests/simple/79_volatile_db_traverse.sh +++ b/ctdb/tests/simple/79_volatile_db_traverse.sh @@ -45,11 +45,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 @@ -66,8 +111,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" @@ -75,16 +118,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" |