{
  "schema_version": 1,
  "environment": {
    "qemu-img": {
      "version": "qemu-img version 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1.18)",
      "sha256": "634320b91165669917123e8e79cce1c4d00cee0a4aa4d662d7c0a8186479b3fb"
    },
    "qemu-io": {
      "version": "qemu-io version 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1.18)",
      "sha256": "71b3d50189aae57b2d01a5f16c46c1c48d006bf27403b7033478b9a6f013d414"
    }
  },
  "rows": [
    {
      "case": "standard-data-plain",
      "extended_l2": false,
      "pattern": 17,
      "copy_on_read": false,
      "virtual_bytes": 262144,
      "read_offset": 512,
      "read_bytes": 512,
      "cluster_bytes": 65536,
      "before": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_first": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_repeat": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "local_bytes": [
        0,
        0,
        0
      ],
      "overlay_sha256": [
        "1c472d9edd5484ba0f54d5d22899a9ae5bb5f5aeae36413b052246750a0694ff",
        "1c472d9edd5484ba0f54d5d22899a9ae5bb5f5aeae36413b052246750a0694ff",
        "1c472d9edd5484ba0f54d5d22899a9ae5bb5f5aeae36413b052246750a0694ff"
      ],
      "backing_filename_after": "base.raw",
      "expected_sha256": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "export_sha256": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "base_sha256_after": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "commands": [
        {
          "tool": "qemu-img",
          "args": [
            "create",
            "-q",
            "-f",
            "qcow2",
            "-F",
            "raw",
            "-b",
            "base.raw",
            "-o",
            "cluster_size=65536",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-f",
            "qcow2",
            "-c",
            "read -q -P 17 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-f",
            "qcow2",
            "-c",
            "read -q -P 17 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "info",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "{\n    \"children\": [\n        {\n            \"name\": \"file\",\n            \"info\": {\n                \"children\": [\n                ],\n                \"virtual-size\": 197120,\n                \"filename\": \"overlay.qcow2\",\n                \"format\": \"file\",\n                \"actual-size\": 200704,\n                \"format-specific\": {\n                    \"type\": \"file\",\n                    \"data\": {\n                    }\n                },\n                \"dirty-flag\": false\n            }\n        }\n    ],\n    \"backing-filename-format\": \"raw\",\n    \"virtual-size\": 262144,\n    \"filename\": \"overlay.qcow2\",\n    \"cluster-size\": 65536,\n    \"format\": \"qcow2\",\n    \"actual-size\": 200704,\n    \"format-specific\": {\n        \"type\": \"qcow2\",\n        \"data\": {\n            \"compat\": \"1.1\",\n            \"compression-type\": \"zlib\",\n            \"lazy-refcounts\": false,\n            \"refcount-bits\": 16,\n            \"corrupt\": false,\n            \"extended-l2\": false\n        }\n    },\n    \"full-backing-filename\": \"base.raw\",\n    \"backing-filename\": \"base.raw\",\n    \"dirty-flag\": false\n}\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "convert",
            "-f",
            "qcow2",
            "-O",
            "raw",
            "overlay.qcow2",
            "export.raw"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        }
      ]
    },
    {
      "case": "standard-data-copy",
      "extended_l2": false,
      "pattern": 17,
      "copy_on_read": true,
      "virtual_bytes": 262144,
      "read_offset": 512,
      "read_bytes": 512,
      "cluster_bytes": 65536,
      "before": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_first": [
        {
          "start": 0,
          "length": 65536,
          "depth": 0,
          "data": true,
          "zero": false
        },
        {
          "start": 65536,
          "length": 196608,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_repeat": [
        {
          "start": 0,
          "length": 65536,
          "depth": 0,
          "data": true,
          "zero": false
        },
        {
          "start": 65536,
          "length": 196608,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "local_bytes": [
        0,
        65536,
        65536
      ],
      "overlay_sha256": [
        "1c472d9edd5484ba0f54d5d22899a9ae5bb5f5aeae36413b052246750a0694ff",
        "c3218536f7c308bf1fe2b86e032644904150c22c65b7ee389660cf4c1c186588",
        "c3218536f7c308bf1fe2b86e032644904150c22c65b7ee389660cf4c1c186588"
      ],
      "backing_filename_after": "base.raw",
      "expected_sha256": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "export_sha256": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "base_sha256_after": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "commands": [
        {
          "tool": "qemu-img",
          "args": [
            "create",
            "-q",
            "-f",
            "qcow2",
            "-F",
            "raw",
            "-b",
            "base.raw",
            "-o",
            "cluster_size=65536",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-C",
            "-f",
            "qcow2",
            "-c",
            "read -q -P 17 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 65536, \"depth\": 0, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 327680},\n{ \"start\": 65536, \"length\": 196608, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 65536}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-C",
            "-f",
            "qcow2",
            "-c",
            "read -q -P 17 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 65536, \"depth\": 0, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 327680},\n{ \"start\": 65536, \"length\": 196608, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 65536}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "info",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "{\n    \"children\": [\n        {\n            \"name\": \"file\",\n            \"info\": {\n                \"children\": [\n                ],\n                \"virtual-size\": 393216,\n                \"filename\": \"overlay.qcow2\",\n                \"format\": \"file\",\n                \"actual-size\": 331776,\n                \"format-specific\": {\n                    \"type\": \"file\",\n                    \"data\": {\n                    }\n                },\n                \"dirty-flag\": false\n            }\n        }\n    ],\n    \"backing-filename-format\": \"raw\",\n    \"virtual-size\": 262144,\n    \"filename\": \"overlay.qcow2\",\n    \"cluster-size\": 65536,\n    \"format\": \"qcow2\",\n    \"actual-size\": 331776,\n    \"format-specific\": {\n        \"type\": \"qcow2\",\n        \"data\": {\n            \"compat\": \"1.1\",\n            \"compression-type\": \"zlib\",\n            \"lazy-refcounts\": false,\n            \"refcount-bits\": 16,\n            \"corrupt\": false,\n            \"extended-l2\": false\n        }\n    },\n    \"full-backing-filename\": \"base.raw\",\n    \"backing-filename\": \"base.raw\",\n    \"dirty-flag\": false\n}\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "convert",
            "-f",
            "qcow2",
            "-O",
            "raw",
            "overlay.qcow2",
            "export.raw"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        }
      ]
    },
    {
      "case": "standard-zero-plain",
      "extended_l2": false,
      "pattern": 0,
      "copy_on_read": false,
      "virtual_bytes": 262144,
      "read_offset": 512,
      "read_bytes": 512,
      "cluster_bytes": 65536,
      "before": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_first": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_repeat": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "local_bytes": [
        0,
        0,
        0
      ],
      "overlay_sha256": [
        "1c472d9edd5484ba0f54d5d22899a9ae5bb5f5aeae36413b052246750a0694ff",
        "1c472d9edd5484ba0f54d5d22899a9ae5bb5f5aeae36413b052246750a0694ff",
        "1c472d9edd5484ba0f54d5d22899a9ae5bb5f5aeae36413b052246750a0694ff"
      ],
      "backing_filename_after": "base.raw",
      "expected_sha256": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "export_sha256": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "base_sha256_after": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "commands": [
        {
          "tool": "qemu-img",
          "args": [
            "create",
            "-q",
            "-f",
            "qcow2",
            "-F",
            "raw",
            "-b",
            "base.raw",
            "-o",
            "cluster_size=65536",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-f",
            "qcow2",
            "-c",
            "read -q -P 0 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-f",
            "qcow2",
            "-c",
            "read -q -P 0 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "info",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "{\n    \"children\": [\n        {\n            \"name\": \"file\",\n            \"info\": {\n                \"children\": [\n                ],\n                \"virtual-size\": 197120,\n                \"filename\": \"overlay.qcow2\",\n                \"format\": \"file\",\n                \"actual-size\": 200704,\n                \"format-specific\": {\n                    \"type\": \"file\",\n                    \"data\": {\n                    }\n                },\n                \"dirty-flag\": false\n            }\n        }\n    ],\n    \"backing-filename-format\": \"raw\",\n    \"virtual-size\": 262144,\n    \"filename\": \"overlay.qcow2\",\n    \"cluster-size\": 65536,\n    \"format\": \"qcow2\",\n    \"actual-size\": 200704,\n    \"format-specific\": {\n        \"type\": \"qcow2\",\n        \"data\": {\n            \"compat\": \"1.1\",\n            \"compression-type\": \"zlib\",\n            \"lazy-refcounts\": false,\n            \"refcount-bits\": 16,\n            \"corrupt\": false,\n            \"extended-l2\": false\n        }\n    },\n    \"full-backing-filename\": \"base.raw\",\n    \"backing-filename\": \"base.raw\",\n    \"dirty-flag\": false\n}\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "convert",
            "-f",
            "qcow2",
            "-O",
            "raw",
            "overlay.qcow2",
            "export.raw"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        }
      ]
    },
    {
      "case": "standard-zero-copy",
      "extended_l2": false,
      "pattern": 0,
      "copy_on_read": true,
      "virtual_bytes": 262144,
      "read_offset": 512,
      "read_bytes": 512,
      "cluster_bytes": 65536,
      "before": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_first": [
        {
          "start": 0,
          "length": 65536,
          "depth": 0,
          "data": false,
          "zero": true
        },
        {
          "start": 65536,
          "length": 196608,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_repeat": [
        {
          "start": 0,
          "length": 65536,
          "depth": 0,
          "data": false,
          "zero": true
        },
        {
          "start": 65536,
          "length": 196608,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "local_bytes": [
        0,
        65536,
        65536
      ],
      "overlay_sha256": [
        "1c472d9edd5484ba0f54d5d22899a9ae5bb5f5aeae36413b052246750a0694ff",
        "bac563a15def384d9b16fd46db54e8e5d461770c6a7e5288939341409c929bc0",
        "bac563a15def384d9b16fd46db54e8e5d461770c6a7e5288939341409c929bc0"
      ],
      "backing_filename_after": "base.raw",
      "expected_sha256": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "export_sha256": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "base_sha256_after": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "commands": [
        {
          "tool": "qemu-img",
          "args": [
            "create",
            "-q",
            "-f",
            "qcow2",
            "-F",
            "raw",
            "-b",
            "base.raw",
            "-o",
            "cluster_size=65536",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-C",
            "-f",
            "qcow2",
            "-c",
            "read -q -P 0 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 65536, \"depth\": 0, \"present\": true, \"zero\": true, \"data\": false, \"compressed\": false},\n{ \"start\": 65536, \"length\": 196608, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 65536}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-C",
            "-f",
            "qcow2",
            "-c",
            "read -q -P 0 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 65536, \"depth\": 0, \"present\": true, \"zero\": true, \"data\": false, \"compressed\": false},\n{ \"start\": 65536, \"length\": 196608, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 65536}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "info",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "{\n    \"children\": [\n        {\n            \"name\": \"file\",\n            \"info\": {\n                \"children\": [\n                ],\n                \"virtual-size\": 327680,\n                \"filename\": \"overlay.qcow2\",\n                \"format\": \"file\",\n                \"actual-size\": 266240,\n                \"format-specific\": {\n                    \"type\": \"file\",\n                    \"data\": {\n                    }\n                },\n                \"dirty-flag\": false\n            }\n        }\n    ],\n    \"backing-filename-format\": \"raw\",\n    \"virtual-size\": 262144,\n    \"filename\": \"overlay.qcow2\",\n    \"cluster-size\": 65536,\n    \"format\": \"qcow2\",\n    \"actual-size\": 266240,\n    \"format-specific\": {\n        \"type\": \"qcow2\",\n        \"data\": {\n            \"compat\": \"1.1\",\n            \"compression-type\": \"zlib\",\n            \"lazy-refcounts\": false,\n            \"refcount-bits\": 16,\n            \"corrupt\": false,\n            \"extended-l2\": false\n        }\n    },\n    \"full-backing-filename\": \"base.raw\",\n    \"backing-filename\": \"base.raw\",\n    \"dirty-flag\": false\n}\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "convert",
            "-f",
            "qcow2",
            "-O",
            "raw",
            "overlay.qcow2",
            "export.raw"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        }
      ]
    },
    {
      "case": "extended-data-plain",
      "extended_l2": true,
      "pattern": 17,
      "copy_on_read": false,
      "virtual_bytes": 262144,
      "read_offset": 512,
      "read_bytes": 512,
      "cluster_bytes": 131072,
      "before": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_first": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_repeat": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "local_bytes": [
        0,
        0,
        0
      ],
      "overlay_sha256": [
        "3d3467525ed5162678e509c05aa57937b2f9ccfca2b9cc56970f7878a9532c06",
        "3d3467525ed5162678e509c05aa57937b2f9ccfca2b9cc56970f7878a9532c06",
        "3d3467525ed5162678e509c05aa57937b2f9ccfca2b9cc56970f7878a9532c06"
      ],
      "backing_filename_after": "base.raw",
      "expected_sha256": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "export_sha256": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "base_sha256_after": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "commands": [
        {
          "tool": "qemu-img",
          "args": [
            "create",
            "-q",
            "-f",
            "qcow2",
            "-F",
            "raw",
            "-b",
            "base.raw",
            "-o",
            "cluster_size=131072,extended_l2=on",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-f",
            "qcow2",
            "-c",
            "read -q -P 17 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-f",
            "qcow2",
            "-c",
            "read -q -P 17 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "info",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "{\n    \"children\": [\n        {\n            \"name\": \"file\",\n            \"info\": {\n                \"children\": [\n                ],\n                \"virtual-size\": 393728,\n                \"filename\": \"overlay.qcow2\",\n                \"format\": \"file\",\n                \"actual-size\": 397312,\n                \"format-specific\": {\n                    \"type\": \"file\",\n                    \"data\": {\n                    }\n                },\n                \"dirty-flag\": false\n            }\n        }\n    ],\n    \"backing-filename-format\": \"raw\",\n    \"virtual-size\": 262144,\n    \"filename\": \"overlay.qcow2\",\n    \"cluster-size\": 131072,\n    \"format\": \"qcow2\",\n    \"actual-size\": 397312,\n    \"format-specific\": {\n        \"type\": \"qcow2\",\n        \"data\": {\n            \"compat\": \"1.1\",\n            \"compression-type\": \"zlib\",\n            \"lazy-refcounts\": false,\n            \"refcount-bits\": 16,\n            \"corrupt\": false,\n            \"extended-l2\": true\n        }\n    },\n    \"full-backing-filename\": \"base.raw\",\n    \"backing-filename\": \"base.raw\",\n    \"dirty-flag\": false\n}\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "convert",
            "-f",
            "qcow2",
            "-O",
            "raw",
            "overlay.qcow2",
            "export.raw"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        }
      ]
    },
    {
      "case": "extended-data-copy",
      "extended_l2": true,
      "pattern": 17,
      "copy_on_read": true,
      "virtual_bytes": 262144,
      "read_offset": 512,
      "read_bytes": 512,
      "cluster_bytes": 131072,
      "before": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_first": [
        {
          "start": 0,
          "length": 4096,
          "depth": 0,
          "data": true,
          "zero": false
        },
        {
          "start": 4096,
          "length": 258048,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_repeat": [
        {
          "start": 0,
          "length": 4096,
          "depth": 0,
          "data": true,
          "zero": false
        },
        {
          "start": 4096,
          "length": 258048,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "local_bytes": [
        0,
        4096,
        4096
      ],
      "overlay_sha256": [
        "3d3467525ed5162678e509c05aa57937b2f9ccfca2b9cc56970f7878a9532c06",
        "344dfc904273e1b8a4f0f808c0fa53361820c7673b32089bd621429815ff9d2a",
        "344dfc904273e1b8a4f0f808c0fa53361820c7673b32089bd621429815ff9d2a"
      ],
      "backing_filename_after": "base.raw",
      "expected_sha256": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "export_sha256": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "base_sha256_after": "ca35e308c077e01b75f4698e8d730776e0288c285965c185a8f5fe7a7a42a835",
      "commands": [
        {
          "tool": "qemu-img",
          "args": [
            "create",
            "-q",
            "-f",
            "qcow2",
            "-F",
            "raw",
            "-b",
            "base.raw",
            "-o",
            "cluster_size=131072,extended_l2=on",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-C",
            "-f",
            "qcow2",
            "-c",
            "read -q -P 17 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 4096, \"depth\": 0, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 655360},\n{ \"start\": 4096, \"length\": 258048, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 4096}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-C",
            "-f",
            "qcow2",
            "-c",
            "read -q -P 17 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 4096, \"depth\": 0, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 655360},\n{ \"start\": 4096, \"length\": 258048, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 4096}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "info",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "{\n    \"children\": [\n        {\n            \"name\": \"file\",\n            \"info\": {\n                \"children\": [\n                ],\n                \"virtual-size\": 659456,\n                \"filename\": \"overlay.qcow2\",\n                \"format\": \"file\",\n                \"actual-size\": 532480,\n                \"format-specific\": {\n                    \"type\": \"file\",\n                    \"data\": {\n                    }\n                },\n                \"dirty-flag\": false\n            }\n        }\n    ],\n    \"backing-filename-format\": \"raw\",\n    \"virtual-size\": 262144,\n    \"filename\": \"overlay.qcow2\",\n    \"cluster-size\": 131072,\n    \"format\": \"qcow2\",\n    \"actual-size\": 532480,\n    \"format-specific\": {\n        \"type\": \"qcow2\",\n        \"data\": {\n            \"compat\": \"1.1\",\n            \"compression-type\": \"zlib\",\n            \"lazy-refcounts\": false,\n            \"refcount-bits\": 16,\n            \"corrupt\": false,\n            \"extended-l2\": true\n        }\n    },\n    \"full-backing-filename\": \"base.raw\",\n    \"backing-filename\": \"base.raw\",\n    \"dirty-flag\": false\n}\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "convert",
            "-f",
            "qcow2",
            "-O",
            "raw",
            "overlay.qcow2",
            "export.raw"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        }
      ]
    },
    {
      "case": "extended-zero-plain",
      "extended_l2": true,
      "pattern": 0,
      "copy_on_read": false,
      "virtual_bytes": 262144,
      "read_offset": 512,
      "read_bytes": 512,
      "cluster_bytes": 131072,
      "before": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_first": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_repeat": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "local_bytes": [
        0,
        0,
        0
      ],
      "overlay_sha256": [
        "3d3467525ed5162678e509c05aa57937b2f9ccfca2b9cc56970f7878a9532c06",
        "3d3467525ed5162678e509c05aa57937b2f9ccfca2b9cc56970f7878a9532c06",
        "3d3467525ed5162678e509c05aa57937b2f9ccfca2b9cc56970f7878a9532c06"
      ],
      "backing_filename_after": "base.raw",
      "expected_sha256": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "export_sha256": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "base_sha256_after": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "commands": [
        {
          "tool": "qemu-img",
          "args": [
            "create",
            "-q",
            "-f",
            "qcow2",
            "-F",
            "raw",
            "-b",
            "base.raw",
            "-o",
            "cluster_size=131072,extended_l2=on",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-f",
            "qcow2",
            "-c",
            "read -q -P 0 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-f",
            "qcow2",
            "-c",
            "read -q -P 0 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "info",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "{\n    \"children\": [\n        {\n            \"name\": \"file\",\n            \"info\": {\n                \"children\": [\n                ],\n                \"virtual-size\": 393728,\n                \"filename\": \"overlay.qcow2\",\n                \"format\": \"file\",\n                \"actual-size\": 397312,\n                \"format-specific\": {\n                    \"type\": \"file\",\n                    \"data\": {\n                    }\n                },\n                \"dirty-flag\": false\n            }\n        }\n    ],\n    \"backing-filename-format\": \"raw\",\n    \"virtual-size\": 262144,\n    \"filename\": \"overlay.qcow2\",\n    \"cluster-size\": 131072,\n    \"format\": \"qcow2\",\n    \"actual-size\": 397312,\n    \"format-specific\": {\n        \"type\": \"qcow2\",\n        \"data\": {\n            \"compat\": \"1.1\",\n            \"compression-type\": \"zlib\",\n            \"lazy-refcounts\": false,\n            \"refcount-bits\": 16,\n            \"corrupt\": false,\n            \"extended-l2\": true\n        }\n    },\n    \"full-backing-filename\": \"base.raw\",\n    \"backing-filename\": \"base.raw\",\n    \"dirty-flag\": false\n}\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "convert",
            "-f",
            "qcow2",
            "-O",
            "raw",
            "overlay.qcow2",
            "export.raw"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        }
      ]
    },
    {
      "case": "extended-zero-copy",
      "extended_l2": true,
      "pattern": 0,
      "copy_on_read": true,
      "virtual_bytes": 262144,
      "read_offset": 512,
      "read_bytes": 512,
      "cluster_bytes": 131072,
      "before": [
        {
          "start": 0,
          "length": 262144,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_first": [
        {
          "start": 0,
          "length": 4096,
          "depth": 0,
          "data": false,
          "zero": true
        },
        {
          "start": 4096,
          "length": 258048,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "after_repeat": [
        {
          "start": 0,
          "length": 4096,
          "depth": 0,
          "data": false,
          "zero": true
        },
        {
          "start": 4096,
          "length": 258048,
          "depth": 1,
          "data": true,
          "zero": false
        }
      ],
      "local_bytes": [
        0,
        4096,
        4096
      ],
      "overlay_sha256": [
        "3d3467525ed5162678e509c05aa57937b2f9ccfca2b9cc56970f7878a9532c06",
        "6c8fc0b316304e1cef82d87c60d4e916da1670d7103b993033b1dfad03e1bf26",
        "6c8fc0b316304e1cef82d87c60d4e916da1670d7103b993033b1dfad03e1bf26"
      ],
      "backing_filename_after": "base.raw",
      "expected_sha256": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "export_sha256": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "base_sha256_after": "8a39d2abd3999ab73c34db2476849cddf303ce389b35826850f9a700589b4a90",
      "commands": [
        {
          "tool": "qemu-img",
          "args": [
            "create",
            "-q",
            "-f",
            "qcow2",
            "-F",
            "raw",
            "-b",
            "base.raw",
            "-o",
            "cluster_size=131072,extended_l2=on",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 262144, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 0}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-C",
            "-f",
            "qcow2",
            "-c",
            "read -q -P 0 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 4096, \"depth\": 0, \"present\": true, \"zero\": true, \"data\": false, \"compressed\": false},\n{ \"start\": 4096, \"length\": 258048, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 4096}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-io",
          "args": [
            "-C",
            "-f",
            "qcow2",
            "-c",
            "read -q -P 0 512 512",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "map",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "[{ \"start\": 0, \"length\": 4096, \"depth\": 0, \"present\": true, \"zero\": true, \"data\": false, \"compressed\": false},\n{ \"start\": 4096, \"length\": 258048, \"depth\": 1, \"present\": true, \"zero\": false, \"data\": true, \"compressed\": false, \"offset\": 4096}]\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "info",
            "--output=json",
            "overlay.qcow2"
          ],
          "returncode": 0,
          "stdout": "{\n    \"children\": [\n        {\n            \"name\": \"file\",\n            \"info\": {\n                \"children\": [\n                ],\n                \"virtual-size\": 655360,\n                \"filename\": \"overlay.qcow2\",\n                \"format\": \"file\",\n                \"actual-size\": 528384,\n                \"format-specific\": {\n                    \"type\": \"file\",\n                    \"data\": {\n                    }\n                },\n                \"dirty-flag\": false\n            }\n        }\n    ],\n    \"backing-filename-format\": \"raw\",\n    \"virtual-size\": 262144,\n    \"filename\": \"overlay.qcow2\",\n    \"cluster-size\": 131072,\n    \"format\": \"qcow2\",\n    \"actual-size\": 528384,\n    \"format-specific\": {\n        \"type\": \"qcow2\",\n        \"data\": {\n            \"compat\": \"1.1\",\n            \"compression-type\": \"zlib\",\n            \"lazy-refcounts\": false,\n            \"refcount-bits\": 16,\n            \"corrupt\": false,\n            \"extended-l2\": true\n        }\n    },\n    \"full-backing-filename\": \"base.raw\",\n    \"backing-filename\": \"base.raw\",\n    \"dirty-flag\": false\n}\n",
          "stderr": ""
        },
        {
          "tool": "qemu-img",
          "args": [
            "convert",
            "-f",
            "qcow2",
            "-O",
            "raw",
            "overlay.qcow2",
            "export.raw"
          ],
          "returncode": 0,
          "stdout": "",
          "stderr": ""
        }
      ]
    }
  ]
}
