QA output created by 184

== checking interface ==
Testing:
{
    QMP_VERSION
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": {
    }
}
{
    "return": [
        {
            "iops_rd": 0,
            "detect_zeroes": "off",
            "image": {
                "virtual-size": 1073741824,
                "filename": "json:{\"throttle-group\": \"group0\", \"driver\": \"throttle\", \"file\": {\"driver\": \"null-co\"}}",
                "format": "throttle"
            },
            "iops_wr": 0,
            "ro": false,
            "node-name": "throttle0",
            "backing_file_depth": 0,
            "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\"}}",
            "encryption_key_missing": false
        },
        {
            "iops_rd": 0,
            "detect_zeroes": "off",
            "image": {
                "virtual-size": 1073741824,
                "filename": "null-co://",
                "format": "null-co"
            },
            "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://",
            "encryption_key_missing": false
        }
    ]
}
{
    "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
