41 lines
811 B
C
41 lines
811 B
C
#include "test-common.h"
|
|
|
|
static uv_link_t st_link;
|
|
|
|
static int reading;
|
|
static int close_cb_called;
|
|
|
|
|
|
static int read_start(uv_link_t* link) {
|
|
reading++;
|
|
return 0;
|
|
}
|
|
|
|
|
|
static int read_stop(uv_link_t* link) {
|
|
reading--;
|
|
return 0;
|
|
}
|
|
|
|
|
|
static uv_link_methods_t methods = {
|
|
.read_start = read_start,
|
|
.read_stop = read_stop,
|
|
.close = uv_link_default_close
|
|
};
|
|
|
|
static void close_cb(uv_link_t* l) {
|
|
close_cb_called++;
|
|
}
|
|
|
|
|
|
TEST_IMPL(stop_read_on_error) {
|
|
CHECK_EQ(uv_link_init(&st_link, &methods), 0, "uv_link_init()");
|
|
CHECK_EQ(uv_link_read_start(&st_link), 0, "uv_link_read_start()");
|
|
uv_link_propagate_read_cb(&st_link, UV_EOF, NULL);
|
|
CHECK_EQ(reading, 0, "must not be reading after error");
|
|
|
|
uv_link_close(&st_link, close_cb);
|
|
CHECK_EQ(close_cb_called, 1, "close_cb must be called");
|
|
}
|