- || hasdata(fd) != 1
- || (ASYNC_clear_wake(job), 0)
- || hasdata(fd) != 0
- || (ASYNC_wake(job), 0)
- || hasdata(fd) != 1
- || ASYNC_start_job(&job, &funcret, save_current, NULL, 0)
+ || !ASYNC_WAIT_CTX_get_all_fds(waitctx, NULL, &numfds)
+ || numfds != 1
+ || !ASYNC_WAIT_CTX_get_all_fds(waitctx, &fd, &numfds)
+ || fd != MAGIC_WAIT_FD
+ || (fd = OSSL_BAD_ASYNC_FD, 0) /* Assign to something else */
+ || !ASYNC_WAIT_CTX_get_changed_fds(waitctx, NULL, &numfds, NULL,
+ &numdelfds)
+ || numfds != 1
+ || numdelfds != 0
+ || !ASYNC_WAIT_CTX_get_changed_fds(waitctx, &fd, &numfds, NULL,
+ &numdelfds)
+ || fd != MAGIC_WAIT_FD
+ /* On final run we expect one deleted fd */
+ || ASYNC_start_job(&job, waitctx, &funcret, waitfd, NULL, 0)