diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c
index f8ecbcc3d8..b15d90b614 100644
--- a/tests/qemublocktest.c
+++ b/tests/qemublocktest.c
@@ -466,6 +466,11 @@ mymain(void)
TEST_DISK_TO_JSON("file-qcow2-backing-chain-encryption");
TEST_DISK_TO_JSON("network-qcow2-backing-chain-encryption_auth");
+ TEST_DISK_TO_JSON("file-backing_basic-unmap");
+ TEST_DISK_TO_JSON("file-backing_basic-unmap-detect");
+ TEST_DISK_TO_JSON("file-backing_basic-unmap-ignore");
+ TEST_DISK_TO_JSON("file-backing_basic-detect");
+
cleanup:
virHashFree(diskxmljsondata.schema);
qemuTestDriverFree(&driver);
diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-detect.json b/tests/qemublocktestdata/xml2json/file-backing_basic-detect.json
new file mode 100644
index 0000000000..c1e4c40757
--- /dev/null
+++ b/tests/qemublocktestdata/xml2json/file-backing_basic-detect.json
@@ -0,0 +1,60 @@
+{
+ "node-name": "node-a-f",
+ "read-only": false,
+ "detect-zeroes": "on",
+ "driver": "qcow",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/a",
+ "node-name": "node-a-s",
+ "read-only": false,
+ "discard": "unmap"
+ },
+ "backing": "node-b-f"
+}
+{
+ "node-name": "node-b-f",
+ "read-only": true,
+ "driver": "qed",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/b",
+ "node-name": "node-b-s",
+ "read-only": true,
+ "discard": "unmap"
+ },
+ "backing": "node-c-f"
+}
+{
+ "node-name": "node-c-f",
+ "read-only": true,
+ "driver": "vmdk",
+ "file": {
+ "driver": "gluster",
+ "volume": "images",
+ "path": "c",
+ "server": [
+ {
+ "type": "inet",
+ "host": "test.org",
+ "port": "24007"
+ }
+ ],
+ "node-name": "node-c-s",
+ "read-only": true,
+ "discard": "unmap"
+ },
+ "backing": "node-d-f"
+}
+{
+ "node-name": "node-d-f",
+ "read-only": true,
+ "driver": "raw",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/d",
+ "node-name": "node-d-s",
+ "read-only": true,
+ "discard": "unmap"
+ }
+}
diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-detect.xml b/tests/qemublocktestdata/xml2json/file-backing_basic-detect.xml
new file mode 100644
index 0000000000..eaf89d316a
--- /dev/null
+++ b/tests/qemublocktestdata/xml2json/file-backing_basic-detect.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-detect.json b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-detect.json
new file mode 100644
index 0000000000..b00008dd54
--- /dev/null
+++ b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-detect.json
@@ -0,0 +1,64 @@
+{
+ "node-name": "node-a-f",
+ "read-only": false,
+ "discard": "unmap",
+ "detect-zeroes": "unmap",
+ "driver": "qcow",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/a",
+ "node-name": "node-a-s",
+ "read-only": false,
+ "discard": "unmap"
+ },
+ "backing": "node-b-f"
+}
+{
+ "node-name": "node-b-f",
+ "read-only": true,
+ "discard": "unmap",
+ "driver": "qed",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/b",
+ "node-name": "node-b-s",
+ "read-only": true,
+ "discard": "unmap"
+ },
+ "backing": "node-c-f"
+}
+{
+ "node-name": "node-c-f",
+ "read-only": true,
+ "discard": "unmap",
+ "driver": "vmdk",
+ "file": {
+ "driver": "gluster",
+ "volume": "images",
+ "path": "c",
+ "server": [
+ {
+ "type": "inet",
+ "host": "test.org",
+ "port": "24007"
+ }
+ ],
+ "node-name": "node-c-s",
+ "read-only": true,
+ "discard": "unmap"
+ },
+ "backing": "node-d-f"
+}
+{
+ "node-name": "node-d-f",
+ "read-only": true,
+ "discard": "unmap",
+ "driver": "raw",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/d",
+ "node-name": "node-d-s",
+ "read-only": true,
+ "discard": "unmap"
+ }
+}
diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-detect.xml b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-detect.xml
new file mode 100644
index 0000000000..4638a78541
--- /dev/null
+++ b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-detect.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-ignore.json b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-ignore.json
new file mode 100644
index 0000000000..5419deafc0
--- /dev/null
+++ b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-ignore.json
@@ -0,0 +1,64 @@
+{
+ "node-name": "node-a-f",
+ "read-only": false,
+ "discard": "ignore",
+ "detect-zeroes": "on",
+ "driver": "qcow",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/a",
+ "node-name": "node-a-s",
+ "read-only": false,
+ "discard": "unmap"
+ },
+ "backing": "node-b-f"
+}
+{
+ "node-name": "node-b-f",
+ "read-only": true,
+ "discard": "ignore",
+ "driver": "qed",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/b",
+ "node-name": "node-b-s",
+ "read-only": true,
+ "discard": "unmap"
+ },
+ "backing": "node-c-f"
+}
+{
+ "node-name": "node-c-f",
+ "read-only": true,
+ "discard": "ignore",
+ "driver": "vmdk",
+ "file": {
+ "driver": "gluster",
+ "volume": "images",
+ "path": "c",
+ "server": [
+ {
+ "type": "inet",
+ "host": "test.org",
+ "port": "24007"
+ }
+ ],
+ "node-name": "node-c-s",
+ "read-only": true,
+ "discard": "unmap"
+ },
+ "backing": "node-d-f"
+}
+{
+ "node-name": "node-d-f",
+ "read-only": true,
+ "discard": "ignore",
+ "driver": "raw",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/d",
+ "node-name": "node-d-s",
+ "read-only": true,
+ "discard": "unmap"
+ }
+}
diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-ignore.xml b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-ignore.xml
new file mode 100644
index 0000000000..b2d599fc6c
--- /dev/null
+++ b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap-ignore.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-unmap.json b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap.json
new file mode 100644
index 0000000000..1efc462c06
--- /dev/null
+++ b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap.json
@@ -0,0 +1,63 @@
+{
+ "node-name": "node-a-f",
+ "read-only": false,
+ "discard": "unmap",
+ "driver": "qcow",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/a",
+ "node-name": "node-a-s",
+ "read-only": false,
+ "discard": "unmap"
+ },
+ "backing": "node-b-f"
+}
+{
+ "node-name": "node-b-f",
+ "read-only": true,
+ "discard": "unmap",
+ "driver": "qed",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/b",
+ "node-name": "node-b-s",
+ "read-only": true,
+ "discard": "unmap"
+ },
+ "backing": "node-c-f"
+}
+{
+ "node-name": "node-c-f",
+ "read-only": true,
+ "discard": "unmap",
+ "driver": "vmdk",
+ "file": {
+ "driver": "gluster",
+ "volume": "images",
+ "path": "c",
+ "server": [
+ {
+ "type": "inet",
+ "host": "test.org",
+ "port": "24007"
+ }
+ ],
+ "node-name": "node-c-s",
+ "read-only": true,
+ "discard": "unmap"
+ },
+ "backing": "node-d-f"
+}
+{
+ "node-name": "node-d-f",
+ "read-only": true,
+ "discard": "unmap",
+ "driver": "raw",
+ "file": {
+ "driver": "file",
+ "filename": "/var/lib/libvirt/images/d",
+ "node-name": "node-d-s",
+ "read-only": true,
+ "discard": "unmap"
+ }
+}
diff --git a/tests/qemublocktestdata/xml2json/file-backing_basic-unmap.xml b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap.xml
new file mode 100644
index 0000000000..68484991c1
--- /dev/null
+++ b/tests/qemublocktestdata/xml2json/file-backing_basic-unmap.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+