89 lines
2.9 KiB
Diff
89 lines
2.9 KiB
Diff
From 811f1e5213c0d9cc05ecfe033f6409f261355d56 Mon Sep 17 00:00:00 2001
|
|
From: John Snow <jsnow@redhat.com>
|
|
Date: Tue, 25 Sep 2018 22:34:24 +0100
|
|
Subject: [PATCH 21/28] tests/test-blockjob: remove exit callback
|
|
|
|
RH-Author: John Snow <jsnow@redhat.com>
|
|
Message-id: <20180925223431.24791-19-jsnow@redhat.com>
|
|
Patchwork-id: 82276
|
|
O-Subject: [RHEL8/rhel qemu-kvm PATCH 18/25] tests/test-blockjob: remove exit callback
|
|
Bugzilla: 1632939
|
|
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
|
|
RH-Acked-by: Max Reitz <mreitz@redhat.com>
|
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
|
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>
|
|
Message-id: 20180906130225.5118-10-jsnow@redhat.com
|
|
Reviewed-by: Jeff Cody <jcody@redhat.com>
|
|
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
(cherry picked from commit 977d26fdbeb35d8d2d0f203f9556d44a353e0dfd)
|
|
Signed-off-by: John Snow <jsnow@redhat.com>
|
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@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 8e8b680..de4c1c2 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);
|
|
--
|
|
1.8.3.1
|
|
|