Loading tests/qemu-iotests/081 +86 −0 Original line number Diff line number Diff line Loading @@ -198,6 +198,92 @@ quorum="$quorum,file.children.2.driver=raw" $QEMU_IO -c "open -o $quorum" | _filter_qemu_io echo echo "== dynamically adding a child to a quorum ==" for verify in false true; do run_qemu <<EOF { "execute": "qmp_capabilities" } { "execute": "blockdev-add", "arguments": { "driver": "quorum", "node-name": "drive0-quorum", "vote-threshold": 2, "blkverify": ${verify}, "children": [ { "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/1.raw" } }, { "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/2.raw" } } ] } } { "execute": "blockdev-add", "arguments": { "node-name": "drive3", "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/2.raw" } } } { "execute": "x-blockdev-change", "arguments": { "parent": "drive0-quorum", "node": "drive3" } } { "execute": "quit" } EOF done echo echo "== dynamically removing a child from a quorum ==" for verify in false true; do for vote_threshold in 1 2; do run_qemu <<EOF { "execute": "qmp_capabilities" } { "execute": "blockdev-add", "arguments": { "driver": "quorum", "node-name": "drive0-quorum", "vote-threshold": ${vote_threshold}, "blkverify": ${verify}, "children": [ { "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/1.raw" } }, { "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/2.raw" } } ] } } { "execute": "x-blockdev-change", "arguments": { "parent": "drive0-quorum", "child": "children.1" } } { "execute": "quit" } EOF done done # success, all done echo "*** done" rm -f $seq.full Loading tests/qemu-iotests/081.out +54 −0 Original line number Diff line number Diff line Loading @@ -71,4 +71,58 @@ read 10485760/10485760 bytes at offset 0 == checking the blkverify mode with invalid settings == can't open: blkverify=on can only be set if there are exactly two files and vote-threshold is 2 == dynamically adding a child to a quorum == Testing: QMP_VERSION {"return": {}} {"return": {}} {"return": {}} {"return": {}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} Testing: QMP_VERSION {"return": {}} {"return": {}} {"return": {}} {"error": {"class": "GenericError", "desc": "Cannot add a child to a quorum in blkverify mode"}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} == dynamically removing a child from a quorum == Testing: QMP_VERSION {"return": {}} {"return": {}} {"return": {}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} Testing: QMP_VERSION {"return": {}} {"return": {}} {"error": {"class": "GenericError", "desc": "The number of children cannot be lower than the vote threshold 2"}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} Testing: QMP_VERSION {"return": {}} {"error": {"class": "GenericError", "desc": "blkverify=on can only be set if there are exactly two files and vote-threshold is 2"}} {"error": {"class": "GenericError", "desc": "Cannot find device=drive0-quorum nor node_name=drive0-quorum"}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} Testing: QMP_VERSION {"return": {}} {"return": {}} {"error": {"class": "GenericError", "desc": "The number of children cannot be lower than the vote threshold 2"}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} *** done Loading
tests/qemu-iotests/081 +86 −0 Original line number Diff line number Diff line Loading @@ -198,6 +198,92 @@ quorum="$quorum,file.children.2.driver=raw" $QEMU_IO -c "open -o $quorum" | _filter_qemu_io echo echo "== dynamically adding a child to a quorum ==" for verify in false true; do run_qemu <<EOF { "execute": "qmp_capabilities" } { "execute": "blockdev-add", "arguments": { "driver": "quorum", "node-name": "drive0-quorum", "vote-threshold": 2, "blkverify": ${verify}, "children": [ { "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/1.raw" } }, { "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/2.raw" } } ] } } { "execute": "blockdev-add", "arguments": { "node-name": "drive3", "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/2.raw" } } } { "execute": "x-blockdev-change", "arguments": { "parent": "drive0-quorum", "node": "drive3" } } { "execute": "quit" } EOF done echo echo "== dynamically removing a child from a quorum ==" for verify in false true; do for vote_threshold in 1 2; do run_qemu <<EOF { "execute": "qmp_capabilities" } { "execute": "blockdev-add", "arguments": { "driver": "quorum", "node-name": "drive0-quorum", "vote-threshold": ${vote_threshold}, "blkverify": ${verify}, "children": [ { "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/1.raw" } }, { "driver": "$IMGFMT", "file": { "driver": "file", "filename": "$TEST_DIR/2.raw" } } ] } } { "execute": "x-blockdev-change", "arguments": { "parent": "drive0-quorum", "child": "children.1" } } { "execute": "quit" } EOF done done # success, all done echo "*** done" rm -f $seq.full Loading
tests/qemu-iotests/081.out +54 −0 Original line number Diff line number Diff line Loading @@ -71,4 +71,58 @@ read 10485760/10485760 bytes at offset 0 == checking the blkverify mode with invalid settings == can't open: blkverify=on can only be set if there are exactly two files and vote-threshold is 2 == dynamically adding a child to a quorum == Testing: QMP_VERSION {"return": {}} {"return": {}} {"return": {}} {"return": {}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} Testing: QMP_VERSION {"return": {}} {"return": {}} {"return": {}} {"error": {"class": "GenericError", "desc": "Cannot add a child to a quorum in blkverify mode"}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} == dynamically removing a child from a quorum == Testing: QMP_VERSION {"return": {}} {"return": {}} {"return": {}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} Testing: QMP_VERSION {"return": {}} {"return": {}} {"error": {"class": "GenericError", "desc": "The number of children cannot be lower than the vote threshold 2"}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} Testing: QMP_VERSION {"return": {}} {"error": {"class": "GenericError", "desc": "blkverify=on can only be set if there are exactly two files and vote-threshold is 2"}} {"error": {"class": "GenericError", "desc": "Cannot find device=drive0-quorum nor node_name=drive0-quorum"}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} Testing: QMP_VERSION {"return": {}} {"return": {}} {"error": {"class": "GenericError", "desc": "The number of children cannot be lower than the vote threshold 2"}} {"return": {}} {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} *** done