summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2018-09-06 09:02:18 -0400
committerMax Reitz <mreitz@redhat.com>2018-09-25 15:31:15 +0200
commit977d26fdbeb35d8d2d0f203f9556d44a353e0dfd (patch)
treeeeec59a938326baa86a5d725b498ff6045e4bde1 /tests
parent0cc4643b01a0138543e886db8e3bf8a3f74ff8f9 (diff)
downloadqemu-977d26fdbeb35d8d2d0f203f9556d44a353e0dfd.zip
tests/test-blockjob: remove exit callback
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>
Diffstat (limited to 'tests')
-rw-r--r--tests/test-blockjob.c16
1 files 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);