| === Successful image creation (defaults) === | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-t.parallels", "size": 0}}} | 
 | {"return": {}} | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-add", "arguments": {"driver": "file", "filename": "TEST_DIR/PID-t.parallels", "node-name": "imgfile"}} | 
 | {"return": {}} | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "imgfile", "size": 134217728}}} | 
 | {"return": {}} | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | image: TEST_IMG | 
 | file format: IMGFMT | 
 | virtual size: 128 MiB (134217728 bytes) | 
 |  | 
 | === Successful image creation (explicit defaults) === | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-t.parallels", "size": 0}}} | 
 | {"return": {}} | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 1048576, "driver": "parallels", "file": {"driver": "file", "filename": "TEST_DIR/PID-t.parallels"}, "size": 67108864}}} | 
 | {"return": {}} | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | image: TEST_IMG | 
 | file format: IMGFMT | 
 | virtual size: 64 MiB (67108864 bytes) | 
 |  | 
 | === Successful image creation (with non-default options) === | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-t.parallels", "size": 0}}} | 
 | {"return": {}} | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 65536, "driver": "parallels", "file": {"driver": "file", "filename": "TEST_DIR/PID-t.parallels"}, "size": 33554432}}} | 
 | {"return": {}} | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | image: TEST_IMG | 
 | file format: IMGFMT | 
 | virtual size: 32 MiB (33554432 bytes) | 
 |  | 
 | === Invalid BlockdevRef === | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "this doesn't exist", "size": 33554432}}} | 
 | {"return": {}} | 
 | Job failed: Cannot find device='this doesn't exist' nor node-name='this doesn't exist' | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | === Zero size === | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "node0", "size": 0}}} | 
 | {"return": {}} | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | image: TEST_IMG | 
 | file format: IMGFMT | 
 | virtual size: 0 B (0 bytes) | 
 |  | 
 | === Maximum size === | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "node0", "size": 4503599627369984}}} | 
 | {"return": {}} | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | image: TEST_IMG | 
 | file format: IMGFMT | 
 | virtual size: 4 PiB (4503599627369984 bytes) | 
 |  | 
 | === Invalid sizes === | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "node0", "size": 1234}}} | 
 | {"return": {}} | 
 | Job failed: Image size must be a multiple of 512 bytes | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "node0", "size": 18446744073709551104}}} | 
 | {"return": {}} | 
 | Job failed: Image size is too large for this cluster size | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "node0", "size": 9223372036854775808}}} | 
 | {"return": {}} | 
 | Job failed: Image size is too large for this cluster size | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "node0", "size": 9223372036854775296}}} | 
 | {"return": {}} | 
 | Job failed: Image size is too large for this cluster size | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "parallels", "file": "node0", "size": 4503599627370497}}} | 
 | {"return": {}} | 
 | Job failed: Image size is too large for this cluster size | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | === Invalid cluster size === | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 1234, "driver": "parallels", "file": "node0", "size": 67108864}}} | 
 | {"return": {}} | 
 | Job failed: Cluster size must be a multiple of 512 bytes | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 128, "driver": "parallels", "file": "node0", "size": 67108864}}} | 
 | {"return": {}} | 
 | Job failed: Cluster size must be a multiple of 512 bytes | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 4294967296, "driver": "parallels", "file": "node0", "size": 67108864}}} | 
 | {"return": {}} | 
 | Job failed: Cluster size is too large | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 9223372036854775808, "driver": "parallels", "file": "node0", "size": 67108864}}} | 
 | {"return": {}} | 
 | Job failed: Cluster size is too large | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 18446744073709551104, "driver": "parallels", "file": "node0", "size": 67108864}}} | 
 | {"return": {}} | 
 | Job failed: Cluster size is too large | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 0, "driver": "parallels", "file": "node0", "size": 67108864}}} | 
 | {"return": {}} | 
 | Job failed: Image size is too large for this cluster size | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  | 
 | {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"cluster-size": 512, "driver": "parallels", "file": "node0", "size": 281474976710656}}} | 
 | {"return": {}} | 
 | Job failed: Image size is too large for this cluster size | 
 | {"execute": "job-dismiss", "arguments": {"id": "job0"}} | 
 | {"return": {}} | 
 |  |