libuv/test/test-callback-stack.c

35 lines
569 B
C
Raw Normal View History

2011-04-07 09:02:54 +00:00
#include "../oio.h"
#include "test.h"
int nested = 0;
int close_cb_called = 0;
2011-04-07 09:02:54 +00:00
void close_cb(oio_handle *handle, oio_err e) {
assert("oio_close error" && e == 0);
assert("oio_close_cb not called from a fresh stack" && nested == 0);
close_cb_called++;
}
TEST_IMPL(close_cb_stack) {
2011-04-07 09:02:54 +00:00
oio_handle handle;
2011-04-07 02:51:59 +00:00
int r;
2011-04-07 09:02:54 +00:00
oio_init();
2011-04-07 02:51:59 +00:00
2011-04-07 09:02:54 +00:00
r = oio_tcp_handle_init(&handle, &close_cb, NULL);
2011-04-07 02:51:59 +00:00
assert(!r);
nested++;
2011-04-07 09:02:54 +00:00
r = oio_close(&handle);
2011-04-07 02:51:59 +00:00
assert(!r);
nested--;
2011-04-07 09:02:54 +00:00
oio_run();
2011-04-07 09:02:54 +00:00
assert("oio_close_cb not called exactly once" && close_cb_called);
return 0;
}