Tests / benchmarks use new error handling api

This commit is contained in:
Bert Belder 2011-04-20 22:28:36 +02:00
parent 183c1de112
commit 5bcbc31920
6 changed files with 55 additions and 33 deletions

View File

@ -50,20 +50,23 @@ typedef struct {
void pinger_try_read(pinger_t* pinger);
void pinger_on_close(oio_handle* handle, oio_err err) {
pinger_t* pinger = (pinger_t*)handle->data;
void pinger_on_close(oio_handle* handle, int status) {
pinger_t* pinger;
ASSERT(status == 0);
pinger = (pinger_t*)handle->data;
printf("%d pings\n", pinger->pongs);
ASSERT(!err);
free(pinger);
completed_pingers++;
}
void pinger_after_write(oio_req *req) {
void pinger_after_write(oio_req *req, int status) {
ASSERT(status == 0);
free(req);
}
@ -84,10 +87,12 @@ static void pinger_write_ping(pinger_t* pinger) {
}
static void pinger_after_read(oio_req* req, size_t nread) {
static void pinger_after_read(oio_req* req, size_t nread, int status) {
unsigned int i;
pinger_t* pinger;
ASSERT(status == 0);
pinger = (pinger_t*)req->handle->data;
if (nread == 0) {
@ -121,10 +126,10 @@ void pinger_try_read(pinger_t* pinger) {
}
void pinger_on_connect(oio_req *req, oio_err err) {
void pinger_on_connect(oio_req *req, int status) {
pinger_t *pinger = (pinger_t*)req->handle->data;
ASSERT(!err);
ASSERT(status == 0);
pinger_try_read(pinger);
pinger_write_ping(pinger);

View File

@ -36,21 +36,29 @@ typedef struct {
oio_handle server;
void after_write(oio_req* req);
void after_read(oio_req* req, size_t nread);
void after_write(oio_req* req, int status);
void after_read(oio_req* req, size_t nread, int status);
void try_read(peer_t* peer);
void on_close(oio_handle* peer, oio_err err);
void on_close(oio_handle* peer, int status);
void on_accept(oio_handle* handle);
void after_write(oio_req* req) {
peer_t* peer = (peer_t*) req->data;
void after_write(oio_req* req, int status) {
peer_t* peer;
ASSERT(status == 0);
peer = (peer_t*) req->data;
try_read(peer);
}
void after_read(oio_req* req, size_t nread) {
peer_t* peer = req->data;
void after_read(oio_req* req, size_t nread, int status) {
peer_t* peer;
ASSERT(status == 0);
peer = req->data;
if (nread == 0) {
oio_close(req->handle);
@ -75,8 +83,8 @@ void try_read(peer_t* peer) {
}
void on_close(oio_handle* peer, oio_err err) {
if (err) {
void on_close(oio_handle* peer, int status) {
if (status != 0) {
fprintf(stdout, "Socket error\n");
}
}
@ -95,9 +103,9 @@ void on_accept(oio_handle* server) {
}
void on_server_close(oio_handle* handle, oio_err err) {
void on_server_close(oio_handle* handle, int status) {
ASSERT(handle == &server);
ASSERT(!err);
ASSERT(status == 0);
}

View File

@ -32,8 +32,8 @@ int nested = 0;
int close_cb_called = 0;
void close_cb(oio_handle *handle, oio_err err) {
ASSERT(!err);
void close_cb(oio_handle *handle, int status) {
ASSERT(status == 0);
ASSERT(nested == 0 && "oio_close_cb must be called from a fresh stack");
close_cb_called++;
}

View File

@ -32,15 +32,17 @@ static int connect_cb_calls;
static int close_cb_calls;
static void on_close(oio_handle* handle, oio_err err) {
ASSERT(!err);
static void on_close(oio_handle* handle, int status) {
ASSERT(status == 0);
close_cb_calls++;
}
static void on_connect(oio_req *req, oio_err err) {
ASSERT(err);
static void on_connect(oio_req *req, int status) {
ASSERT(status == -1);
connect_cb_calls++;
oio_close(req->handle);
}

View File

@ -48,10 +48,10 @@ typedef struct {
void pinger_try_read(pinger_t* pinger);
void pinger_on_close(oio_handle* handle, oio_err err) {
void pinger_on_close(oio_handle* handle, int status) {
pinger_t* pinger = (pinger_t*)handle->data;
ASSERT(!err);
ASSERT(status == 0);
ASSERT(NUM_PINGS == pinger->pongs);
free(pinger);
@ -60,7 +60,9 @@ void pinger_on_close(oio_handle* handle, oio_err err) {
}
void pinger_after_write(oio_req *req) {
void pinger_after_write(oio_req *req, int status) {
ASSERT(status == 0);
free(req);
}
@ -83,10 +85,12 @@ static void pinger_write_ping(pinger_t* pinger) {
}
static void pinger_after_read(oio_req* req, size_t nread) {
static void pinger_after_read(oio_req* req, size_t nread, int status) {
unsigned int i;
pinger_t* pinger;
ASSERT(status == 0);
pinger = (pinger_t*)req->handle->data;
if (nread == 0) {
@ -121,10 +125,10 @@ void pinger_try_read(pinger_t* pinger) {
}
void pinger_on_connect(oio_req *req, oio_err err) {
void pinger_on_connect(oio_req *req, int status) {
pinger_t *pinger = (pinger_t*)req->handle->data;
ASSERT(!err);
ASSERT(status == 0);
pinger_try_read(pinger);
pinger_write_ping(pinger);

View File

@ -28,8 +28,10 @@ static int timeouts = 0;
static int64_t start_time;
static void timeout_cb(oio_req *req) {
static void timeout_cb(oio_req *req, int status) {
ASSERT(req != NULL);
ASSERT(status == 0);
free(req);
timeouts++;
@ -37,9 +39,10 @@ static void timeout_cb(oio_req *req) {
oio_update_time();
}
static void exit_timeout_cb(oio_req *req) {
static void exit_timeout_cb(oio_req *req, int status) {
int64_t now = oio_now();
ASSERT(req != NULL);
ASSERT(status == 0);
ASSERT(timeouts == expected);
ASSERT(start_time < now);
exit(0);