35 lines
569 B
C
35 lines
569 B
C
#include "../oio.h"
|
|
#include "test.h"
|
|
|
|
|
|
int nested = 0;
|
|
int close_cb_called = 0;
|
|
|
|
|
|
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) {
|
|
oio_handle handle;
|
|
int r;
|
|
|
|
oio_init();
|
|
|
|
r = oio_tcp_handle_init(&handle, &close_cb, NULL);
|
|
assert(!r);
|
|
|
|
nested++;
|
|
r = oio_close(&handle);
|
|
assert(!r);
|
|
nested--;
|
|
|
|
oio_run();
|
|
|
|
assert("oio_close_cb not called exactly once" && close_cb_called);
|
|
|
|
return 0;
|
|
} |