forked from cory/tildefriends
libuv 1.45.0, #include cleanup, probably something else.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4308 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
46
deps/libuv/test/test-threadpool-cancel.c
vendored
46
deps/libuv/test/test-threadpool-cancel.c
vendored
@ -87,8 +87,34 @@ static void unblock_threadpool(void) {
|
||||
}
|
||||
|
||||
|
||||
static int known_broken(uv_req_t* req) {
|
||||
if (req->type != UV_FS)
|
||||
return 0;
|
||||
|
||||
#ifdef __linux__
|
||||
/* TODO(bnoordhuis) make cancellation work with io_uring */
|
||||
switch (((uv_fs_t*) req)->fs_type) {
|
||||
case UV_FS_CLOSE:
|
||||
case UV_FS_FDATASYNC:
|
||||
case UV_FS_FSTAT:
|
||||
case UV_FS_FSYNC:
|
||||
case UV_FS_LSTAT:
|
||||
case UV_FS_OPEN:
|
||||
case UV_FS_READ:
|
||||
case UV_FS_STAT:
|
||||
case UV_FS_WRITE:
|
||||
return 1;
|
||||
default: /* Squelch -Wswitch warnings. */
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void fs_cb(uv_fs_t* req) {
|
||||
ASSERT(req->result == UV_ECANCELED);
|
||||
ASSERT(known_broken((uv_req_t*) req) || req->result == UV_ECANCELED);
|
||||
uv_fs_req_cleanup(req);
|
||||
fs_cb_called++;
|
||||
}
|
||||
@ -133,7 +159,7 @@ static void timer_cb(uv_timer_t* handle) {
|
||||
|
||||
for (i = 0; i < ci->nreqs; i++) {
|
||||
req = (uv_req_t*) ((char*) ci->reqs + i * ci->stride);
|
||||
ASSERT(0 == uv_cancel(req));
|
||||
ASSERT(known_broken(req) || 0 == uv_cancel(req));
|
||||
}
|
||||
|
||||
uv_close((uv_handle_t*) &ci->timer_handle, NULL);
|
||||
@ -189,7 +215,7 @@ TEST_IMPL(threadpool_cancel_getaddrinfo) {
|
||||
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
|
||||
ASSERT(1 == timer_cb_called);
|
||||
|
||||
MAKE_VALGRIND_HAPPY();
|
||||
MAKE_VALGRIND_HAPPY(loop);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -225,7 +251,7 @@ TEST_IMPL(threadpool_cancel_getnameinfo) {
|
||||
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
|
||||
ASSERT(1 == timer_cb_called);
|
||||
|
||||
MAKE_VALGRIND_HAPPY();
|
||||
MAKE_VALGRIND_HAPPY(loop);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -248,7 +274,7 @@ TEST_IMPL(threadpool_cancel_random) {
|
||||
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
|
||||
ASSERT(1 == done_cb_called);
|
||||
|
||||
MAKE_VALGRIND_HAPPY();
|
||||
MAKE_VALGRIND_HAPPY(loop);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -272,7 +298,7 @@ TEST_IMPL(threadpool_cancel_work) {
|
||||
ASSERT(1 == timer_cb_called);
|
||||
ASSERT(ARRAY_SIZE(reqs) == done2_cb_called);
|
||||
|
||||
MAKE_VALGRIND_HAPPY();
|
||||
MAKE_VALGRIND_HAPPY(loop);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -305,7 +331,7 @@ TEST_IMPL(threadpool_cancel_fs) {
|
||||
ASSERT(0 == uv_fs_lstat(loop, reqs + n++, "/", fs_cb));
|
||||
ASSERT(0 == uv_fs_mkdir(loop, reqs + n++, "/", 0, fs_cb));
|
||||
ASSERT(0 == uv_fs_open(loop, reqs + n++, "/", 0, 0, fs_cb));
|
||||
ASSERT(0 == uv_fs_read(loop, reqs + n++, 0, &iov, 1, 0, fs_cb));
|
||||
ASSERT(0 == uv_fs_read(loop, reqs + n++, -1, &iov, 1, 0, fs_cb));
|
||||
ASSERT(0 == uv_fs_scandir(loop, reqs + n++, "/", 0, fs_cb));
|
||||
ASSERT(0 == uv_fs_readlink(loop, reqs + n++, "/", fs_cb));
|
||||
ASSERT(0 == uv_fs_realpath(loop, reqs + n++, "/", fs_cb));
|
||||
@ -316,7 +342,7 @@ TEST_IMPL(threadpool_cancel_fs) {
|
||||
ASSERT(0 == uv_fs_symlink(loop, reqs + n++, "/", "/", 0, fs_cb));
|
||||
ASSERT(0 == uv_fs_unlink(loop, reqs + n++, "/", fs_cb));
|
||||
ASSERT(0 == uv_fs_utime(loop, reqs + n++, "/", 0, 0, fs_cb));
|
||||
ASSERT(0 == uv_fs_write(loop, reqs + n++, 0, &iov, 1, 0, fs_cb));
|
||||
ASSERT(0 == uv_fs_write(loop, reqs + n++, -1, &iov, 1, 0, fs_cb));
|
||||
ASSERT(n == ARRAY_SIZE(reqs));
|
||||
|
||||
ASSERT(0 == uv_timer_init(loop, &ci.timer_handle));
|
||||
@ -326,7 +352,7 @@ TEST_IMPL(threadpool_cancel_fs) {
|
||||
ASSERT(1 == timer_cb_called);
|
||||
|
||||
|
||||
MAKE_VALGRIND_HAPPY();
|
||||
MAKE_VALGRIND_HAPPY(loop);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -344,6 +370,6 @@ TEST_IMPL(threadpool_cancel_single) {
|
||||
ASSERT(0 == uv_run(loop, UV_RUN_DEFAULT));
|
||||
ASSERT(1 == done_cb_called);
|
||||
|
||||
MAKE_VALGRIND_HAPPY();
|
||||
MAKE_VALGRIND_HAPPY(loop);
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user