aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);