 30bd6a4daf
			
		
	
	
		30bd6a4daf
		
	
	
	
	
		
			
			Add a test for the new blkdebug/blkverify interface. This test is not written in Python, although it uses QMP. This is because it invokes the qemu-io HMP command, which outputs errors to stderr instead of returning them through QMP. Filtering and testing that output is easier in a shell script than with the Python infrastructure. Signed-off-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
		
			
				
	
	
		
			91 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| QA output created by 071
 | |
| 
 | |
| === Testing blkverify through filename ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 
 | |
| read 512/512 bytes at offset 0
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 512/512 bytes at offset 229376
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| read 512/512 bytes at offset 229376
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 512/512 bytes at offset 0
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| blkverify: read sector_num=0 nb_sectors=4 contents mismatch in sector 0
 | |
| 
 | |
| === Testing blkverify through file blockref ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=67108864 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 
 | |
| read 512/512 bytes at offset 0
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 512/512 bytes at offset 229376
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| read 512/512 bytes at offset 229376
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| wrote 512/512 bytes at offset 0
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| blkverify: read sector_num=0 nb_sectors=4 contents mismatch in sector 0
 | |
| 
 | |
| === Testing blkdebug through filename ===
 | |
| 
 | |
| read failed: Input/output error
 | |
| 
 | |
| === Testing blkdebug through file blockref ===
 | |
| 
 | |
| read failed: Input/output error
 | |
| 
 | |
| === Testing blkdebug on existing block device ===
 | |
| 
 | |
| Testing: -drive file=TEST_DIR/t.IMGFMT,format=raw,if=none,id=drive0
 | |
| QMP_VERSION
 | |
| {"return": {}}
 | |
| {"return": {}}
 | |
| read failed: Input/output error
 | |
| {"return": ""}
 | |
| {"return": {}}
 | |
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "SHUTDOWN"}
 | |
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": true}}
 | |
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "floppy0", "tray-open": true}}
 | |
| 
 | |
| 
 | |
| === Testing blkverify on existing block device ===
 | |
| 
 | |
| Testing: -drive file=TEST_DIR/t.IMGFMT,format=IMGFMT,if=none,id=drive0
 | |
| QMP_VERSION
 | |
| {"return": {}}
 | |
| {"return": {}}
 | |
| blkverify: read sector_num=0 nb_sectors=1 contents mismatch in sector 0
 | |
| 
 | |
| 
 | |
| === Testing blkverify on existing raw block device ===
 | |
| 
 | |
| Testing: -drive file=TEST_DIR/t.IMGFMT.base,if=none,id=drive0
 | |
| QMP_VERSION
 | |
| {"return": {}}
 | |
| {"return": {}}
 | |
| blkverify: read sector_num=0 nb_sectors=1 contents mismatch in sector 0
 | |
| 
 | |
| 
 | |
| === Testing blkdebug's set-state through QMP ===
 | |
| 
 | |
| Testing: -drive file=TEST_DIR/t.IMGFMT,format=raw,if=none,id=drive0
 | |
| QMP_VERSION
 | |
| {"return": {}}
 | |
| {"return": {}}
 | |
| read 512/512 bytes at offset 0
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| {"return": ""}
 | |
| wrote 512/512 bytes at offset 0
 | |
| 512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
 | |
| {"return": ""}
 | |
| read failed: Input/output error
 | |
| {"return": ""}
 | |
| {"return": {}}
 | |
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "SHUTDOWN"}
 | |
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "ide1-cd0", "tray-open": true}}
 | |
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "DEVICE_TRAY_MOVED", "data": {"device": "floppy0", "tray-open": true}}
 | |
| 
 | |
| *** done
 |