From: Max Reitz Date: Tue, 27 Oct 2020 19:05:48 +0000 (+0100) Subject: iotests: Do not pipe _make_test_img X-Git-Tag: v6.0.0-rc0~185^2~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d81fe252a22d0cbcf78931b9ab3445ad9c30638e;p=thirdparty%2Fqemu.git iotests: Do not pipe _make_test_img Executing _make_test_img as part of a pipe will undo all variable changes it has done. As such, this could not work with FUSE (because we want to remember all of our exports and their qemu instances). Replace the pipe by a temporary file in 071 and 174 (the two tests that can run on FUSE). Signed-off-by: Max Reitz Reviewed-by: Kevin Wolf Message-Id: <20201027190600.192171-9-mreitz@redhat.com> Signed-off-by: Kevin Wolf --- diff --git a/tests/qemu-iotests/071 b/tests/qemu-iotests/071 index 88faebcc1d9..18fe9054b07 100755 --- a/tests/qemu-iotests/071 +++ b/tests/qemu-iotests/071 @@ -61,8 +61,17 @@ echo echo "=== Testing blkverify through filename ===" echo -TEST_IMG="$TEST_IMG.base" IMGFMT="raw" _make_test_img --no-opts $IMG_SIZE |\ - _filter_imgfmt +# _make_test_img may set variables that we need to retain. Everything +# in a pipe is executed in a subshell, so doing so would throw away +# all changes. Therefore, we have to store the output in some temp +# file and filter that. +scratch_out="$TEST_DIR/img-create.out" + +TEST_IMG="$TEST_IMG.base" IMGFMT="raw" _make_test_img --no-opts $IMG_SIZE \ + >"$scratch_out" +_filter_imgfmt <"$scratch_out" +rm -f "$scratch_out" + _make_test_img $IMG_SIZE $QEMU_IO -c "open -o driver=raw,file.driver=blkverify,file.raw.filename=$TEST_IMG.base $TEST_IMG" \ -c 'read 0 512' -c 'write -P 42 0x38000 512' -c 'read -P 42 0x38000 512' | _filter_qemu_io @@ -76,8 +85,10 @@ echo echo "=== Testing blkverify through file blockref ===" echo -TEST_IMG="$TEST_IMG.base" IMGFMT="raw" _make_test_img --no-opts $IMG_SIZE |\ - _filter_imgfmt +TEST_IMG="$TEST_IMG.base" IMGFMT="raw" _make_test_img --no-opts $IMG_SIZE \ + >"$scratch_out" +_filter_imgfmt <"$scratch_out" + _make_test_img $IMG_SIZE $QEMU_IO -c "open -o driver=raw,file.driver=blkverify,file.raw.filename=$TEST_IMG.base,file.test.driver=$IMGFMT,file.test.file.filename=$TEST_IMG" \ -c 'read 0 512' -c 'write -P 42 0x38000 512' -c 'read -P 42 0x38000 512' | _filter_qemu_io diff --git a/tests/qemu-iotests/174 b/tests/qemu-iotests/174 index e2f14a38c6e..1b0dd2e8b7b 100755 --- a/tests/qemu-iotests/174 +++ b/tests/qemu-iotests/174 @@ -40,7 +40,15 @@ _unsupported_fmt raw size=256K -IMGFMT=raw IMGKEYSECRET= _make_test_img --no-opts $size | _filter_imgfmt + +# _make_test_img may set variables that we need to retain. Everything +# in a pipe is executed in a subshell, so doing so would throw away +# all changes. Therefore, we have to store the output in some temp +# file and filter that. +scratch_out="$TEST_DIR/img-create.out" +IMGFMT=raw IMGKEYSECRET= _make_test_img --no-opts $size >"$scratch_out" +_filter_imgfmt <"$scratch_out" +rm -f "$scratch_out" echo echo "== reading wrong format should fail =="