qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Fam Zheng <famz@redhat.com>
To: Max Reitz <mreitz@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
	Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v3 5/7] iotests: Use $PYTHON for Python scripts
Date: Fri, 23 May 2014 11:58:59 +0800	[thread overview]
Message-ID: <20140523035859.GD1668@T430.nay.redhat.com> (raw)
In-Reply-To: <1400794231-27403-6-git-send-email-mreitz@redhat.com>

On Thu, 05/22 23:30, Max Reitz wrote:
> Instead of invoking Python scripts directly via ./, use $PYTHON to
> obtain the correct Python interpreter command.
> 
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
>  tests/qemu-iotests/031   |  8 ++++----
>  tests/qemu-iotests/036   |  6 +++---
>  tests/qemu-iotests/039   | 18 +++++++++---------
>  tests/qemu-iotests/054   |  2 +-
>  tests/qemu-iotests/060   | 20 ++++++++++----------
>  tests/qemu-iotests/061   | 24 ++++++++++++------------
>  tests/qemu-iotests/083   |  2 +-
>  tests/qemu-iotests/check |  8 +++++++-
>  8 files changed, 47 insertions(+), 41 deletions(-)
> 
> diff --git a/tests/qemu-iotests/031 b/tests/qemu-iotests/031
> index 1d920ea..2a77ba8 100755
> --- a/tests/qemu-iotests/031
> +++ b/tests/qemu-iotests/031
> @@ -56,22 +56,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
> diff --git a/tests/qemu-iotests/036 b/tests/qemu-iotests/036
> index 03b6aa9..a773653 100755
> --- a/tests/qemu-iotests/036
> +++ b/tests/qemu-iotests/036
> @@ -53,15 +53,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"
> diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039
> index 27fe4bd..84c9167 100755
> --- a/tests/qemu-iotests/039
> +++ b/tests/qemu-iotests/039
> @@ -63,7 +63,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
> @@ -75,7 +75,7 @@ _make_test_img $size
>  _no_dump_exec $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" 2>&1 | _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
>  _check_test_img
>  
>  echo
> @@ -84,7 +84,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 =="
> @@ -92,7 +92,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 =="
> @@ -108,12 +108,12 @@ _make_test_img $size
>  _no_dump_exec $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" 2>&1 | _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
>  
>  $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 =="
> @@ -124,7 +124,7 @@ _make_test_img $size
>  _no_dump_exec $QEMU_IO -c "write -P 0x5a 0 512" -c "abort" "$TEST_IMG" 2>&1 | _filter_qemu_io
>  
>  # 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
> @@ -140,8 +140,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
> diff --git a/tests/qemu-iotests/054 b/tests/qemu-iotests/054
> index c8b7082..bd94153 100755
> --- a/tests/qemu-iotests/054
> +++ b/tests/qemu-iotests/054
> @@ -49,7 +49,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
> diff --git a/tests/qemu-iotests/060 b/tests/qemu-iotests/060
> index f0116aa..3cffc12 100755
> --- a/tests/qemu-iotests/060
> +++ b/tests/qemu-iotests/060
> @@ -68,13 +68,13 @@ poke_file "$TEST_IMG" "$l1_offset" "\x80\x00\x00\x00\x00\x03\x00\x00"
>  _check_test_img
>  
>  # The corrupt bit should not be set anyway
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  
>  # Try to write something, thereby forcing the corrupt bit to be set
>  $QEMU_IO -c "$OPEN_RW" -c "write -P 0x2a 0 512" | _filter_qemu_io
>  
>  # The corrupt bit must now be set
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  
>  # Try to open the image R/W (which should fail)
>  $QEMU_IO -c "$OPEN_RW" -c "read 0 512" 2>&1 | _filter_qemu_io \
> @@ -99,19 +99,19 @@ poke_file "$TEST_IMG" "$(($rb_offset+8))" "\x00\x01"
>  # Redirect new data cluster onto refcount block
>  poke_file "$TEST_IMG" "$l2_offset" "\x80\x00\x00\x00\x00\x02\x00\x00"
>  _check_test_img
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  $QEMU_IO -c "$OPEN_RW" -c "write -P 0x2a 0 512" | _filter_qemu_io
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  
>  # Try to fix it
>  _check_test_img -r all
>  
>  # The corrupt bit should be cleared
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  
>  # Look if it's really really fixed
>  $QEMU_IO -c "$OPEN_RW" -c "write -P 0x2a 0 512" | _filter_qemu_io
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  
>  echo
>  echo "=== Testing cluster data reference into inactive L2 table ==="
> @@ -124,13 +124,13 @@ $QEMU_IO -c "$OPEN_RW" -c "write -P 2 0 512" | _filter_qemu_io
>  poke_file "$TEST_IMG" "$l2_offset_after_snapshot" \
>                        "\x80\x00\x00\x00\x00\x04\x00\x00"
>  _check_test_img
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  $QEMU_IO -c "$OPEN_RW" -c "write -P 3 0 512" | _filter_qemu_io
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  _check_test_img -r all
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  $QEMU_IO -c "$OPEN_RW" -c "write -P 4 0 512" | _filter_qemu_io
> -./qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
> +$PYTHON qcow2.py "$TEST_IMG" dump-header | grep incompatible_features
>  
>  # Check data
>  $QEMU_IO -c "$OPEN_RO" -c "read -P 4 0 512" | _filter_qemu_io
> diff --git a/tests/qemu-iotests/061 b/tests/qemu-iotests/061
> index d3a6b38..ab98def 100755
> --- a/tests/qemu-iotests/061
> +++ b/tests/qemu-iotests/061
> @@ -48,9 +48,9 @@ echo "=== Testing version downgrade with zero expansion ==="
>  echo
>  IMGOPTS="compat=1.1,lazy_refcounts=on" _make_test_img 64M
>  $QEMU_IO -c "write -z 0 128k" "$TEST_IMG" | _filter_qemu_io
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IMG amend -o "compat=0.10" "$TEST_IMG"
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IO -c "read -P 0 0 128k" "$TEST_IMG" | _filter_qemu_io
>  _check_test_img
>  
> @@ -59,9 +59,9 @@ echo "=== Testing dirty version downgrade ==="
>  echo
>  IMGOPTS="compat=1.1,lazy_refcounts=on" _make_test_img 64M
>  $QEMU_IO -c "write -P 0x2a 0 128k" -c flush -c abort "$TEST_IMG" | _filter_qemu_io
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IMG amend -o "compat=0.10" "$TEST_IMG"
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IO -c "read -P 0x2a 0 128k" "$TEST_IMG" | _filter_qemu_io
>  _check_test_img
>  
> @@ -69,11 +69,11 @@ echo
>  echo "=== Testing version downgrade with unknown compat/autoclear flags ==="
>  echo
>  IMGOPTS="compat=1.1" _make_test_img 64M
> -./qcow2.py "$TEST_IMG" set-feature-bit compatible 42
> -./qcow2.py "$TEST_IMG" set-feature-bit autoclear 42
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" set-feature-bit compatible 42
> +$PYTHON qcow2.py "$TEST_IMG" set-feature-bit autoclear 42
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IMG amend -o "compat=0.10" "$TEST_IMG"
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  _check_test_img
>  
>  echo
> @@ -81,9 +81,9 @@ echo "=== Testing version upgrade and resize ==="
>  echo
>  IMGOPTS="compat=0.10" _make_test_img 64M
>  $QEMU_IO -c "write -P 0x2a 42M 64k" "$TEST_IMG" | _filter_qemu_io
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IMG amend -o "compat=1.1,lazy_refcounts=on,size=128M" "$TEST_IMG"
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IO -c "read -P 0x2a 42M 64k" "$TEST_IMG" | _filter_qemu_io
>  _check_test_img
>  
> @@ -92,9 +92,9 @@ echo "=== Testing dirty lazy_refcounts=off ==="
>  echo
>  IMGOPTS="compat=1.1,lazy_refcounts=on" _make_test_img 64M
>  $QEMU_IO -c "write -P 0x2a 0 128k" -c flush -c abort "$TEST_IMG" | _filter_qemu_io
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IMG amend -o "lazy_refcounts=off" "$TEST_IMG"
> -./qcow2.py "$TEST_IMG" dump-header
> +$PYTHON qcow2.py "$TEST_IMG" dump-header
>  $QEMU_IO -c "read -P 0x2a 0 128k" "$TEST_IMG" | _filter_qemu_io
>  _check_test_img
>  
> diff --git a/tests/qemu-iotests/083 b/tests/qemu-iotests/083
> index f764534..b7ba860 100755
> --- a/tests/qemu-iotests/083
> +++ b/tests/qemu-iotests/083
> @@ -81,7 +81,7 @@ EOF
>  		nbd_url="nbd:127.0.0.1:$port:exportname=foo"
>  	fi
>  
> -	./nbd-fault-injector.py $extra_args "127.0.0.1:$port" "$TEST_DIR/nbd-fault-injector.conf" 2>&1 >/dev/null &
> +	$PYTHON nbd-fault-injector.py $extra_args "127.0.0.1:$port" "$TEST_DIR/nbd-fault-injector.conf" 2>&1 >/dev/null &
>  	wait_for_tcp_port "127.0.0.1:$port"
>  	$QEMU_IO -c "read 0 512" "$nbd_url" 2>&1 | _filter_qemu_io | filter_nbd
>  
> diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check
> index 8ec5b8d..8420bd6 100755
> --- a/tests/qemu-iotests/check
> +++ b/tests/qemu-iotests/check
> @@ -298,10 +298,16 @@ do
>  
>          start=`_wallclock`
>          $timestamp && echo -n "        ["`date "+%T"`"]"
> +
> +        if [ "$(head -n 1 "$source_iotests/$seq")" == "#!/usr/bin/env python" ]; then

How about

           if head -n 1 "$source_iotests/$seq" | grep -q '#!/usr/bin/env python'; then

? So you don't need patch 6 (Personally, I don't dislike #!/usr/bin/env
python2).

But no objection, so I'll leave my

Reviewed-by: Fam Zheng <famz@redhat.com>

> +            run_command="$PYTHON $seq"
> +        else
> +            run_command="./$seq"
> +        fi
>          export OUTPUT_DIR=$PWD
>          (cd "$source_iotests";
>          MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(($RANDOM % 255 + 1))} \
> -                ./$seq >$tmp.out 2>&1)
> +                $run_command >$tmp.out 2>&1)
>          sts=$?
>          $timestamp && _timestamp
>          stop=`_wallclock`
> -- 
> 1.9.3
> 
> 

  reply	other threads:[~2014-05-23  3:59 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-22 21:30 [Qemu-devel] [PATCH v3 0/7] iotests: Allow out-of-tree run Max Reitz
2014-05-22 21:30 ` [Qemu-devel] [PATCH v3 1/7] " Max Reitz
2014-05-23  3:44   ` Fam Zheng
2014-05-22 21:30 ` [Qemu-devel] [PATCH v3 2/7] configure: Enable out-of-tree iotests Max Reitz
2014-05-23  3:47   ` Fam Zheng
2014-05-24 19:27     ` Max Reitz
2014-05-22 21:30 ` [Qemu-devel] [PATCH v3 3/7] iotests: Add default common.env Max Reitz
2014-05-23  6:10   ` Fam Zheng
2014-05-23 12:27     ` Eric Blake
2014-05-23 13:33       ` Markus Armbruster
2014-05-24 19:40         ` Max Reitz
2014-05-22 21:30 ` [Qemu-devel] [PATCH v3 4/7] iotests: Source common.env Max Reitz
2014-05-23  4:01   ` Fam Zheng
2014-05-24 20:18     ` Max Reitz
2014-05-22 21:30 ` [Qemu-devel] [PATCH v3 5/7] iotests: Use $PYTHON for Python scripts Max Reitz
2014-05-23  3:58   ` Fam Zheng [this message]
2014-05-24 19:35     ` Max Reitz
2014-05-22 21:30 ` [Qemu-devel] [PATCH v3 6/7] iotests: Drop Python version from 065's Shebang Max Reitz
2014-05-23  4:02   ` Fam Zheng
2014-05-22 21:30 ` [Qemu-devel] [PATCH v3 7/7] iotests: Fix 083 for out-of-tree builds Max Reitz
2014-05-22 21:35 ` [Qemu-devel] [PATCH v3 0/7] iotests: Allow out-of-tree run Max Reitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140523035859.GD1668@T430.nay.redhat.com \
    --to=famz@redhat.com \
    --cc=armbru@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).