[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH] qobject: Rewrite implementation of QDict for in-order traver
From: |
Markus Armbruster |
Subject: |
[RFC PATCH] qobject: Rewrite implementation of QDict for in-order traversal |
Date: |
Tue, 5 Jul 2022 11:54:21 +0200 |
QDict is implemented as a simple hash table of fixed size. Observe:
* Slow for large n. Not sure this matters.
* A QDict with n entries takes 4120 + n * 32 bytes on my box. Wastes
space for small n, which is a common case.
* Order of traversal depends on the hash function and on insertion
order, because it iterates first over buckets, then collision
chains.
* Special code ensures qdict_size() takes constant time.
Replace the hash table by a linked list. Observe:
* Even slower for large n. Might be bad enough to matter.
* A QDict with n entries takes 32 + n * 24 bytes.
* Traversal is in insertion order.
* qdict_size() is linear in the number of entries.
This is an experiment. Do not commit to master as is.
The change of traversal order affects expected test output. I updated
only the tests covered by "make check" so far. I expect some more to
hide under tests/qemu-iotests/.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
include/qapi/qmp/qdict.h | 15 +-
qobject/qdict.c | 104 +--
tests/unit/check-qdict.c | 2 +-
tests/unit/check-qobject.c | 2 +-
tests/qemu-iotests/043.out | 22 +-
tests/qemu-iotests/060.out | 16 +-
tests/qemu-iotests/061.out | 52 +-
tests/qemu-iotests/071.out | 4 +-
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/156.out | 20 +-
tests/qemu-iotests/161.out | 28 +-
tests/qemu-iotests/176.out | 16 +-
tests/qemu-iotests/184.out | 170 ++---
tests/qemu-iotests/186.out | 82 +--
tests/qemu-iotests/190.out | 4 +-
tests/qemu-iotests/191.out | 868 +++++++++++++-------------
tests/qemu-iotests/195.out | 4 +-
tests/qemu-iotests/229.out | 14 +-
tests/qemu-iotests/244.out | 12 +-
tests/qemu-iotests/249.out | 18 +-
tests/qemu-iotests/tests/qsd-jobs.out | 8 +-
28 files changed, 776 insertions(+), 809 deletions(-)
diff --git a/include/qapi/qmp/qdict.h b/include/qapi/qmp/qdict.h
index 82e90fc072..cf5c602286 100644
--- a/include/qapi/qmp/qdict.h
+++ b/include/qapi/qmp/qdict.h
@@ -16,8 +16,7 @@
#include "qapi/qmp/qobject.h"
#include "qemu/queue.h"
-#define QDICT_BUCKET_MAX 512
-
+#if 0
typedef struct QDictEntry {
char *key;
QObject *value;
@@ -29,6 +28,18 @@ struct QDict {
size_t size;
QLIST_HEAD(,QDictEntry) table[QDICT_BUCKET_MAX];
};
+#else
+typedef struct QDictEntry {
+ char *key;
+ QObject *value;
+ QSIMPLEQ_ENTRY(QDictEntry) next;
+} QDictEntry;
+
+struct QDict {
+ struct QObjectBase_ base;
+ QSIMPLEQ_HEAD(, QDictEntry) entries;
+};
+#endif
void qdict_unref(QDict *q);
diff --git a/qobject/qdict.c b/qobject/qdict.c
index 8faff230d3..444608cbc4 100644
--- a/qobject/qdict.c
+++ b/qobject/qdict.c
@@ -29,27 +29,11 @@ QDict *qdict_new(void)
qdict = g_malloc0(sizeof(*qdict));
qobject_init(QOBJECT(qdict), QTYPE_QDICT);
+ QSIMPLEQ_INIT(&qdict->entries);
return qdict;
}
-/**
- * tdb_hash(): based on the hash algorithm from gdbm, via tdb
- * (from module-init-tools)
- */
-static unsigned int tdb_hash(const char *name)
-{
- unsigned value; /* Used to compute the hash value. */
- unsigned i; /* Used to cycle through random values. */
-
- /* Set the initial value from the key size. */
- for (value = 0x238F13AF * strlen(name), i = 0; name[i]; i++) {
- value = (value + (((const unsigned char *)name)[i] << (i * 5 % 24)));
- }
-
- return (1103515243 * value + 12345);
-}
-
/**
* alloc_entry(): allocate a new QDictEntry
*/
@@ -88,15 +72,14 @@ const char *qdict_entry_key(const QDictEntry *entry)
/**
* qdict_find(): List lookup function
*/
-static QDictEntry *qdict_find(const QDict *qdict,
- const char *key, unsigned int bucket)
+static QDictEntry *qdict_find(const QDict *qdict, const char *key)
{
QDictEntry *entry;
- QLIST_FOREACH(entry, &qdict->table[bucket], next)
- if (!strcmp(entry->key, key)) {
+ QSIMPLEQ_FOREACH(entry, &qdict->entries, next) {
+ if (!strcmp(key, entry->key))
return entry;
- }
+ }
return NULL;
}
@@ -114,11 +97,8 @@ static QDictEntry *qdict_find(const QDict *qdict,
*/
void qdict_put_obj(QDict *qdict, const char *key, QObject *value)
{
- unsigned int bucket;
- QDictEntry *entry;
+ QDictEntry *entry = qdict_find(qdict, key);
- bucket = tdb_hash(key) % QDICT_BUCKET_MAX;
- entry = qdict_find(qdict, key, bucket);
if (entry) {
/* replace key's value */
qobject_unref(entry->value);
@@ -126,8 +106,7 @@ 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);
- qdict->size++;
+ QSIMPLEQ_INSERT_TAIL(&qdict->entries, entry, next);
}
}
@@ -161,8 +140,8 @@ QObject *qdict_get(const QDict *qdict, const char *key)
{
QDictEntry *entry;
- entry = qdict_find(qdict, key, tdb_hash(key) % QDICT_BUCKET_MAX);
- return (entry == NULL ? NULL : entry->value);
+ entry = qdict_find(qdict, key);
+ return entry ? entry->value : NULL;
}
/**
@@ -172,8 +151,7 @@ QObject *qdict_get(const QDict *qdict, const char *key)
*/
int qdict_haskey(const QDict *qdict, const char *key)
{
- unsigned int bucket = tdb_hash(key) % QDICT_BUCKET_MAX;
- return (qdict_find(qdict, key, bucket) == NULL ? 0 : 1);
+ return qdict_find(qdict, key) != NULL;
}
/**
@@ -181,7 +159,14 @@ int qdict_haskey(const QDict *qdict, const char *key)
*/
size_t qdict_size(const QDict *qdict)
{
- return qdict->size;
+ QDictEntry *entry;
+ size_t sz = 0;
+
+ QSIMPLEQ_FOREACH(entry, &qdict->entries, next) {
+ sz++;
+ }
+
+ return sz;
}
/**
@@ -301,25 +286,13 @@ 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 QSIMPLEQ_FIRST(&qdict->entries);
+
}
/**
@@ -327,15 +300,7 @@ const QDictEntry *qdict_first(const QDict *qdict)
*/
const QDictEntry *qdict_next(const QDict *qdict, 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 QSIMPLEQ_NEXT(entry, next);
}
/**
@@ -346,14 +311,11 @@ 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));
- }
+ QSIMPLEQ_FOREACH(entry, &src->entries, next) {
+ qdict_put_obj(dest, entry->key, qobject_ref(entry->value));
}
return dest;
@@ -380,13 +342,11 @@ static void qentry_destroy(QDictEntry *e)
*/
void qdict_del(QDict *qdict, const char *key)
{
- QDictEntry *entry;
+ QDictEntry *entry = qdict_find(qdict, key);
- entry = qdict_find(qdict, key, tdb_hash(key) % QDICT_BUCKET_MAX);
if (entry) {
- QLIST_REMOVE(entry, next);
+ QSIMPLEQ_REMOVE(&qdict->entries, entry, QDictEntry, next);
qentry_destroy(entry);
- qdict->size--;
}
}
@@ -424,20 +384,16 @@ bool qdict_is_equal(const QObject *x, const QObject *y)
*/
void qdict_destroy_obj(QObject *obj)
{
- int i;
QDict *qdict;
assert(obj != NULL);
qdict = qobject_to(QDict, 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);
- qentry_destroy(entry);
- entry = tmp;
- }
+ while (!QSIMPLEQ_EMPTY(&qdict->entries)) {
+ QDictEntry *entry = QSIMPLEQ_FIRST(&qdict->entries);
+
+ QSIMPLEQ_REMOVE_HEAD(&qdict->entries, next);
+ qentry_destroy(entry);
}
g_free(qdict);
diff --git a/tests/unit/check-qdict.c b/tests/unit/check-qdict.c
index b5efa859b0..d7d3df5efb 100644
--- a/tests/unit/check-qdict.c
+++ b/tests/unit/check-qdict.c
@@ -47,7 +47,7 @@ static void qdict_put_obj_test(void)
qdict_put_int(qdict, "", num);
g_assert(qdict_size(qdict) == 1);
- ent = QLIST_FIRST(&qdict->table[12345 % QDICT_BUCKET_MAX]);
+ ent = QSIMPLEQ_FIRST(&qdict->entries);
qn = qobject_to(QNum, ent->value);
g_assert_cmpint(qnum_get_int(qn), ==, num);
diff --git a/tests/unit/check-qobject.c b/tests/unit/check-qobject.c
index 022b7c74fe..0416762f80 100644
--- a/tests/unit/check-qobject.c
+++ b/tests/unit/check-qobject.c
@@ -192,10 +192,10 @@ static void qobject_is_equal_dict_test(void)
qdict_put_int(dict_0, "baz", 3);
qdict_put_null(dict_0, "null");
- qdict_put_int(dict_1, "f.o", 1);
qdict_put_int(dict_1, "bar", 2);
qdict_put_int(dict_1, "baz", 3);
qdict_put_null(dict_1, "null");
+ qdict_put_int(dict_1, "f.o", 1);
qdict_put_int(dict_different_key, "F.o", 1);
qdict_put_int(dict_different_key, "bar", 2);
diff --git a/tests/qemu-iotests/043.out b/tests/qemu-iotests/043.out
index 63ecb21816..d8fcff24e9 100644
--- a/tests/qemu-iotests/043.out
+++ b/tests/qemu-iotests/043.out
@@ -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
diff --git a/tests/qemu-iotests/060.out b/tests/qemu-iotests/060.out
index 329977d9b9..f654a6579c 100644
--- a/tests/qemu-iotests/060.out
+++ b/tests/qemu-iotests/060.out
@@ -17,11 +17,11 @@ 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
- corrupt: true
extended l2: false
+ lazy refcounts: false
+ corrupt: true
+ 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
diff --git a/tests/qemu-iotests/061.out b/tests/qemu-iotests/061.out
index 139fc68177..6a05d67378 100644
--- a/tests/qemu-iotests/061.out
+++ b/tests/qemu-iotests/061.out
@@ -497,7 +497,7 @@ 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 +512,7 @@ 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 +525,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 +552,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 +567,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 +583,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 +597,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 +612,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
diff --git a/tests/qemu-iotests/071.out b/tests/qemu-iotests/071.out
index bca0c02f5c..ff00da1ad1 100644
--- a/tests/qemu-iotests/071.out
+++ b/tests/qemu-iotests/071.out
@@ -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
diff --git a/tests/qemu-iotests/099.out b/tests/qemu-iotests/099.out
index 8cce627529..5726466bc6 100644
--- a/tests/qemu-iotests/099.out
+++ b/tests/qemu-iotests/099.out
@@ -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 ===
diff --git a/tests/qemu-iotests/108.out b/tests/qemu-iotests/108.out
index b5401d788d..faaabbcdf3 100644
--- a/tests/qemu-iotests/108.out
+++ b/tests/qemu-iotests/108.out
@@ -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)
diff --git a/tests/qemu-iotests/117.out b/tests/qemu-iotests/117.out
index 735ffd25c6..015c971197 100644
--- a/tests/qemu-iotests/117.out
+++ b/tests/qemu-iotests/117.out
@@ -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)
diff --git a/tests/qemu-iotests/120.out b/tests/qemu-iotests/120.out
index 0744c1f136..d677c72599 100644
--- a/tests/qemu-iotests/120.out
+++ b/tests/qemu-iotests/120.out
@@ -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
diff --git a/tests/qemu-iotests/127.out b/tests/qemu-iotests/127.out
index 1685c4850a..863832d162 100644
--- a/tests/qemu-iotests/127.out
+++ b/tests/qemu-iotests/127.out
@@ -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
diff --git a/tests/qemu-iotests/140.out b/tests/qemu-iotests/140.out
index 312f76d5da..586b64b24e 100644
--- a/tests/qemu-iotests/140.out
+++ b/tests/qemu-iotests/140.out
@@ -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
diff --git a/tests/qemu-iotests/141.out b/tests/qemu-iotests/141.out
index 63203d9944..4d8c7b598c 100644
--- a/tests/qemu-iotests/141.out
+++ b/tests/qemu-iotests/141.out
@@ -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": {}}
diff --git a/tests/qemu-iotests/143.out b/tests/qemu-iotests/143.out
index 9ec5888e0e..ec58b08e43 100644
--- a/tests/qemu-iotests/143.out
+++ b/tests/qemu-iotests/143.out
@@ -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
diff --git a/tests/qemu-iotests/156.out b/tests/qemu-iotests/156.out
index 4a22f0c41a..bb01818fc7 100644
--- a/tests/qemu-iotests/156.out
+++ b/tests/qemu-iotests/156.out
@@ -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)
diff --git a/tests/qemu-iotests/161.out b/tests/qemu-iotests/161.out
index 6cc285afcf..c62657639a 100644
--- a/tests/qemu-iotests/161.out
+++ b/tests/qemu-iotests/161.out
@@ -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
diff --git a/tests/qemu-iotests/176.out b/tests/qemu-iotests/176.out
index 9d09b60452..b46b743850 100644
--- a/tests/qemu-iotests/176.out
+++ b/tests/qemu-iotests/176.out
@@ -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
diff --git a/tests/qemu-iotests/184.out b/tests/qemu-iotests/184.out
index 77e5489d65..93e33ba20a 100644
--- a/tests/qemu-iotests/184.out
+++ b/tests/qemu-iotests/184.out
@@ -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,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "null-co://",
+ "format": "null-co",
+ "actual-size": 0,
+ "virtual-size": 1073741824
},
- "file": "null-co://"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "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,52 +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-read": 0,
- "iops-write-max-length": 1,
- "iops-write": 0,
- "bps-total-max-length": 1,
- "iops-read-max": 0,
- "bps-read": 0,
- "bps-write-max-length": 1,
- "iops-total-max": 0
- }
-}
-{
- "return": {
- }
-}
-{
- "return": {
- "bps-read-max-length": 1,
- "iops-read-max-length": 1,
- "bps-read-max": 0,
- "bps-total": 0,
+ "iops-total-max": 0,
"iops-total-max-length": 1,
- "iops-total": 0,
- "iops-write-max": 0,
- "bps-write": 0,
- "bps-total-max": 0,
- "bps-write-max": 0,
- "iops-size": 0,
"iops-read": 0,
- "iops-write-max-length": 1,
- "iops-write": 0,
- "bps-total-max-length": 1,
"iops-read-max": 0,
+ "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,
"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 +147,38 @@ Testing:
}
}
{
+ "return": {
+ "iops-total": 0,
+ "iops-total-max": 0,
+ "iops-total-max-length": 1,
+ "iops-read": 0,
+ "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,
+ "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-size": 0
+ }
+}
+{
+ "return": {
+ }
+}
+{
+ "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"
diff --git a/tests/qemu-iotests/186.out b/tests/qemu-iotests/186.out
index 01530040e5..12ea630222 100644
--- a/tests/qemu-iotests/186.out
+++ b/tests/qemu-iotests/186.out
@@ -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
diff --git a/tests/qemu-iotests/190.out b/tests/qemu-iotests/190.out
index ed9d8214eb..2acea9982c 100644
--- a/tests/qemu-iotests/190.out
+++ b/tests/qemu-iotests/190.out
@@ -29,8 +29,8 @@ bitmaps size: 537198592
expected bitmap 545259520
{
- "bitmaps": 545259520,
"required": 18874368,
- "fully-allocated": 2199042129920
+ "fully-allocated": 2199042129920,
+ "bitmaps": 545259520
}
*** done
diff --git a/tests/qemu-iotests/191.out b/tests/qemu-iotests/191.out
index ea88777374..a7dfb22080 100644
--- a/tests/qemu-iotests/191.out
+++ b/tests/qemu-iotests/191.out
@@ -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"
}
}
{
- "timestamp": {
- "seconds": TIMESTAMP,
- "microseconds": TIMESTAMP
- },
"event": "BLOCK_JOB_COMPLETED",
+ "timestamp": {
+ "seconds": TIMESTAMP,
+ "microseconds": TIMESTAMP
+ },
"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,
- "detect_zeroes": "off",
- "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",
- "actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
- "backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "TEST_DIR/t.IMGFMT.ovl2",
"node-name": "top2",
- "backing_file_depth": 1,
+ "ro": false,
"drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
"backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "TEST_DIR/t.IMGFMT.ovl2",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ "backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "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,
+ },
},
- "file": "TEST_DIR/t.IMGFMT.ovl2"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "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,
- "detect_zeroes": "off",
- "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",
- "actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
- "backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "TEST_DIR/t.IMGFMT",
"node-name": "top",
- "backing_file_depth": 1,
+ "ro": false,
"drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
"backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "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.base",
+ "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,
+ },
},
- "file": "TEST_DIR/t.IMGFMT"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "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,
- "detect_zeroes": "off",
- "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",
- "actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
- "backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "TEST_DIR/t.IMGFMT.mid",
"node-name": "mid",
- "backing_file_depth": 1,
+ "ro": false,
"drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
"backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "TEST_DIR/t.IMGFMT.mid",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ "backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "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,
+ },
},
- "file": "TEST_DIR/t.IMGFMT.mid"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "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,
- "detect_zeroes": "off",
- "image": {
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "TEST_DIR/t.IMGFMT.base",
"node-name": "base",
- "backing_file_depth": 0,
+ "ro": false,
"drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
+ "backing_file_depth": 0,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
},
- "file": "TEST_DIR/t.IMGFMT.base"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "write_threshold": 0
},
{
- "iops_rd": 0,
+ "file": "TEST_DIR/t.IMGFMT.base",
+ "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.base",
"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.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"
}
}
{
- "timestamp": {
- "seconds": TIMESTAMP,
- "microseconds": TIMESTAMP
- },
"event": "BLOCK_JOB_COMPLETED",
+ "timestamp": {
+ "seconds": TIMESTAMP,
+ "microseconds": TIMESTAMP
+ },
"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,
- "detect_zeroes": "off",
- "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",
- "actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
- "backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
- },
- "iops_wr": 0,
- "ro": true,
+ "file": "TEST_DIR/t.IMGFMT.ovl2",
"node-name": "NODE_NAME",
- "backing_file_depth": 1,
+ "ro": true,
"drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
"backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "TEST_DIR/t.IMGFMT.ovl2",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ "backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "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,
+ },
},
- "file": "TEST_DIR/t.IMGFMT.ovl2"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "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,
- "detect_zeroes": "off",
- "image": {
- "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",
- "actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
- "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
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "TEST_DIR/t.IMGFMT.ovl3",
"node-name": "top2",
- "backing_file_depth": 2,
+ "ro": false,
"drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
"backing_file": "TEST_DIR/t.IMGFMT.ovl2",
+ "backing_file_depth": 2,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "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": {
+ "filename": "TEST_DIR/t.IMGFMT.ovl2",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
+ "backing-filename": "TEST_DIR/t.IMGFMT.base",
+ "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,
+ },
+ },
},
- "file": "TEST_DIR/t.IMGFMT.ovl3"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "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,
- "detect_zeroes": "off",
- "image": {
- "virtual-size": 67108864,
- "filename": "TEST_DIR/t.IMGFMT.base",
- "cluster-size": 65536,
- "format": "IMGFMT",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "iops_wr": 0,
+ "file": "TEST_DIR/t.IMGFMT.base",
+ "node-name": "NODE_NAME",
"ro": true,
- "node-name": "NODE_NAME",
- "backing_file_depth": 0,
"drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
+ "backing_file_depth": 0,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "TEST_DIR/t.IMGFMT.base",
+ "format": "IMGFMT",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 67108864,
+ "cluster-size": 65536,
},
- "file": "TEST_DIR/t.IMGFMT.base"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "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,
- "detect_zeroes": "off",
- "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",
- "actual-size": SIZE,
- "full-backing-filename": "TEST_DIR/t.IMGFMT.base",
- "backing-filename": "TEST_DIR/t.IMGFMT.base",
- "dirty-flag": false
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "TEST_DIR/t.IMGFMT",
"node-name": "top",
- "backing_file_depth": 1,
+ "ro": false,
"drv": "IMGFMT",
- "iops": 0,
- "bps_wr": 0,
- "write_threshold": 0,
"backing_file": "TEST_DIR/t.IMGFMT.base",
+ "backing_file_depth": 1,
"encrypted": false,
+ "detect_zeroes": "off",
"bps": 0,
"bps_rd": 0,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "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.base",
+ "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,
+ },
},
- "file": "TEST_DIR/t.IMGFMT"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "write_threshold": 0
},
{
- "iops_rd": 0,
- "detect_zeroes": "off",
- "image": {
- "virtual-size": 197120,
- "filename": "TEST_DIR/t.IMGFMT",
- "format": "file",
- "actual-size": SIZE,
- "dirty-flag": false
- },
- "iops_wr": 0,
- "ro": false,
+ "file": "TEST_DIR/t.IMGFMT",
"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,
- "cache": {
- "no-flush": false,
- "direct": false,
- "writeback": true
+ "bps_wr": 0,
+ "iops": 0,
+ "iops_rd": 0,
+ "iops_wr": 0,
+ "image": {
+ "filename": "TEST_DIR/t.IMGFMT",
+ "format": "file",
+ "dirty-flag": false,
+ "actual-size": SIZE,
+ "virtual-size": 197120
},
- "file": "TEST_DIR/t.IMGFMT"
+ "cache": {
+ "writeback": true,
+ "direct": false,
+ "no-flush": false
+ },
+ "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"
diff --git a/tests/qemu-iotests/195.out b/tests/qemu-iotests/195.out
index ec84df5012..485d7a1115 100644
--- a/tests/qemu-iotests/195.out
+++ b/tests/qemu-iotests/195.out
@@ -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"
diff --git a/tests/qemu-iotests/229.out b/tests/qemu-iotests/229.out
index 7d2bfbfbe6..3f4391df6e 100644
--- a/tests/qemu-iotests/229.out
+++ b/tests/qemu-iotests/229.out
@@ -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
diff --git a/tests/qemu-iotests/244.out b/tests/qemu-iotests/244.out
index 5e03add054..57cffee1ea 100644
--- a/tests/qemu-iotests/244.out
+++ b/tests/qemu-iotests/244.out
@@ -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:
diff --git a/tests/qemu-iotests/249.out b/tests/qemu-iotests/249.out
index d2bf9be85e..a1a1a1b851 100644
--- a/tests/qemu-iotests/249.out
+++ b/tests/qemu-iotests/249.out
@@ -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)
diff --git a/tests/qemu-iotests/tests/qsd-jobs.out
b/tests/qemu-iotests/tests/qsd-jobs.out
index c1bc9b8356..336a5c3946 100644
--- a/tests/qemu-iotests/tests/qsd-jobs.out
+++ b/tests/qemu-iotests/tests/qsd-jobs.out
@@ -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
--
2.35.3
- [RFC PATCH] qobject: Rewrite implementation of QDict for in-order traversal,
Markus Armbruster <=
Re: [RFC PATCH] qobject: Rewrite implementation of QDict for in-order traversal, Peter Maydell, 2022/07/07