Prior to qemu 2.5 the node names would not be generated, thus would be
missing from 'query-blockstats' and 'query-named-block-nodes'. Test that
the code correctly detects nothing.
Additionally make sure that a VM without disks does not cause problems.
The test case change is necessary as our test file checker does not play
well with empty files.
---
.../qemumonitorjson-nodename-empty-blockstats.json | 2 +
...qemumonitorjson-nodename-empty-named-nodes.json | 2 +
.../qemumonitorjson-nodename-empty.result | 1 +
.../qemumonitorjson-nodename-old-blockstats.json | 160 +++++++++++++++++++++
.../qemumonitorjson-nodename-old-named-nodes.json | 2 +
.../qemumonitorjson-nodename-old.result | 1 +
tests/qemumonitorjsontest.c | 5 +
7 files changed, 173 insertions(+)
create mode 100644
tests/qemumonitorjsondata/qemumonitorjson-nodename-empty-blockstats.json
create mode 100644
tests/qemumonitorjsondata/qemumonitorjson-nodename-empty-named-nodes.json
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-nodename-empty.result
create mode 100644
tests/qemumonitorjsondata/qemumonitorjson-nodename-old-blockstats.json
create mode 100644
tests/qemumonitorjsondata/qemumonitorjson-nodename-old-named-nodes.json
create mode 100644 tests/qemumonitorjsondata/qemumonitorjson-nodename-old.result
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty-blockstats.json
b/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty-blockstats.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty-blockstats.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty-named-nodes.json
b/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty-named-nodes.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty-named-nodes.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty.result
b/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty.result
new file mode 100644
index 000000000..9dafe9be2
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-nodename-empty.result
@@ -0,0 +1 @@
+nothing
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-nodename-old-blockstats.json
b/tests/qemumonitorjsondata/qemumonitorjson-nodename-old-blockstats.json
new file mode 100644
index 000000000..26c14f9f2
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-nodename-old-blockstats.json
@@ -0,0 +1,160 @@
+[
+ {
+ "device": "drive-virtio-disk0",
+ "parent": {
+ "stats": {
+ "flush_total_time_ns": 0,
+ "wr_highest_offset": 32899072,
+ "wr_total_time_ns": 0,
+ "failed_wr_operations": 0,
+ "failed_rd_operations": 0,
+ "wr_merged": 0,
+ "wr_bytes": 0,
+ "timed_stats": [
+
+ ],
+ "failed_flush_operations": 0,
+ "account_invalid": false,
+ "rd_total_time_ns": 0,
+ "flush_operations": 0,
+ "wr_operations": 0,
+ "rd_merged": 0,
+ "rd_bytes": 0,
+ "invalid_flush_operations": 0,
+ "account_failed": false,
+ "rd_operations": 0,
+ "invalid_wr_operations": 0,
+ "invalid_rd_operations": 0
+ }
+ },
+ "stats": {
+ "flush_total_time_ns": 452246313,
+ "wr_highest_offset": 8072282112,
+ "wr_total_time_ns": 4803102521,
+ "failed_wr_operations": 0,
+ "failed_rd_operations": 0,
+ "wr_merged": 8,
+ "wr_bytes": 6517248,
+ "timed_stats": [
+
+ ],
+ "failed_flush_operations": 0,
+ "account_invalid": true,
+ "rd_total_time_ns": 11065169148,
+ "flush_operations": 10,
+ "wr_operations": 129,
+ "rd_merged": 77,
+ "rd_bytes": 76399104,
+ "invalid_flush_operations": 0,
+ "account_failed": true,
+ "idle_time_ns": 22663656304,
+ "rd_operations": 4038,
+ "invalid_wr_operations": 0,
+ "invalid_rd_operations": 0
+ },
+ "backing": {
+ "parent": {
+ "stats": {
+ "flush_total_time_ns": 0,
+ "wr_highest_offset": 0,
+ "wr_total_time_ns": 0,
+ "failed_wr_operations": 0,
+ "failed_rd_operations": 0,
+ "wr_merged": 0,
+ "wr_bytes": 0,
+ "timed_stats": [
+
+ ],
+ "failed_flush_operations": 0,
+ "account_invalid": false,
+ "rd_total_time_ns": 0,
+ "flush_operations": 0,
+ "wr_operations": 0,
+ "rd_merged": 0,
+ "rd_bytes": 0,
+ "invalid_flush_operations": 0,
+ "account_failed": false,
+ "rd_operations": 0,
+ "invalid_wr_operations": 0,
+ "invalid_rd_operations": 0
+ }
+ },
+ "stats": {
+ "flush_total_time_ns": 0,
+ "wr_highest_offset": 0,
+ "wr_total_time_ns": 0,
+ "failed_wr_operations": 0,
+ "failed_rd_operations": 0,
+ "wr_merged": 0,
+ "wr_bytes": 0,
+ "timed_stats": [
+
+ ],
+ "failed_flush_operations": 0,
+ "account_invalid": false,
+ "rd_total_time_ns": 0,
+ "flush_operations": 0,
+ "wr_operations": 0,
+ "rd_merged": 0,
+ "rd_bytes": 0,
+ "invalid_flush_operations": 0,
+ "account_failed": false,
+ "rd_operations": 0,
+ "invalid_wr_operations": 0,
+ "invalid_rd_operations": 0
+ },
+ "backing": {
+ "parent": {
+ "stats": {
+ "flush_total_time_ns": 0,
+ "wr_highest_offset": 0,
+ "wr_total_time_ns": 0,
+ "failed_wr_operations": 0,
+ "failed_rd_operations": 0,
+ "wr_merged": 0,
+ "wr_bytes": 0,
+ "timed_stats": [
+
+ ],
+ "failed_flush_operations": 0,
+ "account_invalid": false,
+ "rd_total_time_ns": 0,
+ "flush_operations": 0,
+ "wr_operations": 0,
+ "rd_merged": 0,
+ "rd_bytes": 0,
+ "invalid_flush_operations": 0,
+ "account_failed": false,
+ "rd_operations": 0,
+ "invalid_wr_operations": 0,
+ "invalid_rd_operations": 0
+ }
+ },
+ "stats": {
+ "flush_total_time_ns": 0,
+ "wr_highest_offset": 0,
+ "wr_total_time_ns": 0,
+ "failed_wr_operations": 0,
+ "failed_rd_operations": 0,
+ "wr_merged": 0,
+ "wr_bytes": 0,
+ "timed_stats": [
+
+ ],
+ "failed_flush_operations": 0,
+ "account_invalid": false,
+ "rd_total_time_ns": 0,
+ "flush_operations": 0,
+ "wr_operations": 0,
+ "rd_merged": 0,
+ "rd_bytes": 0,
+ "invalid_flush_operations": 0,
+ "account_failed": false,
+ "rd_operations": 0,
+ "invalid_wr_operations": 0,
+ "invalid_rd_operations": 0
+ }
+ }
+ }
+ }
+]
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-nodename-old-named-nodes.json
b/tests/qemumonitorjsondata/qemumonitorjson-nodename-old-named-nodes.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-nodename-old-named-nodes.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/tests/qemumonitorjsondata/qemumonitorjson-nodename-old.result
b/tests/qemumonitorjsondata/qemumonitorjson-nodename-old.result
new file mode 100644
index 000000000..9dafe9be2
--- /dev/null
+++ b/tests/qemumonitorjsondata/qemumonitorjson-nodename-old.result
@@ -0,0 +1 @@
+nothing
diff --git a/tests/qemumonitorjsontest.c b/tests/qemumonitorjsontest.c
index 0601c1188..06d97989e 100644
--- a/tests/qemumonitorjsontest.c
+++ b/tests/qemumonitorjsontest.c
@@ -2763,6 +2763,9 @@ testBlockNodeNameDetect(const void *opaque)
virBufferTrim(&buf, "\n", -1);
+ if (virBufferUse(&buf) == 0)
+ virBufferAddLit(&buf, "nothing\n");
+
if (virBufferCheckError(&buf) < 0)
goto cleanup;
@@ -2931,6 +2934,8 @@ mymain(void)
DO_TEST_BLOCK_NODE_DETECT("relative");
DO_TEST_BLOCK_NODE_DETECT("gluster");
DO_TEST_BLOCK_NODE_DETECT("blockjob");
+ DO_TEST_BLOCK_NODE_DETECT("old");
+ DO_TEST_BLOCK_NODE_DETECT("empty");
#undef DO_TEST_BLOCK_NODE_DETECT
--
2.13.2