QA output created by 184

== checking interface ==
Testing:
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": [
        {
            "iops_rd": 0,
            "detect_zeroes": "off",
            "image": {
                "backing-image": {
                    "virtual-size": 1073741824,
                    "filename": "null-co://",
                    "format": "null-co",
                    "actual-size": 0
                },
                "virtual-size": 1073741824,
                "filename": "json:{\"throttle-group\": \"group0\", \"driver\": \"throttle\", \"file\": {\"driver\": \"null-co\"}}",
                "format": "throttle",
                "actual-size": 0
            },
            "iops_wr": 0,
            "ro": false,
            "node-name": "throttle0",
            "backing_file_depth": 1,
            "drv": "throttle",
            "iops": 0,
            "bps_wr": 0,
            "write_threshold": 0,
            "encrypted": false,
            "bps": 0,
            "bps_rd": 0,
            "cache": {
                "no-flush": false,
                "direct": false,
                "writeback": true
            },
            "file": "json:{\"throttle-group\": \"group0\", \"driver\": \"throttle\", \"file\": {\"driver\": \"null-co\"}}"
        },
        {
            "iops_rd": 0,
            "detect_zeroes": "off",
            "image": {
                "virtual-size": 1073741824,
                "filename": "null-co://",
                "format": "null-co",
                "actual-size": 0
            },
            "iops_wr": 0,
            "ro": false,
            "node-name": "disk0",
            "backing_file_depth": 0,
            "drv": "null-co",
            "iops": 0,
            "bps_wr": 0,
            "write_threshold": 0,
            "encrypted": false,
            "bps": 0,
            "bps_rd": 0,
            "cache": {
                "no-flush": false,
                "direct": false,
                "writeback": true
            },
            "file": "null-co://"
        }
    ]
}
{
    "return": [
    ]
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "SHUTDOWN",
    "data": {
        "guest": false,
        "reason": "host-qmp-quit"
    }
}


== property changes in ThrottleGroup ==
Testing:
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": {
        "bps-read-max-length": 1,
        "iops-read-max-length": 1,
        "bps-read-max": 0,
        "bps-total": 0,
        "iops-total-max-length": 1,
        "iops-total": 1000,
        "iops-write-max": 0,
        "bps-write": 0,
        "bps-total-max": 0,
        "bps-write-max": 0,
        "iops-size": 0,
        "iops-read": 0,
        "iops-write-max-length": 1,
        "iops-write": 0,
        "bps-total-max-length": 1,
        "iops-read-max": 0,
        "bps-read": 0,
        "bps-write-max-length": 1,
        "iops-total-max": 0
    }
}
{
    "return": {
    }
}
{
    "return": {
        "bps-read-max-length": 1,
        "iops-read-max-length": 1,
        "bps-read-max": 0,
        "bps-total": 0,
        "iops-total-max-length": 1,
        "iops-total": 0,
        "iops-write-max": 0,
        "bps-write": 0,
        "bps-total-max": 0,
        "bps-write-max": 0,
        "iops-size": 0,
        "iops-read": 0,
        "iops-write-max-length": 1,
        "iops-write": 0,
        "bps-total-max-length": 1,
        "iops-read-max": 0,
        "bps-read": 0,
        "bps-write-max-length": 1,
        "iops-total-max": 0
    }
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "SHUTDOWN",
    "data": {
        "guest": false,
        "reason": "host-qmp-quit"
    }
}


== object creation/set errors  ==
Testing:
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "error": {
        "class": "GenericError",
        "desc": "Property cannot be set after initialization"
    }
}
{
    "error": {
        "class": "GenericError",
        "desc": "bps/iops/max total values and read/write values cannot be used at the same time"
    }
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "SHUTDOWN",
    "data": {
        "guest": false,
        "reason": "host-qmp-quit"
    }
}


== don't specify group ==
Testing:
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "error": {
        "class": "GenericError",
        "desc": "Parameter 'throttle-group' is missing"
    }
}
{
    "return": {
    }
}
{
    "timestamp": {
        "seconds":  TIMESTAMP,
        "microseconds":  TIMESTAMP
    },
    "event": "SHUTDOWN",
    "data": {
        "guest": false,
        "reason": "host-qmp-quit"
    }
}


*** done
