Commit f915db07 authored by Max Reitz's avatar Max Reitz Committed by Stefan Hajnoczi
Browse files

iotests: Use configured python



Currently, QEMU's iotests rely on /usr/bin/env to start the correct
Python (that is, at least Python 2.4, but not 3). On systems where
Python 3 is the default, the user has no clean way of making the iotests
use the correct binary.

This commit makes the iotests use the Python selected by configure.

Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent 65f33bc0
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -4771,6 +4771,12 @@ if test "$gcov" = "yes" ; then
  echo "GCOV=$gcov_tool" >> $config_host_mak
fi

iotests_common_env="tests/qemu-iotests/common.env"

echo "# Automatically generated by configure - do not modify" > $iotests_common_env
echo >> $iotests_common_env
echo "PYTHON='$python'" >> $iotests_common_env

# use included Linux headers
if test "$linux" = "yes" ; then
  mkdir -p linux-headers
+5 −4
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ _cleanup()
trap "_cleanup; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.env
. ./common.rc
. ./common.filter
. ./common.pattern
@@ -56,22 +57,22 @@ for IMGOPTS in "compat=0.10" "compat=1.1"; do
    echo === Create image with unknown header extension ===
    echo
    _make_test_img 64M
    ./qcow2.py "$TEST_IMG" add-header-ext 0x12345678 "This is a test header extension"
    ./qcow2.py "$TEST_IMG" dump-header
    $PYTHON qcow2.py "$TEST_IMG" add-header-ext 0x12345678 "This is a test header extension"
    $PYTHON qcow2.py "$TEST_IMG" dump-header
    _check_test_img

    echo
    echo === Rewrite header with no backing file ===
    echo
    $QEMU_IMG rebase -u -b "" "$TEST_IMG"
    ./qcow2.py "$TEST_IMG" dump-header
    $PYTHON qcow2.py "$TEST_IMG" dump-header
    _check_test_img

    echo
    echo === Add a backing file and format ===
    echo
    $QEMU_IMG rebase -u -b "/some/backing/file/path" -F host_device "$TEST_IMG"
    ./qcow2.py "$TEST_IMG" dump-header
    $PYTHON qcow2.py "$TEST_IMG" dump-header
done

# success, all done
+4 −3
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ _cleanup()
trap "_cleanup; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.env
. ./common.rc
. ./common.filter
. ./common.pattern
@@ -53,15 +54,15 @@ IMGOPTS="compat=1.1"
echo === Create image with unknown autoclear feature bit ===
echo
_make_test_img 64M
./qcow2.py "$TEST_IMG" set-feature-bit autoclear 63
./qcow2.py "$TEST_IMG" dump-header
$PYTHON qcow2.py "$TEST_IMG" set-feature-bit autoclear 63
$PYTHON qcow2.py "$TEST_IMG" dump-header

echo
echo === Repair image ===
echo
_check_test_img -r all

./qcow2.py "$TEST_IMG" dump-header
$PYTHON qcow2.py "$TEST_IMG" dump-header

# success, all done
echo "*** done"
+10 −9
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ _cleanup()
trap "_cleanup; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.env
. ./common.rc
. ./common.filter

@@ -58,7 +59,7 @@ _make_test_img $size
$QEMU_IO -c "write -P 0x5a 0 512" "$TEST_IMG" | _filter_qemu_io

# The dirty bit must not be set
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
_check_test_img

echo
@@ -73,7 +74,7 @@ $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" | _filter_qemu_io
ulimit -c "$old_ulimit"

# The dirty bit must be set
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
_check_test_img

echo
@@ -82,7 +83,7 @@ echo "== Read-only access must still work =="
$QEMU_IO -r -c "read -P 0x5a 0 512" "$TEST_IMG" | _filter_qemu_io

# The dirty bit must be set
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features

echo
echo "== Repairing the image file must succeed =="
@@ -90,7 +91,7 @@ echo "== Repairing the image file must succeed =="
_check_test_img -r all

# The dirty bit must not be set
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features

echo
echo "== Data should still be accessible after repair =="
@@ -109,12 +110,12 @@ $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" | _filter_qemu_io
ulimit -c "$old_ulimit"

# The dirty bit must be set
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features

$QEMU_IO -c "write 0 512" "$TEST_IMG" | _filter_qemu_io

# The dirty bit must not be set
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features

echo
echo "== Creating an image file with lazy_refcounts=off =="
@@ -128,7 +129,7 @@ $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" | _filter_qemu_io
ulimit -c "$old_ulimit"

# The dirty bit must not be set since lazy_refcounts=off
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
_check_test_img

echo
@@ -144,8 +145,8 @@ $QEMU_IO -c "write 0 512" "$TEST_IMG" | _filter_qemu_io
$QEMU_IMG commit "$TEST_IMG"

# The dirty bit must not be set
./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
./qcow2.py "$TEST_IMG".base dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
$PYTHON qcow2.py "$TEST_IMG".base dump-header | grep incompatible_features

_check_test_img
TEST_IMG="$TEST_IMG".base _check_test_img
+2 −1
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ _cleanup()
trap "_cleanup; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.env
. ./common.rc
. ./common.filter

@@ -49,7 +50,7 @@ _make_test_img $((1024*1024))T
echo
echo "creating too large image (1 EB) using qcow2.py"
_make_test_img 4G
./qcow2.py "$TEST_IMG" set-header size $((1024 ** 6))
$PYTHON qcow2.py "$TEST_IMG" set-header size $((1024 ** 6))
_check_test_img

# success, all done
Loading