@@ -4223,7 +4223,7 @@ static int bdrv_reset_options_allowed(BlockDriverState *bs,
"read-only", "auto-read-only", "detect-zeroes", NULL
};
- for (e = qdict_first(bs->options); e; e = qdict_next(bs->options, e)) {
+ for (e = qdict_first(bs->options); e; e = qdict_next(e)) {
if (!qdict_haskey(new_opts, e->key) &&
!is_str_in_list(e->key, common_options) &&
!is_str_in_list(e->key, bs->drv->mutable_opts)) {
@@ -4950,7 +4950,7 @@ static int bdrv_reopen_prepare(BDRVReopenState *reopen_state,
ret = -EINVAL;
goto error;
}
- } while ((entry = qdict_next(reopen_state->options, entry)));
+ } while ((entry = qdict_next(entry)));
}
ret = 0;
@@ -7862,7 +7862,7 @@ static bool append_strong_runtime_options(QDict *d, BlockDriverState *bs)
} else {
const QDictEntry *entry;
for (entry = qdict_first(bs->options); entry;
- entry = qdict_next(bs->options, entry))
+ entry = qdict_next(entry))
{
if (strstart(qdict_entry_key(entry), *option_name, NULL)) {
qdict_put_obj(d, qdict_entry_key(entry),
@@ -984,7 +984,7 @@ static void blkdebug_refresh_filename(BlockDriverState *bs)
}
for (e = qdict_first(bs->full_open_options); e;
- e = qdict_next(bs->full_open_options, e))
+ e = qdict_next(e))
{
/* Real child options are under "image", but "x-image" may
* contain a filename */
@@ -1563,7 +1563,7 @@ static bool nbd_has_filename_options_conflict(QDict *options, Error **errp)
{
const QDictEntry *e;
- for (e = qdict_first(options); e; e = qdict_next(options, e)) {
+ for (e = qdict_first(options); e; e = qdict_next(e)) {
if (!strcmp(e->key, "host") ||
!strcmp(e->key, "port") ||
!strcmp(e->key, "path") ||
@@ -1654,7 +1654,7 @@ static bool nbd_process_legacy_socket_options(QDict *output_options,
return true;
}
- for (e = qdict_first(output_options); e; e = qdict_next(output_options, e))
+ for (e = qdict_first(output_options); e; e = qdict_next(e))
{
if (strstart(e->key, "server.", NULL)) {
error_setg(errp, "Cannot use 'server' and path/host/port at the "
@@ -156,7 +156,7 @@ static bool nfs_has_filename_options_conflict(QDict *options, Error **errp)
{
const QDictEntry *qe;
- for (qe = qdict_first(options); qe; qe = qdict_next(options, qe)) {
+ for (qe = qdict_first(options); qe; qe = qdict_next(qe)) {
if (!strcmp(qe->key, "host") ||
!strcmp(qe->key, "path") ||
!strcmp(qe->key, "user") ||
@@ -250,7 +250,7 @@ static void null_refresh_filename(BlockDriverState *bs)
const QDictEntry *e;
for (e = qdict_first(bs->full_open_options); e;
- e = qdict_next(bs->full_open_options, e))
+ e = qdict_next(e))
{
/* These options can be ignored */
if (strcmp(qdict_entry_key(e), "filename") &&
@@ -868,7 +868,7 @@ static void dump_qdict(int indentation, QDict *dict)
{
const QDictEntry *entry;
- for (entry = qdict_first(dict); entry; entry = qdict_next(dict, entry)) {
+ for (entry = qdict_first(dict); entry; entry = qdict_next(entry)) {
QType type = qobject_type(entry->value);
bool composite = (type == QTYPE_QDICT || type == QTYPE_QLIST);
char *key = g_malloc(strlen(entry->key) + 1);
@@ -246,7 +246,7 @@ static bool ssh_has_filename_options_conflict(QDict *options, Error **errp)
{
const QDictEntry *qe;
- for (qe = qdict_first(options); qe; qe = qdict_next(options, qe)) {
+ for (qe = qdict_first(options); qe; qe = qdict_next(qe)) {
if (!strcmp(qe->key, "host") ||
!strcmp(qe->key, "port") ||
!strcmp(qe->key, "path") ||
@@ -21,13 +21,15 @@
typedef struct QDictEntry {
char *key;
QObject *value;
- QLIST_ENTRY(QDictEntry) next;
+ QLIST_ENTRY(QDictEntry) bucket_next;
+ QTAILQ_ENTRY(QDictEntry) next;
} QDictEntry;
struct QDict {
struct QObjectBase_ base;
size_t size;
- QLIST_HEAD(,QDictEntry) table[QDICT_BUCKET_MAX];
+ QLIST_HEAD(, QDictEntry) table[QDICT_BUCKET_MAX];
+ QTAILQ_HEAD(, QDictEntry) first;
};
void qdict_unref(QDict *q);
@@ -44,7 +46,7 @@ void qdict_del(QDict *qdict, const char *key);
int qdict_haskey(const QDict *qdict, const char *key);
QObject *qdict_get(const QDict *qdict, const char *key);
const QDictEntry *qdict_first(const QDict *qdict);
-const QDictEntry *qdict_next(const QDict *qdict, const QDictEntry *entry);
+const QDictEntry *qdict_next(const QDictEntry *entry);
/* Helper to qdict_put_obj(), accepts any object */
#define qdict_put(qdict, key, obj) \
@@ -50,7 +50,7 @@ static QDict *qmp_dispatch_check_obj(QDict *dict, bool allow_oob,
const QObject *arg_obj;
for (ent = qdict_first(dict); ent;
- ent = qdict_next(dict, ent)) {
+ ent = qdict_next(ent)) {
arg_name = qdict_entry_key(ent);
arg_obj = qdict_entry_value(ent);
@@ -223,7 +223,7 @@ static const QListEntry *qobject_input_push(QObjectInputVisitor *qiv,
h = g_hash_table_new(g_str_hash, g_str_equal);
for (entry = qdict_first(qdict);
entry;
- entry = qdict_next(qdict, entry)) {
+ entry = qdict_next(entry)) {
g_hash_table_insert(h, (void *)qdict_entry_key(entry), NULL);
}
tos->h = h;
@@ -102,7 +102,7 @@ static void qdict_flatten_qdict(QDict *qdict, QDict *target, const char *prefix)
entry = qdict_first(qdict);
while (entry != NULL) {
- next = qdict_next(qdict, entry);
+ next = qdict_next(entry);
value = qdict_entry_value(entry);
dict_val = qobject_to(QDict, value);
list_val = qobject_to(QList, value);
@@ -172,7 +172,7 @@ void qdict_extract_subqdict(QDict *src, QDict **dst, const char *start)
entry = qdict_first(src);
while (entry != NULL) {
- next = qdict_next(src, entry);
+ next = qdict_next(entry);
if (strstart(entry->key, start, &p)) {
if (dst) {
qdict_put_obj(*dst, p, qobject_ref(entry->value));
@@ -188,7 +188,7 @@ static int qdict_count_prefixed_entries(const QDict *src, const char *start)
const QDictEntry *entry;
int count = 0;
- for (entry = qdict_first(src); entry; entry = qdict_next(src, entry)) {
+ for (entry = qdict_first(src); entry; entry = qdict_next(entry)) {
if (strstart(entry->key, start, NULL)) {
if (count == INT_MAX) {
return -ERANGE;
@@ -341,7 +341,7 @@ static int qdict_is_list(QDict *maybe_list, Error **errp)
int64_t val;
for (ent = qdict_first(maybe_list); ent != NULL;
- ent = qdict_next(maybe_list, ent)) {
+ ent = qdict_next(ent)) {
int is_index = !qemu_strtoi64(ent->key, NULL, 10, &val);
if (is_list == -1) {
@@ -435,7 +435,7 @@ QObject *qdict_crumple(const QDict *src, Error **errp)
two_level = qdict_new();
/* Step 1: split our totally flat dict into a two level dict */
- for (ent = qdict_first(src); ent != NULL; ent = qdict_next(src, ent)) {
+ for (ent = qdict_first(src); ent != NULL; ent = qdict_next(ent)) {
dict_val = qobject_to(QDict, ent->value);
list_val = qobject_to(QList, ent->value);
if ((dict_val && qdict_size(dict_val))
@@ -478,7 +478,7 @@ QObject *qdict_crumple(const QDict *src, Error **errp)
* into a multi-level dict */
multi_level = qdict_new();
for (ent = qdict_first(two_level); ent != NULL;
- ent = qdict_next(two_level, ent)) {
+ ent = qdict_next(ent)) {
dict_val = qobject_to(QDict, ent->value);
if (dict_val && qdict_size(dict_val)) {
child = qdict_crumple(dict_val, errp);
@@ -553,7 +553,7 @@ static QObject *qdict_crumple_for_keyval_qiv(QDict *src, Error **errp)
const QDictEntry *ent;
QObject *dst;
- for (ent = qdict_first(src); ent; ent = qdict_next(src, ent)) {
+ for (ent = qdict_first(src); ent; ent = qdict_next(ent)) {
buf = NULL;
switch (qobject_type(ent->value)) {
case QTYPE_QNULL:
@@ -634,7 +634,7 @@ int qdict_array_entries(QDict *src, const char *subqdict)
}
/* Consider everything handled that isn't part of the given sub-QDict */
- for (entry = qdict_first(src); entry; entry = qdict_next(src, entry)) {
+ for (entry = qdict_first(src); entry; entry = qdict_next(entry)) {
if (!strstart(qdict_entry_key(entry), subqdict, NULL)) {
entries++;
}
@@ -668,7 +668,7 @@ void qdict_join(QDict *dest, QDict *src, bool overwrite)
entry = qdict_first(src);
while (entry) {
- next = qdict_next(src, entry);
+ next = qdict_next(entry);
if (overwrite || !qdict_haskey(dest, entry->key)) {
qdict_put_obj(dest, entry->key, qobject_ref(entry->value));
@@ -28,6 +28,7 @@ QDict *qdict_new(void)
QDict *qdict;
qdict = g_malloc0(sizeof(*qdict));
+ QTAILQ_INIT(&qdict->first);
qobject_init(QOBJECT(qdict), QTYPE_QDICT);
return qdict;
@@ -93,7 +94,7 @@ static QDictEntry *qdict_find(const QDict *qdict,
{
QDictEntry *entry;
- QLIST_FOREACH(entry, &qdict->table[bucket], next)
+ QLIST_FOREACH(entry, &qdict->table[bucket], bucket_next)
if (!strcmp(entry->key, key)) {
return entry;
}
@@ -126,7 +127,8 @@ void qdict_put_obj(QDict *qdict, const char *key, QObject *value)
} else {
/* allocate a new entry */
entry = alloc_entry(key, value);
- QLIST_INSERT_HEAD(&qdict->table[bucket], entry, next);
+ QLIST_INSERT_HEAD(&qdict->table[bucket], entry, bucket_next);
+ QTAILQ_INSERT_TAIL(&qdict->first, entry, next);
qdict->size++;
}
}
@@ -301,41 +303,20 @@ const char *qdict_get_try_str(const QDict *qdict, const char *key)
return qstr ? qstring_get_str(qstr) : NULL;
}
-static QDictEntry *qdict_next_entry(const QDict *qdict, int first_bucket)
-{
- int i;
-
- for (i = first_bucket; i < QDICT_BUCKET_MAX; i++) {
- if (!QLIST_EMPTY(&qdict->table[i])) {
- return QLIST_FIRST(&qdict->table[i]);
- }
- }
-
- return NULL;
-}
-
/**
* qdict_first(): Return first qdict entry for iteration.
*/
const QDictEntry *qdict_first(const QDict *qdict)
{
- return qdict_next_entry(qdict, 0);
+ return qdict->first.tqh_first;
}
/**
* qdict_next(): Return next qdict entry in an iteration.
*/
-const QDictEntry *qdict_next(const QDict *qdict, const QDictEntry *entry)
+const QDictEntry *qdict_next(const QDictEntry *entry)
{
- QDictEntry *ret;
-
- ret = QLIST_NEXT(entry, next);
- if (!ret) {
- unsigned int bucket = tdb_hash(entry->key) % QDICT_BUCKET_MAX;
- ret = qdict_next_entry(qdict, bucket + 1);
- }
-
- return ret;
+ return QTAILQ_NEXT(entry, next);
}
/**
@@ -346,14 +327,10 @@ QDict *qdict_clone_shallow(const QDict *src)
{
QDict *dest;
QDictEntry *entry;
- int i;
dest = qdict_new();
-
- for (i = 0; i < QDICT_BUCKET_MAX; i++) {
- QLIST_FOREACH(entry, &src->table[i], next) {
- qdict_put_obj(dest, entry->key, qobject_ref(entry->value));
- }
+ QTAILQ_FOREACH(entry, &src->first, next) {
+ qdict_put_obj(dest, entry->key, qobject_ref(entry->value));
}
return dest;
@@ -384,7 +361,8 @@ void qdict_del(QDict *qdict, const char *key)
entry = qdict_find(qdict, key, tdb_hash(key) % QDICT_BUCKET_MAX);
if (entry) {
- QLIST_REMOVE(entry, next);
+ QLIST_REMOVE(entry, bucket_next);
+ QTAILQ_REMOVE(&qdict->first, entry, next);
qentry_destroy(entry);
qdict->size--;
}
@@ -407,7 +385,7 @@ bool qdict_is_equal(const QObject *x, const QObject *y)
return false;
}
- for (e = qdict_first(dict_x); e; e = qdict_next(dict_x, e)) {
+ for (e = qdict_first(dict_x); e; e = qdict_next(e)) {
const QObject *obj_x = qdict_entry_value(e);
const QObject *obj_y = qdict_get(dict_y, qdict_entry_key(e));
@@ -433,8 +411,8 @@ void qdict_destroy_obj(QObject *obj)
for (i = 0; i < QDICT_BUCKET_MAX; i++) {
QDictEntry *entry = QLIST_FIRST(&qdict->table[i]);
while (entry) {
- QDictEntry *tmp = QLIST_NEXT(entry, next);
- QLIST_REMOVE(entry, next);
+ QDictEntry *tmp = QLIST_NEXT(entry, bucket_next);
+ QLIST_REMOVE(entry, bucket_next);
qentry_destroy(entry);
entry = tmp;
}
@@ -187,7 +187,7 @@ static void to_json(JSONWriter *writer, const char *name,
for (entry = qdict_first(val);
entry;
- entry = qdict_next(val, entry)) {
+ entry = qdict_next(entry)) {
to_json(writer, qdict_entry_key(entry), qdict_entry_value(entry));
}
@@ -51,7 +51,7 @@ static void object_set_properties_from_qdict(Object *obj, const QDict *qdict,
if (!visit_start_struct(v, NULL, NULL, 0, errp)) {
return;
}
- for (e = qdict_first(qdict); e; e = qdict_next(qdict, e)) {
+ for (e = qdict_first(qdict); e; e = qdict_next(e)) {
if (!object_property_set(obj, e->key, v, errp)) {
goto out;
}
@@ -1645,7 +1645,7 @@ static void keyval_dashify(QDict *qdict, Error **errp)
for (ent = qdict_first(qdict); ent; ent = next) {
g_autofree char *new_key = NULL;
- next = qdict_next(qdict, ent);
+ next = qdict_next(ent);
if (!strchr(ent->key, '_')) {
continue;
}
@@ -95,7 +95,7 @@ static void x86_cpu_to_dict(X86CPU *cpu, QDict *props)
QDict *sprops = x86_cpu_static_props();
const QDictEntry *e;
- for (e = qdict_first(sprops); e; e = qdict_next(sprops, e)) {
+ for (e = qdict_first(sprops); e; e = qdict_next(e)) {
const char *prop = qdict_entry_key(e);
x86_cpu_expand_prop(cpu, props, prop);
}
@@ -133,7 +133,7 @@ static void object_apply_props(Object *obj, QDict *props, Error **errp)
{
const QDictEntry *prop;
- for (prop = qdict_first(props); prop; prop = qdict_next(props, prop)) {
+ for (prop = qdict_first(props); prop; prop = qdict_next(prop)) {
if (!object_property_set_qobject(obj, qdict_entry_key(prop),
qdict_entry_value(prop), errp)) {
break;
@@ -142,7 +142,7 @@ static void cpu_model_from_info(S390CPUModel *model, const CpuModelInfo *info,
object_unref(obj);
return;
}
- for (e = qdict_first(qdict); e; e = qdict_next(qdict, e)) {
+ for (e = qdict_first(qdict); e; e = qdict_next(e)) {
if (!object_property_set(obj, e->key, visitor, &err)) {
break;
}
@@ -40,29 +40,29 @@ cluster_size: 65536
== finite chain of length 3 (json) ==
[
{
- "virtual-size": 134217728,
"filename": "TEST_DIR/t.IMGFMT",
- "cluster-size": 65536,
"format": "IMGFMT",
- "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base",
+ "dirty-flag": false,
+ "virtual-size": 134217728,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.2.base",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base",
},
{
- "virtual-size": 134217728,
"filename": "TEST_DIR/t.IMGFMT.2.base",
- "cluster-size": 65536,
"format": "IMGFMT",
- "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base",
+ "dirty-flag": false,
+ "virtual-size": 134217728,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.1.base",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base",
},
{
- "virtual-size": 134217728,
"filename": "TEST_DIR/t.IMGFMT.1.base",
- "cluster-size": 65536,
"format": "IMGFMT",
- "dirty-flag": false
+ "dirty-flag": false,
+ "virtual-size": 134217728,
+ "cluster-size": 65536,
}
]
*** done
@@ -82,8 +82,7 @@ QEMU_PROG: -device scsi-hd: drive property not set
Testing: -drive file=TEST_DIR/t.qcow2,driver=qcow2,backing.file.filename=TEST_DIR/t.qcow2.orig,if=none,id=drive0 -nodefaults
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.orig"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
- Removable device: not locked, tray closed
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.orig"}}, "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2) Removable device: not locked, tray closed
Cache mode: writeback
Backing file: TEST_DIR/t.qcow2.orig (chain depth: 1)
(qemu) quit
@@ -175,7 +174,7 @@ QEMU_PROG: -drive driver=null-co,cache=invalid_value: invalid cache option
Testing: -drive file=TEST_DIR/t.qcow2,cache=writeback,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
Removable device: not locked, tray closed
Cache mode: writeback
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
@@ -195,7 +194,7 @@ backing-file: TEST_DIR/t.qcow2.base (file, read-only)
Testing: -drive file=TEST_DIR/t.qcow2,cache=writethrough,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
Removable device: not locked, tray closed
Cache mode: writethrough
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
@@ -215,7 +214,7 @@ backing-file: TEST_DIR/t.qcow2.base (file, read-only)
Testing: -drive file=TEST_DIR/t.qcow2,cache=unsafe,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
Removable device: not locked, tray closed
Cache mode: writeback, ignore flushes
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
@@ -464,7 +463,7 @@ QEMU_PROG: -drive driver=null-co,snapshot=on: Could not open temporary file SNAP
Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,read-only=on,if=none,id=drive0
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}}, "driver": "qcow2", "file": {"driver": "file", "filename": SNAPSHOT_PATH}} (qcow2, read-only)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}}, "file": {"driver": "file", "filename": SNAPSHOT_PATH}} (qcow2, read-only)
Removable device: not locked, tray closed
Cache mode: writeback, ignore flushes
Backing file: TEST_DIR/t.qcow2 (chain depth: 1)
@@ -82,7 +82,7 @@ QEMU_PROG: -device scsi-hd: drive property not set
Testing: -drive file=TEST_DIR/t.qcow2,driver=qcow2,backing.file.filename=TEST_DIR/t.qcow2.orig,if=none,id=drive0 -nodefaults
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.orig"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.orig"}}, "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
Removable device: not locked, tray closed
Cache mode: writeback
Backing file: TEST_DIR/t.qcow2.orig (chain depth: 1)
@@ -255,7 +255,7 @@ QEMU_PROG: -drive driver=null-co,cache=invalid_value: invalid cache option
Testing: -drive file=TEST_DIR/t.qcow2,cache=writeback,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
Removable device: not locked, tray closed
Cache mode: writeback
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
@@ -275,7 +275,7 @@ backing-file: TEST_DIR/t.qcow2.base (file, read-only)
Testing: -drive file=TEST_DIR/t.qcow2,cache=writethrough,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
Removable device: not locked, tray closed
Cache mode: writethrough
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
@@ -295,7 +295,7 @@ backing-file: TEST_DIR/t.qcow2.base (file, read-only)
Testing: -drive file=TEST_DIR/t.qcow2,cache=unsafe,backing.file.filename=TEST_DIR/t.qcow2.base,backing.cache.no-flush=on,backing.node-name=backing,backing.file.node-name=backing-file,file.node-name=file,if=none,id=drive0 -nodefaults
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2.base"}}, "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}} (qcow2)
Removable device: not locked, tray closed
Cache mode: writeback, ignore flushes
Backing file: TEST_DIR/t.qcow2.base (chain depth: 1)
@@ -544,7 +544,7 @@ QEMU_PROG: -drive driver=null-co,snapshot=on: Could not open temporary file SNAP
Testing: -drive file=TEST_DIR/t.qcow2,snapshot=on,read-only=on,if=none,id=drive0
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-drive0 (NODE_NAME): json:{"backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}}, "driver": "qcow2", "file": {"driver": "file", "filename": SNAPSHOT_PATH}} (qcow2, read-only)
+drive0 (NODE_NAME): json:{"driver": "qcow2", "backing": {"driver": "qcow2", "file": {"driver": "file", "filename": "TEST_DIR/t.qcow2"}}, "file": {"driver": "file", "filename": SNAPSHOT_PATH}} (qcow2, read-only)
Removable device: not locked, tray closed
Cache mode: writeback, ignore flushes
Backing file: TEST_DIR/t.qcow2 (chain depth: 1)
@@ -17,11 +17,11 @@ virtual size: 64 MiB (67108864 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
+ extended l2: false
lazy refcounts: false
- refcount bits: 16
corrupt: true
- extended l2: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
qemu-io: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; cannot be opened read/write
no file open, try 'help open'
read 512/512 bytes at offset 0
@@ -418,11 +418,11 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with refcount table); further corruption events will be suppressed
QMP_VERSION
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_IMAGE_CORRUPTED", "data": {"device": "none0", "msg": "Preventing invalid write on metadata (overlaps with refcount table)", "offset": 65536, "node-name": "drive", "fatal": true, "size": 65536}}
+{"event": "BLOCK_IMAGE_CORRUPTED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"device": "none0", "node-name": "drive", "msg": "Preventing invalid write on metadata (overlaps with refcount table)", "offset": 65536, "size": 65536, "fatal": true}}
write failed: Input/output error
{"return": ""}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
=== Testing incoming inactive corrupted image ===
@@ -430,10 +430,10 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
QMP_VERSION
{"return": {}}
qcow2: Image is corrupt: L2 table offset 0x2a2a2a00 unaligned (L1 index: 0); further non-fatal corruption events will be suppressed
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_IMAGE_CORRUPTED", "data": {"device": "", "msg": "L2 table offset 0x2a2a2a00 unaligned (L1 index: 0)", "node-name": "drive", "fatal": false}}
+{"event": "BLOCK_IMAGE_CORRUPTED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"device": "", "node-name": "drive", "msg": "L2 table offset 0x2a2a2a00 unaligned (L1 index: 0)", "fatal": false}}
{"return": ""}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
corrupt: false
*** done
@@ -497,7 +497,16 @@ wrote 65536/65536 bytes at offset 2147483648
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 65536/65536 bytes at offset 3221225472
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
- (0.00/100%)
(12.50/100%)
(25.00/100%)
(37.50/100%)
(50.00/100%)
(62.50/100%)
(75.00/100%)
(87.50/100%)
(100.00/100%)
(100.00/100%)
+ (0.00/100%)
+ (12.50/100%)
+ (25.00/100%)
+ (37.50/100%)
+ (50.00/100%)
+ (62.50/100%)
+ (75.00/100%)
+ (87.50/100%)
+ (100.00/100%)
+ (100.00/100%)
No errors were found on the image.
=== Testing progress report with snapshot ===
@@ -512,7 +521,24 @@ wrote 65536/65536 bytes at offset 2147483648
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 65536/65536 bytes at offset 3221225472
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
- (0.00/100%)
(6.25/100%)
(12.50/100%)
(18.75/100%)
(25.00/100%)
(31.25/100%)
(37.50/100%)
(43.75/100%)
(50.00/100%)
(56.25/100%)
(62.50/100%)
(68.75/100%)
(75.00/100%)
(81.25/100%)
(87.50/100%)
(93.75/100%)
(100.00/100%)
(100.00/100%)
+ (0.00/100%)
+ (6.25/100%)
+ (12.50/100%)
+ (18.75/100%)
+ (25.00/100%)
+ (31.25/100%)
+ (37.50/100%)
+ (43.75/100%)
+ (50.00/100%)
+ (56.25/100%)
+ (62.50/100%)
+ (68.75/100%)
+ (75.00/100%)
+ (81.25/100%)
+ (87.50/100%)
+ (93.75/100%)
+ (100.00/100%)
+ (100.00/100%)
No errors were found on the image.
=== Testing version downgrade with external data file ===
@@ -525,13 +551,13 @@ virtual size: 64 MiB (67108864 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
- lazy refcounts: false
- refcount bits: 16
data file: TEST_DIR/t.IMGFMT.data
data file raw: false
- corrupt: false
extended l2: false
+ lazy refcounts: false
+ corrupt: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
No errors were found on the image.
=== Testing version downgrade with extended L2 entries ===
@@ -552,13 +578,13 @@ virtual size: 64 MiB (67108864 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
- lazy refcounts: false
- refcount bits: 16
data file: foo
data file raw: false
- corrupt: false
extended l2: false
+ lazy refcounts: false
+ corrupt: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
qemu-img: Could not open 'TEST_DIR/t.IMGFMT': 'data-file' is required for this image
image: TEST_DIR/t.IMGFMT
@@ -567,12 +593,12 @@ virtual size: 64 MiB (67108864 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
- lazy refcounts: false
- refcount bits: 16
data file raw: false
- corrupt: false
extended l2: false
+ lazy refcounts: false
+ corrupt: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
=== Clearing and setting data-file-raw ===
@@ -583,13 +609,13 @@ virtual size: 64 MiB (67108864 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
- lazy refcounts: false
- refcount bits: 16
data file: TEST_DIR/t.IMGFMT.data
data file raw: true
- corrupt: false
extended l2: false
+ lazy refcounts: false
+ corrupt: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
No errors were found on the image.
image: TEST_DIR/t.IMGFMT
file format: IMGFMT
@@ -597,13 +623,13 @@ virtual size: 64 MiB (67108864 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
- lazy refcounts: false
- refcount bits: 16
data file: TEST_DIR/t.IMGFMT.data
data file raw: false
- corrupt: false
extended l2: false
+ lazy refcounts: false
+ corrupt: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
No errors were found on the image.
qemu-img: data-file-raw cannot be set on existing images
image: TEST_DIR/t.IMGFMT
@@ -612,12 +638,12 @@ virtual size: 64 MiB (67108864 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
- lazy refcounts: false
- refcount bits: 16
data file: TEST_DIR/t.IMGFMT.data
data file raw: false
- corrupt: false
extended l2: false
+ lazy refcounts: false
+ corrupt: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
No errors were found on the image.
*** done
@@ -90,8 +90,8 @@ class TestQCow2(TestQemuImgInfo):
img_options = 'compat=0.10,compression_type=zlib'
json_compare = { 'compat': '0.10', 'refcount-bits': 16,
'compression-type': 'zlib' }
- human_compare = [ 'compat: 0.10', 'compression type: zlib',
- 'refcount bits: 16' ]
+ human_compare = [ 'compat: 0.10', 'refcount bits: 16',
+ 'compression type: zlib' ]
class TestQCow3NotLazy(TestQemuImgInfo):
'''Testing a qcow2 version 3 image with lazy refcounts disabled'''
@@ -105,9 +105,10 @@ class TestQCow3NotLazy(TestQemuImgInfo):
json_compare = { 'compat': '1.1', 'lazy-refcounts': False,
'refcount-bits': 16, 'corrupt': False,
'compression-type': compression_type, 'extended-l2': False }
- human_compare = [ 'compat: 1.1', f'compression type: {compression_type}',
- 'lazy refcounts: false', 'refcount bits: 16',
- 'corrupt: false', 'extended l2: false' ]
+ human_compare = [ 'compat: 1.1', 'extended l2: false',
+ 'lazy refcounts: false', 'corrupt: false',
+ 'refcount bits: 16',
+ f'compression type: {compression_type}' ]
class TestQCow3Lazy(TestQemuImgInfo):
'''Testing a qcow2 version 3 image with lazy refcounts enabled'''
@@ -115,9 +116,9 @@ class TestQCow3Lazy(TestQemuImgInfo):
json_compare = { 'compat': '1.1', 'lazy-refcounts': True,
'refcount-bits': 16, 'corrupt': False,
'compression-type': 'zlib', 'extended-l2': False }
- human_compare = [ 'compat: 1.1', 'compression type: zlib',
- 'lazy refcounts: true', 'refcount bits: 16',
- 'corrupt: false', 'extended l2: false' ]
+ human_compare = [ 'compat: 1.1', 'extended l2: false',
+ 'lazy refcounts: true', 'corrupt: false',
+ 'refcount bits: 16', 'compression type: zlib' ]
class TestQCow3NotLazyQMP(TestQMP):
'''Testing a qcow2 version 3 image with lazy refcounts disabled, opening
@@ -46,7 +46,7 @@ QMP_VERSION
read failed: Input/output error
{"return": ""}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
=== Testing blkverify on existing block device ===
@@ -85,7 +85,7 @@ wrote 512/512 bytes at offset 0
read failed: Input/output error
{"return": ""}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
QEMU_PROG: Failed to flush the L2 table cache: Input/output error
QEMU_PROG: Failed to flush the refcount block cache: Input/output error
@@ -17,11 +17,11 @@ virtual size: 128 MiB (134217728 bytes)
cluster_size: 4096
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
+ extended l2: false
lazy refcounts: true
- refcount bits: 16
corrupt: false
- extended l2: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
Testing: create -f qcow2 -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k TEST_DIR/t.qcow2 128M
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=8192 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=on refcount_bits=16
@@ -31,11 +31,11 @@ virtual size: 128 MiB (134217728 bytes)
cluster_size: 8192
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
+ extended l2: false
lazy refcounts: true
- refcount bits: 16
corrupt: false
- extended l2: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
Testing: create -f qcow2 -o cluster_size=4k,cluster_size=8k TEST_DIR/t.qcow2 128M
Formatting 'TEST_DIR/t.qcow2', fmt=qcow2 cluster_size=8192 extended_l2=off compression_type=zlib size=134217728 lazy_refcounts=off refcount_bits=16
@@ -329,11 +329,11 @@ virtual size: 128 MiB (134217728 bytes)
cluster_size: 4096
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
+ extended l2: false
lazy refcounts: true
- refcount bits: 16
corrupt: false
- extended l2: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
Testing: convert -O qcow2 -o cluster_size=4k -o lazy_refcounts=on -o cluster_size=8k TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base
image: TEST_DIR/t.IMGFMT.base
@@ -342,11 +342,11 @@ virtual size: 128 MiB (134217728 bytes)
cluster_size: 8192
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
+ extended l2: false
lazy refcounts: true
- refcount bits: 16
corrupt: false
- extended l2: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
Testing: convert -O qcow2 -o cluster_size=4k,cluster_size=8k TEST_DIR/t.qcow2 TEST_DIR/t.qcow2.base
image: TEST_DIR/t.IMGFMT.base
@@ -639,11 +639,11 @@ virtual size: 128 MiB (134217728 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
+ extended l2: false
lazy refcounts: true
- refcount bits: 16
corrupt: false
- extended l2: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
Testing: amend -f qcow2 -o size=130M -o lazy_refcounts=off TEST_DIR/t.qcow2
image: TEST_DIR/t.IMGFMT
@@ -652,11 +652,11 @@ virtual size: 130 MiB (136314880 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
+ extended l2: false
lazy refcounts: false
- refcount bits: 16
corrupt: false
- extended l2: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
Testing: amend -f qcow2 -o size=8M -o lazy_refcounts=on -o size=132M TEST_DIR/t.qcow2
image: TEST_DIR/t.IMGFMT
@@ -665,11 +665,11 @@ virtual size: 132 MiB (138412032 bytes)
cluster_size: 65536
Format specific information:
compat: 1.1
- compression type: COMPRESSION_TYPE
+ extended l2: false
lazy refcounts: true
- refcount bits: 16
corrupt: false
- extended l2: false
+ refcount bits: 16
+ compression type: COMPRESSION_TYPE
Testing: amend -f qcow2 -o size=4M,size=148M TEST_DIR/t.qcow2
image: TEST_DIR/t.IMGFMT
@@ -15,14 +15,14 @@ virtual size: 5 MiB (5242880 bytes)
{ 'execute': 'block-commit',
'arguments': { 'device': 'test',
'top': 'TEST_DIR/t.IMGFMT.snp1' } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "test"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "test"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "test", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "test", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "test"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "test"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "test", "len": 104857600, "offset": 104857600, "speed": 0, "type": "commit"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "test"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "test"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "test", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "test", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "test", "len": 104857600, "offset": 104857600, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "test", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "test", "status": "null"}}
=== Base image info after commit and resize ===
image: TEST_DIR/t.IMGFMT.base
@@ -12,11 +12,11 @@ blkverify:TEST_DIR/t.IMGFMT.compare:TEST_DIR/t.IMGFMT
=== Testing JSON filename for blkdebug ===
-json:{"driver": "IMGFMT", "file": {"image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "inject-error.0.event": "l1_update"}}
+json:{"driver": "IMGFMT", "file": {"driver": "blkdebug", "inject-error.0.event": "l1_update", "image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}}}
=== Testing indirectly enforced JSON filename ===
-json:{"driver": "raw", "file": {"test": {"driver": "IMGFMT", "file": {"image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "inject-error.0.event": "l1_update"}}, "driver": "blkverify", "raw": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.compare"}}}
+json:{"driver": "raw", "file": {"driver": "blkverify", "test": {"driver": "IMGFMT", "file": {"driver": "blkdebug", "inject-error.0.event": "l1_update", "image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}}}, "raw": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.compare"}}}
=== Testing plain filename for blkdebug ===
@@ -163,18 +163,18 @@ OK: Reftable is where we expect it
"size": 67108864,
"cluster-size": 512
} } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "create"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "create"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "create"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "create"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "create"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "pending"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "concluded"}}
{ "execute": "job-dismiss", "arguments": { "id": "create" } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "create"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "null"}}
{"return": {}}
{ "execute": "quit" }
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
wrote 65536/65536 bytes at offset 0
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
@@ -19,7 +19,7 @@ wrote 65536/65536 bytes at offset 0
{"return": ""}
{ 'execute': 'quit' }
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
No errors were found on the image.
read 65536/65536 bytes at offset 0
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
@@ -6,7 +6,7 @@ wrote 65536/65536 bytes at offset 0
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
{"return": ""}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
read 65536/65536 bytes at offset 0
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
read 65536/65536 bytes at offset 0
@@ -14,20 +14,20 @@ wrote 42/42 bytes at offset 0
'mode': 'existing',
'sync': 'top'
} }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "mirror"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "mirror"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "mirror"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "mirror", "len": 65536, "offset": 65536, "speed": 0, "type": "mirror"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "ready"}}
+{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "mirror", "len": 65536, "offset": 65536, "speed": 0}}
{ 'execute': 'block-job-complete',
'arguments': { 'device': 'mirror' } }
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "mirror"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "mirror"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "mirror", "len": 65536, "offset": 65536, "speed": 0, "type": "mirror"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "mirror", "len": 65536, "offset": 65536, "speed": 0}}
{ 'execute': 'quit' }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "mirror"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "mirror"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "null"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
*** done
@@ -15,10 +15,10 @@ read 65536/65536 bytes at offset 0
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
{ 'execute': 'eject',
'arguments': { 'device': 'drv' }}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_EXPORT_DELETED", "data": {"id": "drv"}}
+{"event": "BLOCK_EXPORT_DELETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "drv"}}
qemu-io: can't open device nbd+unix:///drv?socket=SOCK_DIR/nbd: Requested export not available
server reported: export 'drv' not present
{ 'execute': 'quit' }
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
*** done
@@ -23,20 +23,20 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/m.
'format': 'IMGFMT',
'sync': 'none'}}
Formatting 'TEST_DIR/o.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.IMGFMT backing_fmt=IMGFMT
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "paused"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: node is used as backing hd of 'NODE_NAME'"}}
{'execute': 'block-job-cancel',
'arguments': {'device': 'job0'}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_CANCELLED", "data": {"device": "job0", "len": 1048576, "offset": 0, "speed": 0, "type": "backup"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "aborting"}}
+{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "backup", "device": "job0", "len": 1048576, "offset": 0, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"return": {}}
@@ -59,21 +59,21 @@ Formatting 'TEST_DIR/o.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.
'format': 'IMGFMT',
'sync': 'none'}}
Formatting 'TEST_DIR/o.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.IMGFMT backing_fmt=IMGFMT
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "mirror"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "ready"}}
+{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "job0", "len": 0, "offset": 0, "speed": 0}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block device is in use by block job: mirror"}}
{'execute': 'block-job-cancel',
'arguments': {'device': 'job0'}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "mirror"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "job0", "len": 0, "offset": 0, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"return": {}}
@@ -91,21 +91,21 @@ Formatting 'TEST_DIR/o.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.
{"return": {}}
{'execute': 'block-commit',
'arguments': {'job-id': 'job0', 'device': 'drv0'}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "ready"}}
+{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "len": 0, "offset": 0, "speed": 0}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block device is in use by block job: commit"}}
{'execute': 'block-job-cancel',
'arguments': {'device': 'job0'}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "len": 0, "offset": 0, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"return": {}}
@@ -128,18 +128,18 @@ wrote 1048576/1048576 bytes at offset 0
'device': 'drv0',
'top': 'TEST_DIR/m.IMGFMT',
'speed': 1}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block device is in use by block job: commit"}}
{'execute': 'block-job-cancel',
'arguments': {'device': 'job0'}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_CANCELLED", "data": {"device": "job0", "len": 1048576, "offset": 524288, "speed": 1, "type": "commit"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "aborting"}}
+{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "len": 1048576, "offset": 524288, "speed": 1}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"return": {}}
@@ -161,18 +161,18 @@ wrote 1048576/1048576 bytes at offset 0
'arguments': {'job-id': 'job0',
'device': 'drv0',
'speed': 1}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block device is in use by block job: stream"}}
{'execute': 'block-job-cancel',
'arguments': {'device': 'job0'}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_CANCELLED", "data": {"device": "job0", "len": 1048576, "offset": 524288, "speed": 1, "type": "stream"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "aborting"}}
+{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "stream", "device": "job0", "len": 1048576, "offset": 524288, "speed": 1}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
{'execute': 'blockdev-del',
'arguments': {'node-name': 'drv0'}}
{"return": {}}
@@ -11,5 +11,5 @@ qemu-io: can't open device nbd+unix:///aa--aa1?socket=SOCK_DIR/nbd: Requested ex
server reported: export 'aa--aa...' not present
{ 'execute': 'quit' }
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
*** done
@@ -25,22 +25,22 @@ Formatting 'TEST_DIR/tmp.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off co
'device': 'virtio0'
}
}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "virtio0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "virtio0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "virtio0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "virtio0", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "virtio0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "virtio0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "virtio0", "status": "ready"}}
+{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "virtio0", "len": 0, "offset": 0, "speed": 0}}
{ 'execute': 'block-job-complete',
'arguments': {
'device': 'virtio0'
}
}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "virtio0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "virtio0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "virtio0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "virtio0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "virtio0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "virtio0", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "virtio0", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "virtio0", "len": 0, "offset": 0, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "virtio0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "virtio0", "status": "null"}}
=== Performing Live Snapshot 2 ===
@@ -26,11 +26,11 @@ Formatting 'TEST_DIR/t.IMGFMT.target.overlay', fmt=IMGFMT size=1048576 backing_f
'target': 'TEST_DIR/t.IMGFMT.target.overlay',
'mode': 'existing',
'sync': 'top' } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "source"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "source"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "source", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "source", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "source"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "source", "len": 131072, "offset": 131072, "speed": 0, "type": "mirror"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "source", "status": "ready"}}
+{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "source", "len": 131072, "offset": 131072, "speed": 0}}
{ 'execute': 'human-monitor-command',
'arguments': { 'command-line':
'qemu-io source "write -P 4 192k 64k"' } }
@@ -40,11 +40,11 @@ wrote 65536/65536 bytes at offset 196608
{ 'execute': 'block-job-complete',
'arguments': { 'device': 'source' } }
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "source"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "source"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "source", "len": 196608, "offset": 196608, "speed": 0, "type": "mirror"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "source"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "source"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "source", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "source", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "source", "len": 196608, "offset": 196608, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "source", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "source", "status": "null"}}
{ 'execute': 'human-monitor-command',
'arguments': { 'command-line':
@@ -73,7 +73,7 @@ read 65536/65536 bytes at offset 196608
{ 'execute': 'quit' }
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
read 65536/65536 bytes at offset 0
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
@@ -18,17 +18,17 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.
{"return": {}}
{ 'execute': 'block-stream', 'arguments': { 'device': 'none0',
'base': 'TEST_DIR/t.IMGFMT.base' } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "none0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "none0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "running"}}
{"return": {}}
{ 'execute': 'human-monitor-command',
'arguments': { 'command-line':
'qemu-io none0 "reopen -o backing.detect-zeroes=on"' } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "none0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "none0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "none0", "len": 1048576, "offset": 1048576, "speed": 0, "type": "stream"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "none0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "none0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "stream", "device": "none0", "len": 1048576, "offset": 1048576, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "null"}}
{"return": ""}
*** Commit and then change an option on the backing file
@@ -40,16 +40,16 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.
{"return": {}}
{ 'execute': 'block-commit', 'arguments': { 'device': 'none0',
'top': 'TEST_DIR/t.IMGFMT.int' } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "none0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "none0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "running"}}
{"return": {}}
{ 'execute': 'human-monitor-command',
'arguments': { 'command-line':
'qemu-io none0 "reopen -o backing.detect-zeroes=on"' } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "none0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "none0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "none0", "len": 1048576, "offset": 1048576, "speed": 0, "type": "commit"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "none0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "none0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "none0", "len": 1048576, "offset": 1048576, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "none0", "status": "null"}}
{"return": ""}
*** done
@@ -170,7 +170,7 @@ QMP_VERSION
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
wrote 196608/196608 bytes at offset 2147287040
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 131072/131072 bytes at offset 2147352576
@@ -207,7 +207,7 @@ QMP_VERSION
{"return": {}}
{"return": {"sha256": HASH}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
=== Test pass bitmap.1 ===
@@ -219,7 +219,7 @@ QMP_VERSION
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
wrote 196608/196608 bytes at offset 2147287040
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 131072/131072 bytes at offset 2147352576
@@ -257,7 +257,7 @@ QMP_VERSION
{"return": {}}
{"return": {"sha256": HASH}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
=== Test pass bitmap.2 ===
@@ -269,7 +269,7 @@ QMP_VERSION
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
wrote 196608/196608 bytes at offset 2147287040
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 131072/131072 bytes at offset 2147352576
@@ -307,7 +307,7 @@ QMP_VERSION
{"return": {}}
{"return": {"sha256": HASH}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
=== Test pass bitmap.3 ===
@@ -319,7 +319,7 @@ QMP_VERSION
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
wrote 196608/196608 bytes at offset 2147287040
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 131072/131072 bytes at offset 2147352576
@@ -354,5 +354,5 @@ QMP_VERSION
{"return": {}}
{"return": {"sha256": HASH}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
*** done
@@ -30,13 +30,13 @@ read 65536/65536 bytes at offset 0
'arguments': { 'uri': 'unix:SOCK_DIR/migrate', 'blk': true } }
{"return": {}}
{ 'execute': 'query-status' }
-{"return": {"status": "postmigrate", "singlestep": false, "running": false}}
+{"return": {"running": false, "singlestep": false, "status": "postmigrate"}}
=== Do some I/O on the destination ===
{ 'execute': 'query-status' }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "RESUME"}
-{"return": {"status": "running", "singlestep": false, "running": true}}
+{"event": "RESUME", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}}
+{"return": {"running": true, "singlestep": false, "status": "running"}}
{ 'execute': 'human-monitor-command',
'arguments': { 'command-line':
'qemu-io disk "read -P 0x55 0 64k"' } }
@@ -56,8 +56,8 @@ wrote 65536/65536 bytes at offset 1048576
{"return": {}}
{"execute":"quit"}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
No errors were found on the image.
No errors were found on the image.
wrote 65536/65536 bytes at offset 1048576
@@ -24,64 +24,64 @@ Testing:
{
"return": [
{
- "iops_rd": 0,
+ "file": "json:{\"driver\": \"throttle\", \"throttle-group\": \"group0\", \"file\": {\"driver\": \"null-co\"}}",
+ "node-name": "throttle0",
+ "ro": false,
+ "drv": "throttle",
+ "backing_file_depth": 1,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
+ "filename": "json:{\"driver\": \"throttle\", \"throttle-group\": \"group0\", \"file\": {\"driver\": \"null-co\"}}",
+ "format": "throttle",
+ "actual-size": 0,
+ "virtual-size": 1073741824,
"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
+ "actual-size": 0,
+ "virtual-size": 1073741824
+ }
},
- "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,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "json:{\"throttle-group\": \"group0\", \"driver\": \"throttle\", \"file\": {\"driver\": \"null-co\"}}"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
- "detect_zeroes": "off",
- "image": {
- "virtual-size": 1073741824,
- "filename": "null-co://",
- "format": "null-co",
- "actual-size": 0
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "null-co://",
"node-name": "disk0",
- "backing_file_depth": 0,
+ "ro": false,
"drv": "null-co",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
+ "backing_file_depth": 0,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "null-co://",
+ "format": "null-co",
+ "actual-size": 0,
+ "virtual-size": 1073741824
+ },
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "null-co://"
+ "write_threshold": 0
}
]
}
@@ -94,11 +94,11 @@ Testing:
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -121,25 +121,25 @@ Testing:
}
{
"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-total-max": 0,
+ "iops-total-max-length": 1,
"iops-read": 0,
- "iops-write-max-length": 1,
+ "iops-read-max": 0,
+ "iops-read-max-length": 1,
"iops-write": 0,
+ "iops-write-max": 0,
+ "iops-write-max-length": 1,
+ "bps-total": 0,
+ "bps-total-max": 0,
"bps-total-max-length": 1,
- "iops-read-max": 0,
"bps-read": 0,
+ "bps-read-max": 0,
+ "bps-read-max-length": 1,
+ "bps-write": 0,
+ "bps-write-max": 0,
"bps-write-max-length": 1,
- "iops-total-max": 0
+ "iops-size": 0
}
}
{
@@ -148,25 +148,25 @@ Testing:
}
{
"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-total-max": 0,
+ "iops-total-max-length": 1,
"iops-read": 0,
- "iops-write-max-length": 1,
+ "iops-read-max": 0,
+ "iops-read-max-length": 1,
"iops-write": 0,
+ "iops-write-max": 0,
+ "iops-write-max-length": 1,
+ "bps-total": 0,
+ "bps-total-max": 0,
"bps-total-max-length": 1,
- "iops-read-max": 0,
"bps-read": 0,
+ "bps-read-max": 0,
+ "bps-read-max-length": 1,
+ "bps-write": 0,
+ "bps-write-max": 0,
"bps-write-max-length": 1,
- "iops-total-max": 0
+ "iops-size": 0
}
}
{
@@ -174,11 +174,11 @@ Testing:
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -216,11 +216,11 @@ Testing:
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -252,11 +252,11 @@ Testing:
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -57,7 +57,7 @@ qdev_id: [not inserted]
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device ide-hd,drive=null
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Cache mode: writeback
(qemu) quit
@@ -65,7 +65,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device ide-hd,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: qdev_id
Cache mode: writeback
(qemu) quit
@@ -73,7 +73,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device scsi-hd,drive=null
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Cache mode: writeback
(qemu) quit
@@ -81,7 +81,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device scsi-hd,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: qdev_id
Cache mode: writeback
(qemu) quit
@@ -89,7 +89,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device virtio-blk-pci,drive=null
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: /machine/peripheral-anon/device[N]/virtio-backend
Cache mode: writeback
(qemu) quit
@@ -97,7 +97,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device virtio-blk-pci,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: /machine/peripheral/qdev_id/virtio-backend
Cache mode: writeback
(qemu) quit
@@ -105,7 +105,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device floppy,drive=null
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Removable device: not locked, tray closed
Cache mode: writeback
@@ -114,7 +114,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device floppy,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -123,7 +123,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device ide-cd,drive=null
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Removable device: not locked, tray closed
Cache mode: writeback
@@ -132,7 +132,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device ide-cd,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -141,7 +141,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device scsi-cd,drive=null
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Removable device: not locked, tray closed
Cache mode: writeback
@@ -150,7 +150,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device scsi-cd,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": true} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -162,11 +162,11 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device ide-hd,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Removable device: not locked, tray closed
Cache mode: writeback
-null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Cache mode: writeback
(qemu) quit
@@ -174,11 +174,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device scsi-hd,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Removable device: not locked, tray closed
Cache mode: writeback
-null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Cache mode: writeback
(qemu) quit
@@ -186,11 +186,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device virtio-blk-pci,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Removable device: not locked, tray closed
Cache mode: writeback
-null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral/qdev_id/virtio-backend
Cache mode: writeback
(qemu) quit
@@ -198,11 +198,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device floppy,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Removable device: not locked, tray closed
Cache mode: writeback
-null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -211,11 +211,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device ide-cd,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Removable device: not locked, tray closed
Cache mode: writeback
-null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -224,11 +224,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device scsi-cd,drive=null,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Removable device: not locked, tray closed
Cache mode: writeback
-null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -240,7 +240,7 @@ null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device ide-hd,drive=none0
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Cache mode: writeback
(qemu) quit
@@ -248,7 +248,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device ide-hd,drive=none0,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Cache mode: writeback
(qemu) quit
@@ -256,7 +256,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device scsi-hd,drive=none0
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Cache mode: writeback
(qemu) quit
@@ -264,7 +264,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device scsi-hd,drive=none0,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Cache mode: writeback
(qemu) quit
@@ -272,7 +272,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device virtio-blk-pci,drive=none0
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral-anon/device[N]/virtio-backend
Cache mode: writeback
(qemu) quit
@@ -280,7 +280,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device virtio-blk-pci,drive=none0,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral/qdev_id/virtio-backend
Cache mode: writeback
(qemu) quit
@@ -288,7 +288,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device floppy,drive=none0
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Removable device: not locked, tray closed
Cache mode: writeback
@@ -297,7 +297,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device floppy,drive=none0,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -306,7 +306,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device ide-cd,drive=none0
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Removable device: not locked, tray closed
Cache mode: writeback
@@ -315,7 +315,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device ide-cd,drive=none0,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -324,7 +324,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device scsi-cd,drive=none0
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral-anon/device[N]
Removable device: not locked, tray closed
Cache mode: writeback
@@ -333,7 +333,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=none,driver=null-co,read-zeroes=on,node-name=null -device scsi-cd,drive=none0,id=qdev_id
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: qdev_id
Removable device: not locked, tray closed
Cache mode: writeback
@@ -411,7 +411,7 @@ floppy0: [not inserted]
Testing: -drive if=floppy,driver=null-co,read-zeroes=on
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-floppy0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+floppy0 (NODE_NAME): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/unattached/device[N]
Removable device: not locked, tray closed
Cache mode: writeback
@@ -420,7 +420,7 @@ floppy0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=ide,driver=null-co,read-zeroes=on
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-ide0-hd0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+ide0-hd0 (NODE_NAME): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/unattached/device[N]
Cache mode: writeback
(qemu) quit
@@ -436,7 +436,7 @@ ide0-cd0: [not inserted]
Testing: -drive if=ide,driver=null-co,read-zeroes=on,media=cdrom
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-ide0-cd0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (null-co, read-only)
+ide0-cd0 (NODE_NAME): json:{"driver": "null-co", "read-zeroes": "on"} (null-co, read-only)
Attached to: /machine/unattached/device[N]
Removable device: not locked, tray closed
Cache mode: writeback
@@ -445,7 +445,7 @@ ide0-cd0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (null-co,
Testing: -drive if=virtio,driver=null-co,read-zeroes=on
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-virtio0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
+virtio0 (NODE_NAME): json:{"driver": "null-co", "read-zeroes": "on"} (null-co)
Attached to: /machine/peripheral-anon/device[N]/virtio-backend
Cache mode: writeback
(qemu) quit
@@ -453,7 +453,7 @@ virtio0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (null-co)
Testing: -drive if=pflash,driver=null-co,read-zeroes=on,size=1M
QEMU X.Y.Z monitor - type 'help' for more information
(qemu) info block
-pflash0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co", "size": "1M"} (null-co)
+pflash0 (NODE_NAME): json:{"driver": "null-co", "size": "1M", "read-zeroes": "on"} (null-co)
Attached to: /machine/system.flash0
Cache mode: writeback
(qemu) quit
@@ -29,8 +29,8 @@ bitmaps size: 537198592
expected bitmap 545259520
{
- "bitmaps": 545259520,
"required": 18874368,
- "fully-allocated": 2199042129920
+ "fully-allocated": 2199042129920,
+ "bitmaps": 545259520
}
*** done
@@ -22,25 +22,25 @@ wrote 65536/65536 bytes at offset 1048576
'base':'TEST_DIR/t.IMGFMT.base',
'top': 'TEST_DIR/t.IMGFMT.mid' } }
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "created",
- "id": "commit0"
+ "id": "commit0",
+ "status": "created"
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "running",
- "id": "commit0"
+ "id": "commit0",
+ "status": "running"
}
}
{
@@ -48,61 +48,61 @@ wrote 65536/65536 bytes at offset 1048576
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "waiting",
- "id": "commit0"
+ "id": "commit0",
+ "status": "waiting"
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "pending",
- "id": "commit0"
+ "id": "commit0",
+ "status": "pending"
}
}
{
+ "event": "BLOCK_JOB_COMPLETED",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "BLOCK_JOB_COMPLETED",
"data": {
+ "type": "commit",
"device": "commit0",
"len": 67108864,
"offset": 67108864,
- "speed": 0,
- "type": "commit"
+ "speed": 0
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "concluded",
- "id": "commit0"
+ "id": "commit0",
+ "status": "concluded"
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "null",
- "id": "commit0"
+ "id": "commit0",
+ "status": "null"
}
}
@@ -112,268 +112,268 @@ wrote 65536/65536 bytes at offset 1048576
{
"return": [
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.ovl2",
+ "node-name": "top2",
+ "ro": false,
+ "drv": "IMGFMT",
+ "backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "backing-image": {
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT.ovl2",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "backing-filename-format": "IMGFMT",
+ "backing-image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ }
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "top2",
- "backing_file_depth": 1,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "backing_file": "TEST_DIR/t.IMGFMT.base",
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.ovl2"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.ovl2",
+ "node-name": "NODE_NAME",
+ "ro": false,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 197120,
"filename": "TEST_DIR/t.IMGFMT.ovl2",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 197120,
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.ovl2"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT",
+ "node-name": "top",
+ "ro": false,
+ "drv": "IMGFMT",
+ "backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "backing-image": {
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "backing-filename-format": "IMGFMT",
+ "backing-image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ }
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "top",
- "backing_file_depth": 1,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "backing_file": "TEST_DIR/t.IMGFMT.base",
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT",
+ "node-name": "NODE_NAME",
+ "ro": false,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 197120,
"filename": "TEST_DIR/t.IMGFMT",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 197120,
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.mid",
+ "node-name": "mid",
+ "ro": false,
+ "drv": "IMGFMT",
+ "backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "backing-image": {
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT.mid",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "backing-filename-format": "IMGFMT",
+ "backing-image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ }
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "mid",
- "backing_file_depth": 1,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "backing_file": "TEST_DIR/t.IMGFMT.base",
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.mid"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.mid",
+ "node-name": "NODE_NAME",
+ "ro": false,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 393216,
"filename": "TEST_DIR/t.IMGFMT.mid",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 393216,
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.mid"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.base",
+ "node-name": "base",
+ "ro": false,
+ "drv": "IMGFMT",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "base",
- "backing_file_depth": 0,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.base"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
- "detect_zeroes": "off",
- "image": {
- "virtual-size": 393216,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "format": "file",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "TEST_DIR/t.IMGFMT.base",
"node-name": "NODE_NAME",
- "backing_file_depth": 0,
+ "ro": false,
"drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
+ "backing_file_depth": 0,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "file",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 393216,
+ },
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.base"
+ "write_threshold": 0
}
]
}
@@ -383,11 +383,11 @@ wrote 65536/65536 bytes at offset 1048576
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -429,25 +429,25 @@ wrote 65536/65536 bytes at offset 1048576
'base':'TEST_DIR/t.IMGFMT.base',
'top': 'TEST_DIR/t.IMGFMT.mid' } }
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "created",
- "id": "commit0"
+ "id": "commit0",
+ "status": "created"
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "running",
- "id": "commit0"
+ "id": "commit0",
+ "status": "running"
}
}
{
@@ -455,61 +455,61 @@ wrote 65536/65536 bytes at offset 1048576
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "waiting",
- "id": "commit0"
+ "id": "commit0",
+ "status": "waiting"
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "pending",
- "id": "commit0"
+ "id": "commit0",
+ "status": "pending"
}
}
{
+ "event": "BLOCK_JOB_COMPLETED",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "BLOCK_JOB_COMPLETED",
"data": {
+ "type": "commit",
"device": "commit0",
"len": 67108864,
"offset": 67108864,
- "speed": 0,
- "type": "commit"
+ "speed": 0
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "concluded",
- "id": "commit0"
+ "id": "commit0",
+ "status": "concluded"
}
}
{
+ "event": "JOB_STATUS_CHANGE",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "JOB_STATUS_CHANGE",
"data": {
- "status": "null",
- "id": "commit0"
+ "id": "commit0",
+ "status": "null"
}
}
@@ -519,279 +519,279 @@ wrote 65536/65536 bytes at offset 1048576
{
"return": [
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.ovl2",
+ "node-name": "NODE_NAME",
+ "ro": true,
+ "drv": "IMGFMT",
+ "backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "backing-image": {
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT.ovl2",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "backing-filename-format": "IMGFMT",
+ "backing-image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ }
},
- "iops_wr": 0,
- "ro": true,
- "node-name": "NODE_NAME",
- "backing_file_depth": 1,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "backing_file": "TEST_DIR/t.IMGFMT.base",
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.ovl2"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.ovl2",
+ "node-name": "NODE_NAME",
+ "ro": true,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 197120,
"filename": "TEST_DIR/t.IMGFMT.ovl2",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 197120,
},
- "iops_wr": 0,
- "ro": true,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.ovl2"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.ovl3",
+ "node-name": "top2",
+ "ro": false,
+ "drv": "IMGFMT",
+ "backing_file": "TEST_DIR/t.IMGFMT.ovl2",
+ "backing_file_depth": 2,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
+ "filename": "TEST_DIR/t.IMGFMT.ovl3",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ "backing-filename": "TEST_DIR/t.IMGFMT.ovl2",
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.ovl2",
+ "backing-filename-format": "IMGFMT",
"backing-image": {
- "backing-image": {
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT.ovl2",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.ovl3",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.ovl2",
- "backing-filename": "TEST_DIR/t.IMGFMT.ovl2",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "backing-filename-format": "IMGFMT",
+ "backing-image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ }
+ }
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "top2",
- "backing_file_depth": 2,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "backing_file": "TEST_DIR/t.IMGFMT.ovl2",
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.ovl3"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.ovl3",
+ "node-name": "NODE_NAME",
+ "ro": false,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 197120,
"filename": "TEST_DIR/t.IMGFMT.ovl3",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 197120,
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.ovl3"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.base",
+ "node-name": "NODE_NAME",
+ "ro": true,
+ "drv": "IMGFMT",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
},
- "iops_wr": 0,
- "ro": true,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.base"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.base",
+ "node-name": "NODE_NAME",
+ "ro": true,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 393216,
"filename": "TEST_DIR/t.IMGFMT.base",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 393216,
},
- "iops_wr": 0,
- "ro": true,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.base"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT",
+ "node-name": "top",
+ "ro": false,
+ "drv": "IMGFMT",
+ "backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "backing-image": {
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "backing-filename-format": "IMGFMT",
+ "backing-image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ }
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "top",
- "backing_file_depth": 1,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "backing_file": "TEST_DIR/t.IMGFMT.base",
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT",
+ "node-name": "NODE_NAME",
+ "ro": false,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 197120,
"filename": "TEST_DIR/t.IMGFMT",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 197120,
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT"
+ "write_threshold": 0
}
]
}
@@ -801,11 +801,11 @@ wrote 65536/65536 bytes at offset 1048576
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -22,11 +22,11 @@ Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,backing.node-name=mid
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -60,11 +60,11 @@ Testing: -drive if=none,file=TEST_DIR/t.IMGFMT,node-name=top
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -14,43 +14,43 @@ Testing: -drive driver=null-co,read-zeroes=on,if=virtio
"return": [
{
"device": "virtio0",
+ "qdev": "/machine/peripheral-anon/device[0]/virtio-backend",
+ "node-name": "NODE_NAME",
"stats": {
+ "rd_bytes": 0,
+ "wr_bytes": 0,
+ "zone_append_bytes": 0,
+ "unmap_bytes": 0,
+ "rd_operations": 0,
+ "wr_operations": 0,
+ "zone_append_operations": 0,
+ "flush_operations": 0,
"unmap_operations": 0,
- "unmap_merged": 0,
- "failed_zone_append_operations": 0,
+ "rd_total_time_ns": 0,
+ "wr_total_time_ns": 0,
+ "zone_append_total_time_ns": 0,
"flush_total_time_ns": 0,
+ "unmap_total_time_ns": 0,
"wr_highest_offset": 0,
- "wr_total_time_ns": 0,
- "failed_wr_operations": 0,
- "failed_rd_operations": 0,
+ "rd_merged": 0,
"wr_merged": 0,
- "wr_bytes": 0,
- "timed_stats": [
- ],
- "failed_unmap_operations": 0,
"zone_append_merged": 0,
+ "unmap_merged": 0,
+ "failed_rd_operations": 0,
+ "failed_wr_operations": 0,
+ "failed_zone_append_operations": 0,
"failed_flush_operations": 0,
- "account_invalid": true,
- "rd_total_time_ns": 0,
- "invalid_unmap_operations": 0,
- "flush_operations": 0,
- "wr_operations": 0,
- "unmap_bytes": 0,
- "rd_merged": 0,
- "rd_bytes": 0,
- "unmap_total_time_ns": 0,
+ "failed_unmap_operations": 0,
+ "invalid_rd_operations": 0,
+ "invalid_wr_operations": 0,
+ "invalid_zone_append_operations": 0,
"invalid_flush_operations": 0,
+ "invalid_unmap_operations": 0,
+ "account_invalid": true,
"account_failed": true,
- "zone_append_total_time_ns": 0,
- "zone_append_operations": 0,
- "rd_operations": 0,
- "zone_append_bytes": 0,
- "invalid_zone_append_operations": 0,
- "invalid_wr_operations": 0,
- "invalid_rd_operations": 0
- },
- "node-name": "NODE_NAME",
- "qdev": "/machine/peripheral-anon/device[0]/virtio-backend"
+ "timed_stats": [
+ ]
+ }
}
]
}
@@ -59,11 +59,11 @@ Testing: -drive driver=null-co,read-zeroes=on,if=virtio
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -85,42 +85,42 @@ Testing: -drive driver=null-co,if=none
"return": [
{
"device": "none0",
+ "node-name": "NODE_NAME",
"stats": {
+ "rd_bytes": 0,
+ "wr_bytes": 0,
+ "zone_append_bytes": 0,
+ "unmap_bytes": 0,
+ "rd_operations": 0,
+ "wr_operations": 0,
+ "zone_append_operations": 0,
+ "flush_operations": 0,
"unmap_operations": 0,
- "unmap_merged": 0,
- "failed_zone_append_operations": 0,
+ "rd_total_time_ns": 0,
+ "wr_total_time_ns": 0,
+ "zone_append_total_time_ns": 0,
"flush_total_time_ns": 0,
+ "unmap_total_time_ns": 0,
"wr_highest_offset": 0,
- "wr_total_time_ns": 0,
- "failed_wr_operations": 0,
- "failed_rd_operations": 0,
+ "rd_merged": 0,
"wr_merged": 0,
- "wr_bytes": 0,
- "timed_stats": [
- ],
- "failed_unmap_operations": 0,
"zone_append_merged": 0,
+ "unmap_merged": 0,
+ "failed_rd_operations": 0,
+ "failed_wr_operations": 0,
+ "failed_zone_append_operations": 0,
"failed_flush_operations": 0,
- "account_invalid": true,
- "rd_total_time_ns": 0,
- "invalid_unmap_operations": 0,
- "flush_operations": 0,
- "wr_operations": 0,
- "unmap_bytes": 0,
- "rd_merged": 0,
- "rd_bytes": 0,
- "unmap_total_time_ns": 0,
+ "failed_unmap_operations": 0,
+ "invalid_rd_operations": 0,
+ "invalid_wr_operations": 0,
+ "invalid_zone_append_operations": 0,
"invalid_flush_operations": 0,
+ "invalid_unmap_operations": 0,
+ "account_invalid": true,
"account_failed": true,
- "zone_append_total_time_ns": 0,
- "zone_append_operations": 0,
- "rd_operations": 0,
- "zone_append_bytes": 0,
- "invalid_zone_append_operations": 0,
- "invalid_wr_operations": 0,
- "invalid_rd_operations": 0
- },
- "node-name": "NODE_NAME"
+ "timed_stats": [
+ ]
+ }
}
]
}
@@ -129,11 +129,11 @@ Testing: -drive driver=null-co,if=none
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -160,11 +160,11 @@ Testing: -blockdev driver=null-co,node-name=null
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -186,43 +186,43 @@ Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device virtio-b
"return": [
{
"device": "",
+ "qdev": "/machine/peripheral/virtio0/virtio-backend",
+ "node-name": "null",
"stats": {
+ "rd_bytes": 0,
+ "wr_bytes": 0,
+ "zone_append_bytes": 0,
+ "unmap_bytes": 0,
+ "rd_operations": 0,
+ "wr_operations": 0,
+ "zone_append_operations": 0,
+ "flush_operations": 0,
"unmap_operations": 0,
- "unmap_merged": 0,
- "failed_zone_append_operations": 0,
+ "rd_total_time_ns": 0,
+ "wr_total_time_ns": 0,
+ "zone_append_total_time_ns": 0,
"flush_total_time_ns": 0,
+ "unmap_total_time_ns": 0,
"wr_highest_offset": 0,
- "wr_total_time_ns": 0,
- "failed_wr_operations": 0,
- "failed_rd_operations": 0,
+ "rd_merged": 0,
"wr_merged": 0,
- "wr_bytes": 0,
- "timed_stats": [
- ],
- "failed_unmap_operations": 0,
"zone_append_merged": 0,
+ "unmap_merged": 0,
+ "failed_rd_operations": 0,
+ "failed_wr_operations": 0,
+ "failed_zone_append_operations": 0,
"failed_flush_operations": 0,
- "account_invalid": true,
- "rd_total_time_ns": 0,
- "invalid_unmap_operations": 0,
- "flush_operations": 0,
- "wr_operations": 0,
- "unmap_bytes": 0,
- "rd_merged": 0,
- "rd_bytes": 0,
- "unmap_total_time_ns": 0,
+ "failed_unmap_operations": 0,
+ "invalid_rd_operations": 0,
+ "invalid_wr_operations": 0,
+ "invalid_zone_append_operations": 0,
"invalid_flush_operations": 0,
+ "invalid_unmap_operations": 0,
+ "account_invalid": true,
"account_failed": true,
- "zone_append_total_time_ns": 0,
- "zone_append_operations": 0,
- "rd_operations": 0,
- "zone_append_bytes": 0,
- "invalid_zone_append_operations": 0,
- "invalid_wr_operations": 0,
- "invalid_rd_operations": 0
- },
- "node-name": "null",
- "qdev": "/machine/peripheral/virtio0/virtio-backend"
+ "timed_stats": [
+ ]
+ }
}
]
}
@@ -231,11 +231,11 @@ Testing: -blockdev driver=null-co,read-zeroes=on,node-name=null -device virtio-b
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -16,19 +16,19 @@ wrote 2097152/2097152 bytes at offset 0
'mode': 'existing',
'on-source-error': 'stop',
'on-target-error': 'stop' }}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "testdisk"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "testdisk"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_ERROR", "data": {"device": "testdisk", "operation": "write", "action": "stop"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "testdisk"}}
+{"event": "BLOCK_JOB_ERROR", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"device": "testdisk", "operation": "write", "action": "stop"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "paused"}}
=== Force cancel job paused in error state ===
{'execute': 'block-job-cancel',
'arguments': { 'device': 'testdisk',
'force': true}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "testdisk"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "testdisk"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_CANCELLED", "data": {"device": "testdisk", "len": 2097152, "offset": OFFSET, "speed": 0, "type": "mirror"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "aborting"}}
+{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "testdisk", "len": 2097152, "offset": OFFSET, "speed": 0}}
*** done
@@ -156,14 +156,14 @@ wrote 1048576/1048576 bytes at offset 0
"data-file": "data",
"data-file-raw": true
} } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "create"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "create"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "create"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "create"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "create"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "pending"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "concluded"}}
{ "execute": "job-dismiss", "arguments": { "id": "create" } }
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "create"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "create", "status": "null"}}
{"return": {}}
Comparing pattern:
@@ -9,14 +9,14 @@ Formatting 'TEST_DIR/t.IMGFMT.3', fmt=IMGFMT size=134217728
Formatting 'TEST_DIR/t.IMGFMT.4', fmt=IMGFMT size=134217728
QMP_VERSION
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 134217728, "offset": 134217728, "speed": 0, "type": "commit"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "len": 134217728, "offset": 134217728, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
*** done
@@ -16,8 +16,8 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.
{ 'execute': 'block-commit',
'arguments': {'job-id': 'job0', 'device': 'none1', 'top-node': 'int',
'filter-node-name': '1234'}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
{"error": {"class": "GenericError", "desc": "Invalid node-name: '1234'"}}
=== Send a write command to a drive opened in read-only mode (2)
@@ -30,14 +30,14 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 backing_file=TEST_DIR/t.
{ 'execute': 'block-commit',
'arguments': {'job-id': 'job0', 'device': 'none1', 'top-node': 'int'}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 1048576, "offset": 1048576, "speed": 0, "type": "commit"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "waiting"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "pending"}}
+{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "len": 1048576, "offset": 1048576, "speed": 0}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
=== Send a write command to a drive opened in read-only mode (3)
@@ -21,263 +21,263 @@ Testing: -blockdev file,node-name=base,filename=TEST_DIR/t.IMGFMT.base -blockdev
{
"return": [
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT",
+ "node-name": "top",
+ "ro": false,
+ "drv": "IMGFMT",
+ "backing_file": "TEST_DIR/t.IMGFMT.mid",
+ "backing_file_depth": 2,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
+ "filename": "TEST_DIR/t.IMGFMT",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ "backing-filename": "TEST_DIR/t.IMGFMT.mid",
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.mid",
+ "backing-filename-format": "IMGFMT",
"backing-image": {
- "backing-image": {
- "virtual-size": 197120,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "format": "file",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT.mid",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.mid",
- "backing-filename": "TEST_DIR/t.IMGFMT.mid",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "backing-filename-format": "IMGFMT",
+ "backing-image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "file",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 197120,
+ }
+ }
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "top",
- "backing_file_depth": 2,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "backing_file": "TEST_DIR/t.IMGFMT.mid",
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT",
+ "node-name": "topf",
+ "ro": false,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 197120,
"filename": "TEST_DIR/t.IMGFMT",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 197120,
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "topf",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.mid",
+ "node-name": "mid",
+ "ro": true,
+ "drv": "IMGFMT",
+ "backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "backing-image": {
- "virtual-size": 197120,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "format": "file",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "backing-filename-format": "IMGFMT",
- "virtual-size": 67108864,
"filename": "TEST_DIR/t.IMGFMT.mid",
- "cluster-size": 65536,
"format": "IMGFMT",
+ "dirty-flag": false,
"actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
"backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
+ "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "backing-filename-format": "IMGFMT",
+ "backing-image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "file",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 197120,
+ }
},
- "iops_wr": 0,
- "ro": true,
- "node-name": "mid",
- "backing_file_depth": 1,
- "drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "backing_file": "TEST_DIR/t.IMGFMT.base",
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.mid"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.mid",
+ "node-name": "midf",
+ "ro": false,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 197120,
"filename": "TEST_DIR/t.IMGFMT.mid",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 197120,
},
- "iops_wr": 0,
- "ro": false,
- "node-name": "midf",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.mid"
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.base",
+ "node-name": "base",
+ "ro": true,
+ "drv": "file",
+ "backing_file_depth": 0,
+ "encrypted": false,
"detect_zeroes": "off",
+ "bps": 0,
+ "bps_rd": 0,
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
"image": {
- "virtual-size": 197120,
"filename": "TEST_DIR/t.IMGFMT.base",
"format": "file",
+ "dirty-flag": false,
"actual-size": SIZE,
- "dirty-flag": false
+ "virtual-size": 197120,
},
- "iops_wr": 0,
- "ro": true,
- "node-name": "base",
- "backing_file_depth": 0,
- "drv": "file",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
- "encrypted": false,
- "bps": 0,
- "bps_rd": 0,
"cache": {
- "no-flush": false,
+ "writeback": true,
"direct": false,
- "writeback": true
+ "no-flush": false
},
- "file": "TEST_DIR/t.IMGFMT.base"
+ "write_threshold": 0
}
]
}
{
"return": {
+ "nodes": [
+ {
+ "id": 5,
+ "type": "block-driver",
+ "name": "top"
+ },
+ {
+ "id": 4,
+ "type": "block-driver",
+ "name": "topf"
+ },
+ {
+ "id": 3,
+ "type": "block-driver",
+ "name": "mid"
+ },
+ {
+ "id": 2,
+ "type": "block-driver",
+ "name": "midf"
+ },
+ {
+ "id": 1,
+ "type": "block-driver",
+ "name": "base"
+ }
+ ],
"edges": [
{
- "name": "file",
"parent": 5,
- "shared-perm": [
- "write-unchanged",
- "consistent-read"
- ],
+ "child": 4,
+ "name": "file",
"perm": [
"resize",
"write",
"consistent-read"
],
- "child": 4
+ "shared-perm": [
+ "write-unchanged",
+ "consistent-read"
+ ]
},
{
- "name": "backing",
"parent": 5,
+ "child": 3,
+ "name": "backing",
+ "perm": [
+ ],
"shared-perm": [
"resize",
"write-unchanged",
"write",
"consistent-read"
- ],
- "perm": [
- ],
- "child": 3
+ ]
},
{
- "name": "file",
"parent": 3,
- "shared-perm": [
- "write-unchanged",
- "consistent-read"
- ],
+ "child": 2,
+ "name": "file",
"perm": [
"consistent-read"
],
- "child": 2
+ "shared-perm": [
+ "write-unchanged",
+ "consistent-read"
+ ]
},
{
- "name": "backing",
"parent": 3,
+ "child": 1,
+ "name": "backing",
+ "perm": [
+ ],
"shared-perm": [
"resize",
"write-unchanged",
"write",
"consistent-read"
- ],
- "perm": [
- ],
- "child": 1
- }
- ],
- "nodes": [
- {
- "name": "top",
- "type": "block-driver",
- "id": 5
- },
- {
- "name": "topf",
- "type": "block-driver",
- "id": 4
- },
- {
- "name": "mid",
- "type": "block-driver",
- "id": 3
- },
- {
- "name": "midf",
- "type": "block-driver",
- "id": 2
- },
- {
- "name": "base",
- "type": "block-driver",
- "id": 1
+ ]
}
]
}
@@ -287,11 +287,11 @@ Testing: -blockdev file,node-name=base,filename=TEST_DIR/t.IMGFMT.base -blockdev
}
}
{
+ "event": "SHUTDOWN",
"timestamp": {
"seconds": TIMESTAMP,
"microseconds": TIMESTAMP
},
- "event": "SHUTDOWN",
"data": {
"guest": false,
"reason": "host-qmp-quit"
@@ -4,7 +4,7 @@ QMP_VERSION
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
+{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}}
image: TEST_DIR/t.IMGFMT
file format: IMGFMT
virtual size: 128 MiB (134217728 bytes)
@@ -8,15 +8,15 @@ QMP_VERSION
{"return": {}}
{"return": {}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_CANCELLED", "data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}}
+{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "len": 0, "offset": 0, "speed": 0}}
=== Streaming can't get permission on base node ===
QMP_VERSION
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}}
+{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}}
{"error": {"class": "GenericError", "desc": "Permission conflict on node 'fmt_base': permissions 'write' are both required by an unnamed block device (uses node 'fmt_base' as 'root' child) and unshared by stream job 'job0' (uses node 'fmt_base' as 'intermediate node' child)."}}
{"return": {}}
-{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_EXPORT_DELETED", "data": {"id": "export1"}}
+{"event": "BLOCK_EXPORT_DELETED", "timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "data": {"id": "export1"}}
*** done
@@ -229,7 +229,7 @@ static uint64_t resp_get_sve_vls(QDict *resp)
props = resp_get_props(resp);
- for (e = qdict_first(props); e; e = qdict_next(props, e)) {
+ for (e = qdict_first(props); e; e = qdict_next(e)) {
if (strlen(e->key) > 3 && !strncmp(e->key, "sve", 3) &&
g_ascii_isdigit(e->key[3])) {
char *endptr;
@@ -516,7 +516,7 @@ static int qdict_count_entries(QDict *dict)
const QDictEntry *e;
int count = 0;
- for (e = qdict_first(dict); e; e = qdict_next(dict, e)) {
+ for (e = qdict_first(dict); e; e = qdict_next(e)) {
count++;
}
@@ -209,7 +209,7 @@ static void qdict_iterapi_test(void)
qdict_put_int(tests_dict, "key3", 3);
count = 0;
- for (ent = qdict_first(tests_dict); ent; ent = qdict_next(tests_dict, ent)){
+ for (ent = qdict_first(tests_dict); ent; ent = qdict_next(ent)) {
g_assert(qdict_haskey(tests_dict, qdict_entry_key(ent)) == 1);
count++;
}
@@ -218,7 +218,7 @@ static void qdict_iterapi_test(void)
/* Do it again to test restarting */
count = 0;
- for (ent = qdict_first(tests_dict); ent; ent = qdict_next(tests_dict, ent)){
+ for (ent = qdict_first(tests_dict); ent; ent = qdict_next(ent)) {
g_assert(qdict_haskey(tests_dict, qdict_entry_key(ent)) == 1);
count++;
}
@@ -325,7 +325,7 @@ static void keyval_do_merge(QDict *dest, const QDict *merged, GString *str, Erro
const QDictEntry *ent;
QObject *old_value;
- for (ent = qdict_first(merged); ent; ent = qdict_next(merged, ent)) {
+ for (ent = qdict_first(merged); ent; ent = qdict_next(ent)) {
old_value = qdict_get(dest, ent->key);
if (old_value) {
if (qobject_type(old_value) != qobject_type(ent->value)) {
@@ -420,7 +420,7 @@ static QObject *keyval_listify(QDict *cur, GSList *key_of_cur, Error **errp)
*/
has_index = false;
has_member = false;
- for (ent = qdict_first(cur); ent; ent = qdict_next(cur, ent)) {
+ for (ent = qdict_first(cur); ent; ent = qdict_next(ent)) {
if (key_to_index(ent->key, NULL) >= 0) {
has_index = true;
} else {
@@ -456,7 +456,7 @@ static QObject *keyval_listify(QDict *cur, GSList *key_of_cur, Error **errp)
nelt = qdict_size(cur) + 1; /* one extra, for use as sentinel */
elt = g_new0(QObject *, nelt);
max_index = -1;
- for (ent = qdict_first(cur); ent; ent = qdict_next(cur, ent)) {
+ for (ent = qdict_first(cur); ent; ent = qdict_next(ent)) {
index = key_to_index(ent->key, NULL);
assert(index >= 0);
if (index > max_index) {
@@ -999,7 +999,7 @@ QemuOpts *qemu_opts_from_qdict(QemuOptsList *list, const QDict *qdict,
for (entry = qdict_first(qdict);
entry;
- entry = qdict_next(qdict, entry)) {
+ entry = qdict_next(entry)) {
if (!qemu_opts_from_qdict_entry(opts, entry, errp)) {
qemu_opts_del(opts);
return NULL;
@@ -1021,7 +1021,7 @@ bool qemu_opts_absorb_qdict(QemuOpts *opts, QDict *qdict, Error **errp)
entry = qdict_first(qdict);
while (entry != NULL) {
- next = qdict_next(qdict, entry);
+ next = qdict_next(entry);
if (opts_accepts_any(opts->list) ||
find_desc_by_name(opts->list->desc, entry->key)) {
Changing the structure of qdict so that it can preserve order when iterating qdict. This will fix array_properties as it relies on `len-` prefixed argument to be set first. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1090 Signed-off-by: William Tsai <williamtsai1111@gmail.com> --- block.c | 6 +- block/blkdebug.c | 2 +- block/nbd.c | 4 +- block/nfs.c | 2 +- block/null.c | 2 +- block/qapi.c | 2 +- block/ssh.c | 2 +- include/qapi/qmp/qdict.h | 8 +- qapi/qmp-dispatch.c | 2 +- qapi/qobject-input-visitor.c | 2 +- qobject/block-qdict.c | 18 +- qobject/qdict.c | 50 +- qobject/qjson.c | 2 +- qom/object_interfaces.c | 2 +- softmmu/vl.c | 2 +- target/i386/cpu-sysemu.c | 4 +- target/s390x/cpu_models_sysemu.c | 2 +- tests/qemu-iotests/043.out | 22 +- tests/qemu-iotests/051.out | 11 +- tests/qemu-iotests/051.pc.out | 10 +- tests/qemu-iotests/060.out | 14 +- tests/qemu-iotests/061.out | 78 +- tests/qemu-iotests/065 | 17 +- tests/qemu-iotests/071.out | 4 +- tests/qemu-iotests/082.out | 42 +- tests/qemu-iotests/095.out | 14 +- tests/qemu-iotests/099.out | 4 +- tests/qemu-iotests/108.out | 14 +- tests/qemu-iotests/117.out | 2 +- tests/qemu-iotests/120.out | 2 +- tests/qemu-iotests/127.out | 20 +- tests/qemu-iotests/140.out | 4 +- tests/qemu-iotests/141.out | 76 +- tests/qemu-iotests/143.out | 2 +- tests/qemu-iotests/144.out | 18 +- tests/qemu-iotests/156.out | 20 +- tests/qemu-iotests/161.out | 28 +- tests/qemu-iotests/176.out | 16 +- tests/qemu-iotests/183.out | 10 +- tests/qemu-iotests/184.out | 138 +-- tests/qemu-iotests/186.out | 82 +- tests/qemu-iotests/190.out | 4 +- tests/qemu-iotests/191.out | 802 +++++++++--------- tests/qemu-iotests/195.out | 4 +- tests/qemu-iotests/227.out | 174 ++-- tests/qemu-iotests/229.out | 14 +- tests/qemu-iotests/244.out | 12 +- tests/qemu-iotests/247.out | 16 +- tests/qemu-iotests/249.out | 18 +- tests/qemu-iotests/273.out | 334 ++++---- tests/qemu-iotests/tests/iothreads-resize.out | 2 +- tests/qemu-iotests/tests/qsd-jobs.out | 8 +- tests/qtest/arm-cpu-features.c | 2 +- tests/unit/check-block-qdict.c | 2 +- tests/unit/check-qdict.c | 4 +- util/keyval.c | 6 +- util/qemu-option.c | 4 +- 57 files changed, 1086 insertions(+), 1080 deletions(-)