diff mbox series

[v5,09/16] tests/test-blockjob: remove exit callback

Message ID 20180906130225.5118-10-jsnow@redhat.com
State New
Headers show
Series jobs: Job Exit Refactoring Pt 2 | expand

Commit Message

John Snow Sept. 6, 2018, 1:02 p.m. UTC
We remove the exit callback and the completed boolean along with it.
We can simulate it just fine by waiting for the job to defer to the
main loop, and then giving it one final kick to get the main loop
portion to run.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
---
 tests/test-blockjob.c | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

Comments

Jeff Cody Sept. 6, 2018, 4:58 p.m. UTC | #1
On Thu, Sep 06, 2018 at 09:02:18AM -0400, John Snow wrote:
> We remove the exit callback and the completed boolean along with it.
> We can simulate it just fine by waiting for the job to defer to the
> main loop, and then giving it one final kick to get the main loop
> portion to run.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> Reviewed-by: Max Reitz <mreitz@redhat.com>

Reviewed-by: Jeff Cody <jcody@redhat.com>

> ---
>  tests/test-blockjob.c | 16 ++++++----------
>  1 file changed, 6 insertions(+), 10 deletions(-)
> 
> diff --git a/tests/test-blockjob.c b/tests/test-blockjob.c
> index 8e8b680416..de4c1c20aa 100644
> --- a/tests/test-blockjob.c
> +++ b/tests/test-blockjob.c
> @@ -160,15 +160,8 @@ typedef struct CancelJob {
>      BlockBackend *blk;
>      bool should_converge;
>      bool should_complete;
> -    bool completed;
>  } CancelJob;
>  
> -static void cancel_job_exit(Job *job)
> -{
> -    CancelJob *s = container_of(job, CancelJob, common.job);
> -    s->completed = true;
> -}
> -
>  static void cancel_job_complete(Job *job, Error **errp)
>  {
>      CancelJob *s = container_of(job, CancelJob, common.job);
> @@ -201,7 +194,6 @@ static const BlockJobDriver test_cancel_driver = {
>          .user_resume   = block_job_user_resume,
>          .drain         = block_job_drain,
>          .run           = cancel_job_run,
> -        .exit          = cancel_job_exit,
>          .complete      = cancel_job_complete,
>      },
>  };
> @@ -335,9 +327,11 @@ static void test_cancel_pending(void)
>  
>      job_complete(job, &error_abort);
>      job_enter(job);
> -    while (!s->completed) {
> +    while (!job->deferred_to_main_loop) {
>          aio_poll(qemu_get_aio_context(), true);
>      }
> +    assert(job->status == JOB_STATUS_READY);
> +    aio_poll(qemu_get_aio_context(), true);
>      assert(job->status == JOB_STATUS_PENDING);
>  
>      cancel_common(s);
> @@ -359,9 +353,11 @@ static void test_cancel_concluded(void)
>  
>      job_complete(job, &error_abort);
>      job_enter(job);
> -    while (!s->completed) {
> +    while (!job->deferred_to_main_loop) {
>          aio_poll(qemu_get_aio_context(), true);
>      }
> +    assert(job->status == JOB_STATUS_READY);
> +    aio_poll(qemu_get_aio_context(), true);
>      assert(job->status == JOB_STATUS_PENDING);
>  
>      job_finalize(job, &error_abort);
> -- 
> 2.14.4
>
diff mbox series

Patch

diff --git a/tests/test-blockjob.c b/tests/test-blockjob.c
index 8e8b680416..de4c1c20aa 100644
--- a/tests/test-blockjob.c
+++ b/tests/test-blockjob.c
@@ -160,15 +160,8 @@  typedef struct CancelJob {
     BlockBackend *blk;
     bool should_converge;
     bool should_complete;
-    bool completed;
 } CancelJob;
 
-static void cancel_job_exit(Job *job)
-{
-    CancelJob *s = container_of(job, CancelJob, common.job);
-    s->completed = true;
-}
-
 static void cancel_job_complete(Job *job, Error **errp)
 {
     CancelJob *s = container_of(job, CancelJob, common.job);
@@ -201,7 +194,6 @@  static const BlockJobDriver test_cancel_driver = {
         .user_resume   = block_job_user_resume,
         .drain         = block_job_drain,
         .run           = cancel_job_run,
-        .exit          = cancel_job_exit,
         .complete      = cancel_job_complete,
     },
 };
@@ -335,9 +327,11 @@  static void test_cancel_pending(void)
 
     job_complete(job, &error_abort);
     job_enter(job);
-    while (!s->completed) {
+    while (!job->deferred_to_main_loop) {
         aio_poll(qemu_get_aio_context(), true);
     }
+    assert(job->status == JOB_STATUS_READY);
+    aio_poll(qemu_get_aio_context(), true);
     assert(job->status == JOB_STATUS_PENDING);
 
     cancel_common(s);
@@ -359,9 +353,11 @@  static void test_cancel_concluded(void)
 
     job_complete(job, &error_abort);
     job_enter(job);
-    while (!s->completed) {
+    while (!job->deferred_to_main_loop) {
         aio_poll(qemu_get_aio_context(), true);
     }
+    assert(job->status == JOB_STATUS_READY);
+    aio_poll(qemu_get_aio_context(), true);
     assert(job->status == JOB_STATUS_PENDING);
 
     job_finalize(job, &error_abort);