diff options
author | Laurent Ghigonis <laurent@p1sec.com> | 2012-11-29 07:42:53 +0100 |
---|---|---|
committer | Laurent Ghigonis <laurent@p1sec.com> | 2012-11-29 07:42:53 +0100 |
commit | 7be415d8259a1be20bf0249ce4b91dfa0cac70f8 (patch) | |
tree | 8398bb4991428f36d8f13ed9f5b8c901ba5fc38d | |
parent | improve connection handling between server and client. (diff) | |
download | glouglou-7be415d8259a1be20bf0249ce4b91dfa0cac70f8.tar.xz glouglou-7be415d8259a1be20bf0249ce4b91dfa0cac70f8.zip |
add a unittest for testing sending are receiving pkts
-rw-r--r-- | libglouglou/tests/sendrecv.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/libglouglou/tests/sendrecv.c b/libglouglou/tests/sendrecv.c new file mode 100644 index 0000000..f4702e8 --- /dev/null +++ b/libglouglou/tests/sendrecv.c @@ -0,0 +1,51 @@ +#include <event.h> + +#include "../libglouglou.h" + +int srv_recv_ok = 0; +int cli_recv_ok = 0; + +int +srv_handle_packet(struct gg_server *srv, struct gg_user *usr, struct gg_packet *pkt) +{ + if (usr->id == 1) + srv_recv_ok = 1; + return 0; +} + +int +cli_handle_packet(struct gg_client *cli, struct gg_packet *pkt) +{ + cli_recv_ok = 1; + return 0; +} + +int +main(void) +{ + struct event_base *ev_base; + struct gg_server *srv; + struct gg_client *cli; + struct gg_packet pkt; + + ev_base = event_base_new(); + srv = gg_server_start(ev_base, "127.0.0.1", 12345, NULL, srv_handle_packet); + if (!srv) { + printf("error: gg_server_start returned NULL\n"); + return 1; + } + cli = gg_client_connect(ev_base, "127.0.0.1", 12345, NULL, cli_handle_packet); + if (!cli) { + printf("error: gg_client_connect returned NULL\n"); + return 1; + } + event_base_loop(ev_base, EVLOOP_ONCE); + event_base_loop(ev_base, EVLOOP_ONCE); + + if (srv_recv_ok == 0) + printf("error: srv_recv_ok == 0\n"); + if (cli_recv_ok == 0) + printf("error: cli_recv_ok == 0\n"); + + return (!srv_recv_ok || !cli_recv_ok); +} |