diff mbox

[for-2.8] qemu-iotests: avoid spurious failure on test 109

Message ID 20161109162008.27287-1-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini Nov. 9, 2016, 4:20 p.m. UTC
In some cases it is possible that query-io-status is called just
before the job is completed, causing

    -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "src", "len": 31457280, "offset": OFFSET, "speed": 0, "type": "mirror", "error": "Operation not permitted"}}
    -{"return": []}
    +{"return": [{"io-status": "ok", "device": "src", "busy": true, "len": 31457280, "offset": OFFSET, "paused": false, "speed": 0, "ready": false, "type": "mirror"}]}

Assert that the completeion event eventually happens.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 tests/qemu-iotests/109 | 3 +++
 1 file changed, 3 insertions(+)

Comments

Jeff Cody Nov. 9, 2016, 6:21 p.m. UTC | #1
On Wed, Nov 09, 2016 at 05:20:07PM +0100, Paolo Bonzini wrote:
> In some cases it is possible that query-io-status is called just
> before the job is completed, causing
> 
>     -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "src", "len": 31457280, "offset": OFFSET, "speed": 0, "type": "mirror", "error": "Operation not permitted"}}
>     -{"return": []}
>     +{"return": [{"io-status": "ok", "device": "src", "busy": true, "len": 31457280, "offset": OFFSET, "paused": false, "speed": 0, "ready": false, "type": "mirror"}]}
> 
> Assert that the completeion event eventually happens.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  tests/qemu-iotests/109 | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tests/qemu-iotests/109 b/tests/qemu-iotests/109
> index 280ed27..927151a 100755
> --- a/tests/qemu-iotests/109
> +++ b/tests/qemu-iotests/109
> @@ -62,6 +62,9 @@ function run_qemu()
>          "return"
>  
>      _send_qemu_cmd $QEMU_HANDLE '' "$qmp_event"
> +    if test "$qmp_event" = BLOCK_JOB_ERROR; then
> +        _send_qemu_cmd $QEMU_HANDLE '' "BLOCK_JOB_COMPLETED"
> +    fi
>      _send_qemu_cmd $QEMU_HANDLE '{"execute":"query-block-jobs"}' "return"
>      _cleanup_qemu
>  }
> -- 
> 2.9.3
> 
>
Thanks,

Reviewed-by: Jeff Cody <jcody@redhat.com>
Jeff Cody Nov. 9, 2016, 6:40 p.m. UTC | #2
On Wed, Nov 09, 2016 at 05:20:07PM +0100, Paolo Bonzini wrote:
> In some cases it is possible that query-io-status is called just
> before the job is completed, causing
> 
>     -{"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "src", "len": 31457280, "offset": OFFSET, "speed": 0, "type": "mirror", "error": "Operation not permitted"}}
>     -{"return": []}
>     +{"return": [{"io-status": "ok", "device": "src", "busy": true, "len": 31457280, "offset": OFFSET, "paused": false, "speed": 0, "ready": false, "type": "mirror"}]}
> 
> Assert that the completeion event eventually happens.
> 
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  tests/qemu-iotests/109 | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tests/qemu-iotests/109 b/tests/qemu-iotests/109
> index 280ed27..927151a 100755
> --- a/tests/qemu-iotests/109
> +++ b/tests/qemu-iotests/109
> @@ -62,6 +62,9 @@ function run_qemu()
>          "return"
>  
>      _send_qemu_cmd $QEMU_HANDLE '' "$qmp_event"
> +    if test "$qmp_event" = BLOCK_JOB_ERROR; then
> +        _send_qemu_cmd $QEMU_HANDLE '' "BLOCK_JOB_COMPLETED"
> +    fi
>      _send_qemu_cmd $QEMU_HANDLE '{"execute":"query-block-jobs"}' "return"
>      _cleanup_qemu
>  }
> -- 
> 2.9.3
> 
> 

Thanks,

Applied to my block branch:

git://github.com/codyprime/qemu-kvm-jtc.git block

-Jeff
diff mbox

Patch

diff --git a/tests/qemu-iotests/109 b/tests/qemu-iotests/109
index 280ed27..927151a 100755
--- a/tests/qemu-iotests/109
+++ b/tests/qemu-iotests/109
@@ -62,6 +62,9 @@  function run_qemu()
         "return"
 
     _send_qemu_cmd $QEMU_HANDLE '' "$qmp_event"
+    if test "$qmp_event" = BLOCK_JOB_ERROR; then
+        _send_qemu_cmd $QEMU_HANDLE '' "BLOCK_JOB_COMPLETED"
+    fi
     _send_qemu_cmd $QEMU_HANDLE '{"execute":"query-block-jobs"}' "return"
     _cleanup_qemu
 }