[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 09/15] tests/test-blockjob: remove exit callback
From: |
John Snow |
Subject: |
[Qemu-devel] [PATCH v3 09/15] tests/test-blockjob: remove exit callback |
Date: |
Fri, 31 Aug 2018 18:29:01 -0400 |
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 <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
---
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
- [Qemu-devel] [PATCH v3 00/15] jobs: Job Exit Refactoring Pt 2, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 08/15] tests/blockjob: replace Blockjob with Job, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 11/15] jobs: remove .exit callback, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 13/15] qapi/block-mirror: expose new job properties, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 05/15] block/mirror: don't install backing chain on abort, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 14/15] qapi/block-stream: expose new job properties, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 09/15] tests/test-blockjob: remove exit callback,
John Snow <=
- [Qemu-devel] [PATCH v3 12/15] qapi/block-commit: expose new job properties, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 06/15] block/mirror: conservative mirror_exit refactor, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 15/15] block/backup: qapi documentation fixup, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 03/15] block/stream: add block job creation flags, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 04/15] block/commit: refactor commit to use job callbacks, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 10/15] tests/test-blockjob-txn: move .exit to .clean, John Snow, 2018/08/31
- [Qemu-devel] [PATCH v3 01/15] block/commit: add block job creation flags, John Snow, 2018/08/31