308.out (5750B)
1 QA output created by 308 2 === Set up === 3 Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 4 wrote 67108864/67108864 bytes at offset 0 5 64 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) 6 {'execute': 'qmp_capabilities'} 7 {"return": {}} 8 {'execute': 'blockdev-add', 9 'arguments': { 10 'driver': 'file', 11 'node-name': 'node-protocol', 12 'filename': 'TEST_DIR/t.IMGFMT' 13 } } 14 {"return": {}} 15 {'execute': 'blockdev-add', 16 'arguments': { 17 'driver': 'IMGFMT', 18 'node-name': 'node-format', 19 'file': 'node-protocol' 20 } } 21 {"return": {}} 22 23 === Mountpoint not present === 24 {'execute': 'block-export-add', 25 'arguments': { 26 'type': 'fuse', 27 'id': 'export-err', 28 'node-name': 'node-format', 29 'mountpoint': 'TEST_DIR/t.IMGFMT.fuse' 30 } } 31 {"error": {"class": "GenericError", "desc": "Failed to stat 'TEST_DIR/t.IMGFMT.fuse': No such file or directory"}} 32 33 === Mountpoint is a directory === 34 {'execute': 'block-export-add', 35 'arguments': { 36 'type': 'fuse', 37 'id': 'export-err', 38 'node-name': 'node-format', 39 'mountpoint': 'TEST_DIR/t.IMGFMT.fuse' 40 } } 41 {"error": {"class": "GenericError", "desc": "'TEST_DIR/t.IMGFMT.fuse' is not a regular file"}} 42 43 === Mountpoint is a regular file === 44 {'execute': 'block-export-add', 45 'arguments': { 46 'type': 'fuse', 47 'id': 'export-mp', 48 'node-name': 'node-format', 49 'mountpoint': 'TEST_DIR/t.IMGFMT.fuse' 50 } } 51 {"return": {}} 52 Images are identical. 53 Permissions pre-chmod: 400 54 chmod: changing permissions of 'TEST_DIR/t.IMGFMT.fuse': Read-only file system 55 Permissions post-+w: 400 56 Permissions post-+x: 500 57 58 === Mount over existing file === 59 {'execute': 'block-export-add', 60 'arguments': { 61 'type': 'fuse', 62 'id': 'export-img', 63 'node-name': 'node-format', 64 'mountpoint': 'TEST_DIR/t.IMGFMT' 65 } } 66 {"return": {}} 67 Images are identical. 68 69 === Double export === 70 {'execute': 'block-export-add', 71 'arguments': { 72 'type': 'fuse', 73 'id': 'export-err', 74 'node-name': 'node-format', 75 'mountpoint': 'TEST_DIR/t.IMGFMT.fuse' 76 } } 77 {"error": {"class": "GenericError", "desc": "There already is a FUSE export on 'TEST_DIR/t.IMGFMT.fuse'"}} 78 79 === Remove export === 80 virtual size: 64 MiB (67108864 bytes) 81 {'execute': 'block-export-del', 82 'arguments': { 83 'id': 'export-mp' 84 } } 85 {"return": {}} 86 {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_EXPORT_DELETED", "data": {"id": "export-mp"}} 87 virtual size: 0 B (0 bytes) 88 89 === Writable export === 90 {'execute': 'block-export-add', 91 'arguments': { 92 'type': 'fuse', 93 'id': 'export-mp', 94 'node-name': 'node-format', 95 'mountpoint': 'TEST_DIR/t.IMGFMT.fuse', 'writable': true 96 } } 97 {"return": {}} 98 Writing to read-only export failed: OK 99 wrote 65536/65536 bytes at offset 1048576 100 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) 101 wrote 65536/65536 bytes at offset 1048576 102 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) 103 104 === Resizing exports === 105 {'execute': 'block-export-del', 106 'arguments': { 107 'id': 'export-mp' 108 } } 109 {"return": {}} 110 {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_EXPORT_DELETED", "data": {"id": "export-mp"}} 111 {'execute': 'block-export-del', 112 'arguments': { 113 'id': 'export-img' 114 } } 115 {"return": {}} 116 {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_EXPORT_DELETED", "data": {"id": "export-img"}} 117 {'execute': 'blockdev-del', 118 'arguments': { 119 'node-name': 'node-format' 120 } } 121 {"return": {}} 122 {'execute': 'block-export-add', 123 'arguments': { 124 'type': 'fuse', 125 'id': 'export-mp', 126 'node-name': 'node-protocol', 127 'mountpoint': 'TEST_DIR/t.IMGFMT.fuse', 'writable': true 128 } } 129 {"return": {}} 130 131 --- Try growing non-growable export --- 132 (OK: Lengths of export and original are the same) 133 dd: error writing 'TEST_DIR/t.IMGFMT.fuse': Input/output error 134 1+0 records in 135 0+0 records out 136 137 --- Resize export --- 138 (OK: Lengths of export and original are the same) 139 OK: Post-truncate image size is as expected 140 OK: Disk usage grew with fallocate 141 142 --- Try growing growable export --- 143 {'execute': 'block-export-del', 144 'arguments': { 145 'id': 'export-mp' 146 } } 147 {"return": {}} 148 {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_EXPORT_DELETED", "data": {"id": "export-mp"}} 149 {'execute': 'block-export-add', 150 'arguments': { 151 'type': 'fuse', 152 'id': 'export-mp', 153 'node-name': 'node-protocol', 154 'mountpoint': 'TEST_DIR/t.IMGFMT.fuse', 'writable': true, 'growable': true 155 } } 156 {"return": {}} 157 65536+0 records in 158 65536+0 records out 159 (OK: Lengths of export and original are the same) 160 OK: Post-grow image size is as expected 161 162 --- Shrink export --- 163 (OK: Lengths of export and original are the same) 164 OK: Post-truncate image size is as expected 165 166 === Tear down === 167 {'execute': 'quit'} 168 {"return": {}} 169 {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} 170 {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_EXPORT_DELETED", "data": {"id": "export-mp"}} 171 172 === Compare copy with original === 173 Images are identical. 174 *** done