tests: ensure that image validation will not cure the corruption
Since
commit cfce1091d5
Author: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
Date: Tue Jul 18 12:44:29 2023 +0200
parallels: Image repairing in parallels_open()
there is a potential pit fall with calling
qemu-io -c "read"
The image is opened in read-write mode and thus could be potentially
repaired. This could ruin testing process.
The patch forces read-only opening for reads. In that case repairing
is impossible.
Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Alexander Ivanov <alexander.ivanov@virtuozzo.com>
This commit is contained in:
parent
a398275e88
commit
f025a99e61
@ -91,7 +91,7 @@ file_size=`stat --printf="%s" "$TEST_IMG"`
|
|||||||
echo "file size: $file_size"
|
echo "file size: $file_size"
|
||||||
|
|
||||||
echo "== check last cluster =="
|
echo "== check last cluster =="
|
||||||
{ $QEMU_IO -c "read -P 0x11 $LAST_CLUSTER_OFF $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
{ $QEMU_IO -r -c "read -P 0x11 $LAST_CLUSTER_OFF $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
||||||
|
|
||||||
# Clear image
|
# Clear image
|
||||||
_make_test_img $SIZE
|
_make_test_img $SIZE
|
||||||
@ -105,19 +105,20 @@ echo "== write another pattern to second cluster =="
|
|||||||
{ $QEMU_IO -c "write -P 0x55 $CLUSTER_SIZE $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
{ $QEMU_IO -c "write -P 0x55 $CLUSTER_SIZE $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
||||||
|
|
||||||
echo "== check second cluster =="
|
echo "== check second cluster =="
|
||||||
{ $QEMU_IO -c "read -P 0x55 $CLUSTER_SIZE $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
{ $QEMU_IO -r -c "read -P 0x55 $CLUSTER_SIZE $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
||||||
|
|
||||||
|
|
||||||
echo "== corrupt image =="
|
echo "== corrupt image =="
|
||||||
poke_file "$TEST_IMG" "$(($BAT_OFFSET + 4))" "\x01\x00\x00\x00"
|
poke_file "$TEST_IMG" "$(($BAT_OFFSET + 4))" "\x01\x00\x00\x00"
|
||||||
|
|
||||||
echo "== check second cluster =="
|
echo "== check second cluster =="
|
||||||
{ $QEMU_IO -c "read -P 0x11 $CLUSTER_SIZE $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
{ $QEMU_IO -r -c "read -P 0x11 $CLUSTER_SIZE $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
||||||
|
|
||||||
echo "== repair image =="
|
echo "== repair image =="
|
||||||
_check_test_img -r all
|
_check_test_img -r all
|
||||||
|
|
||||||
echo "== check second cluster =="
|
echo "== check second cluster =="
|
||||||
{ $QEMU_IO -c "read -P 0x11 $CLUSTER_SIZE $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
{ $QEMU_IO -r -c "read -P 0x11 $CLUSTER_SIZE $CLUSTER_SIZE" "$TEST_IMG"; } 2>&1 | _filter_qemu_io | _filter_testdir
|
||||||
|
|
||||||
echo "== check first cluster on host =="
|
echo "== check first cluster on host =="
|
||||||
printf "content: 0x%02x\n" `peek_file_le $TEST_IMG $(($CLUSTER_SIZE)) 1`
|
printf "content: 0x%02x\n" `peek_file_le $TEST_IMG $(($CLUSTER_SIZE)) 1`
|
||||||
|
Loading…
Reference in New Issue
Block a user