aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Ghigonis <laurent@p1sec.com>2012-11-29 07:42:53 +0100
committerLaurent Ghigonis <laurent@p1sec.com>2012-11-29 07:42:53 +0100
commit7be415d8259a1be20bf0249ce4b91dfa0cac70f8 (patch)
tree8398bb4991428f36d8f13ed9f5b8c901ba5fc38d
parentimprove connection handling between server and client. (diff)
downloadglouglou-7be415d8259a1be20bf0249ce4b91dfa0cac70f8.tar.xz
glouglou-7be415d8259a1be20bf0249ce4b91dfa0cac70f8.zip
add a unittest for testing sending are receiving pkts
-rw-r--r--libglouglou/tests/sendrecv.c51
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);
+}