QA output created by 067
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=134217728 

=== -drive/-device and device_del ===

Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,if=none,id=disk -device virtio-blk-pci,drive=disk,id=virtio0
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": [
        {
            "io-status": "ok",
            "device": "disk",
            "locked": false,
            "removable": false,
            "inserted": {
                "iops_rd": 0,
                "detect_zeroes": "off",
                "image": {
                    "virtual-size": 134217728,
                    "filename": "TEST_DIR/t.qcow2",
                    "cluster-size": 65536,
                    "format": "qcow2",
                    "actual-size": SIZE,
                    "format-specific": {
                        "type": "qcow2",
                        "data": {
                            "compat": "1.1",
                            "lazy-refcounts": false,
                            "corrupt": false
                        }
                    },
                    "dirty-flag": false
                },
                "iops_wr": 0,
                "ro": false,
                "backing_file_depth": 0,
                "drv": "qcow2",
                "iops": 0,
                "bps_wr": 0,
                "encrypted": false,
                "bps": 0,
                "bps_rd": 0,
                "cache": {
                    "no-flush": false,
                    "direct": false,
                    "writeback": true
                },
                "file": "TEST_DIR/t.qcow2",
                "encryption_key_missing": false
            },
            "type": "unknown"
        },
        {
            "io-status": "ok",
            "device": "ide1-cd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "floppy0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "sd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        }
    ]
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_DELETED",
    "data": {
        "path": "/machine/peripheral/virtio0/virtio-backend"
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_DELETED",
    "data": {
        "device": "virtio0",
        "path": "/machine/peripheral/virtio0"
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "RESET"
}
{
    "return": [
        {
            "io-status": "ok",
            "device": "ide1-cd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "floppy0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "sd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        }
    ]
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "SHUTDOWN"
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_TRAY_MOVED",
    "data": {
        "device": "ide1-cd0",
        "tray-open": true
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_TRAY_MOVED",
    "data": {
        "device": "floppy0",
        "tray-open": true
    }
}


=== -drive/device_add and device_del ===

Testing: -drive file=TEST_DIR/t.qcow2,format=qcow2,if=none,id=disk
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": [
        {
            "device": "disk",
            "locked": false,
            "removable": true,
            "inserted": {
                "iops_rd": 0,
                "detect_zeroes": "off",
                "image": {
                    "virtual-size": 134217728,
                    "filename": "TEST_DIR/t.qcow2",
                    "cluster-size": 65536,
                    "format": "qcow2",
                    "actual-size": SIZE,
                    "format-specific": {
                        "type": "qcow2",
                        "data": {
                            "compat": "1.1",
                            "lazy-refcounts": false,
                            "corrupt": false
                        }
                    },
                    "dirty-flag": false
                },
                "iops_wr": 0,
                "ro": false,
                "backing_file_depth": 0,
                "drv": "qcow2",
                "iops": 0,
                "bps_wr": 0,
                "encrypted": false,
                "bps": 0,
                "bps_rd": 0,
                "cache": {
                    "no-flush": false,
                    "direct": false,
                    "writeback": true
                },
                "file": "TEST_DIR/t.qcow2",
                "encryption_key_missing": false
            },
            "tray_open": false,
            "type": "unknown"
        },
        {
            "io-status": "ok",
            "device": "ide1-cd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "floppy0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "sd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        }
    ]
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_DELETED",
    "data": {
        "path": "/machine/peripheral/virtio0/virtio-backend"
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_DELETED",
    "data": {
        "device": "virtio0",
        "path": "/machine/peripheral/virtio0"
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "RESET"
}
{
    "return": [
        {
            "io-status": "ok",
            "device": "ide1-cd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "floppy0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "sd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        }
    ]
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "SHUTDOWN"
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_TRAY_MOVED",
    "data": {
        "device": "ide1-cd0",
        "tray-open": true
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_TRAY_MOVED",
    "data": {
        "device": "floppy0",
        "tray-open": true
    }
}


=== drive_add/device_add and device_del ===

Testing:
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": "OK\r\n"
}
{
    "return": [
        {
            "io-status": "ok",
            "device": "ide1-cd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "floppy0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "sd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "disk",
            "locked": false,
            "removable": true,
            "inserted": {
                "iops_rd": 0,
                "detect_zeroes": "off",
                "image": {
                    "virtual-size": 134217728,
                    "filename": "TEST_DIR/t.qcow2",
                    "cluster-size": 65536,
                    "format": "qcow2",
                    "actual-size": SIZE,
                    "format-specific": {
                        "type": "qcow2",
                        "data": {
                            "compat": "1.1",
                            "lazy-refcounts": false,
                            "corrupt": false
                        }
                    },
                    "dirty-flag": false
                },
                "iops_wr": 0,
                "ro": false,
                "backing_file_depth": 0,
                "drv": "qcow2",
                "iops": 0,
                "bps_wr": 0,
                "encrypted": false,
                "bps": 0,
                "bps_rd": 0,
                "cache": {
                    "no-flush": false,
                    "direct": false,
                    "writeback": true
                },
                "file": "TEST_DIR/t.qcow2",
                "encryption_key_missing": false
            },
            "tray_open": false,
            "type": "unknown"
        }
    ]
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_DELETED",
    "data": {
        "path": "/machine/peripheral/virtio0/virtio-backend"
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_DELETED",
    "data": {
        "device": "virtio0",
        "path": "/machine/peripheral/virtio0"
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "RESET"
}
{
    "return": [
        {
            "io-status": "ok",
            "device": "ide1-cd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "floppy0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "sd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        }
    ]
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "SHUTDOWN"
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_TRAY_MOVED",
    "data": {
        "device": "ide1-cd0",
        "tray-open": true
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_TRAY_MOVED",
    "data": {
        "device": "floppy0",
        "tray-open": true
    }
}


=== blockdev_add/device_add and device_del ===

Testing:
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": [
        {
            "io-status": "ok",
            "device": "ide1-cd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "floppy0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "sd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "disk",
            "locked": false,
            "removable": true,
            "inserted": {
                "iops_rd": 0,
                "detect_zeroes": "off",
                "image": {
                    "virtual-size": 134217728,
                    "filename": "TEST_DIR/t.qcow2",
                    "cluster-size": 65536,
                    "format": "qcow2",
                    "actual-size": SIZE,
                    "format-specific": {
                        "type": "qcow2",
                        "data": {
                            "compat": "1.1",
                            "lazy-refcounts": false,
                            "corrupt": false
                        }
                    },
                    "dirty-flag": false
                },
                "iops_wr": 0,
                "ro": false,
                "backing_file_depth": 0,
                "drv": "qcow2",
                "iops": 0,
                "bps_wr": 0,
                "encrypted": false,
                "bps": 0,
                "bps_rd": 0,
                "cache": {
                    "no-flush": false,
                    "direct": false,
                    "writeback": true
                },
                "file": "TEST_DIR/t.qcow2",
                "encryption_key_missing": false
            },
            "tray_open": false,
            "type": "unknown"
        }
    ]
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_DELETED",
    "data": {
        "path": "/machine/peripheral/virtio0/virtio-backend"
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_DELETED",
    "data": {
        "device": "virtio0",
        "path": "/machine/peripheral/virtio0"
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "RESET"
}
{
    "return": [
        {
            "io-status": "ok",
            "device": "ide1-cd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "floppy0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "device": "sd0",
            "locked": false,
            "removable": true,
            "tray_open": false,
            "type": "unknown"
        },
        {
            "io-status": "ok",
            "device": "disk",
            "locked": false,
            "removable": true,
            "inserted": {
                "iops_rd": 0,
                "detect_zeroes": "off",
                "image": {
                    "virtual-size": 134217728,
                    "filename": "TEST_DIR/t.qcow2",
                    "cluster-size": 65536,
                    "format": "qcow2",
                    "actual-size": SIZE,
                    "format-specific": {
                        "type": "qcow2",
                        "data": {
                            "compat": "1.1",
                            "lazy-refcounts": false,
                            "corrupt": false
                        }
                    },
                    "dirty-flag": false
                },
                "iops_wr": 0,
                "ro": false,
                "backing_file_depth": 0,
                "drv": "qcow2",
                "iops": 0,
                "bps_wr": 0,
                "encrypted": false,
                "bps": 0,
                "bps_rd": 0,
                "cache": {
                    "no-flush": false,
                    "direct": false,
                    "writeback": true
                },
                "file": "TEST_DIR/t.qcow2",
                "encryption_key_missing": false
            },
            "tray_open": false,
            "type": "unknown"
        }
    ]
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "SHUTDOWN"
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_TRAY_MOVED",
    "data": {
        "device": "ide1-cd0",
        "tray-open": true
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "DEVICE_TRAY_MOVED",
    "data": {
        "device": "floppy0",
        "tray-open": true
    }
}

*** done
