1 2=== Launch VM === 3Enabling migration QMP events on VM... 4{"return": {}} 5 6=== Migrate to file === 7{"execute": "migrate", "arguments": {"uri": "exec:cat > /dev/null"}} 8{"return": {}} 9{"data": {"status": "setup"}, "event": "MIGRATION", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 10{"data": {"status": "active"}, "event": "MIGRATION", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 11{"data": {"status": "completed"}, "event": "MIGRATION", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 12 13VM is now stopped: 14completed 15{"execute": "query-status", "arguments": {}} 16{"return": {"running": false, "singlestep": false, "status": "postmigrate"}} 17 18=== Create a snapshot of the disk image === 19{"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-top", "size": 0}}} 20{"return": {}} 21{"execute": "job-dismiss", "arguments": {"id": "job0"}} 22{"return": {}} 23 24{"execute": "blockdev-add", "arguments": {"driver": "file", "filename": "TEST_DIR/PID-top", "node-name": "top-file"}} 25{"return": {}} 26{"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "top-file", "size": 1048576}}} 27{"return": {}} 28{"execute": "job-dismiss", "arguments": {"id": "job0"}} 29{"return": {}} 30 31{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": "top-file", "node-name": "top-fmt"}} 32{"return": {}} 33{"execute": "blockdev-snapshot", "arguments": {"node": "base-fmt", "overlay": "top-fmt"}} 34{"return": {}} 35 36=== Resume the VM and simulate a write request === 37{"execute": "cont", "arguments": {}} 38{"return": {}} 39{"return": ""} 40 41=== Commit it to the backing file === 42{"execute": "block-commit", "arguments": {"auto-dismiss": false, "device": "top-fmt", "job-id": "job0", "top-node": "top-fmt"}} 43{"return": {}} 44{"execute": "job-complete", "arguments": {"id": "job0"}} 45{"return": {}} 46{"data": {"device": "job0", "len": 65536, "offset": 65536, "speed": 0, "type": "commit"}, "event": "BLOCK_JOB_READY", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 47{"data": {"device": "job0", "len": 65536, "offset": 65536, "speed": 0, "type": "commit"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 48{"execute": "job-dismiss", "arguments": {"id": "job0"}} 49{"return": {}} 50