]> rtime.felk.cvut.cz Git - frescor/forb.git/blobdiff - src/tests/test_proto_inet.c
forb: Convert some older tests to wvtest framework
[frescor/forb.git] / src / tests / test_proto_inet.c
index 25e8348b55f98c758a98ac497e30dc6b103cda91..2b7cbd22bedeb798d7fa846e794cbc3170924be0 100644 (file)
@@ -54,6 +54,7 @@
 
 #include <error.h>
 #include "../proto_inet.c"
+#include <wvtest.h>
 
 const char *msg = "Hello world!";
 const char *msg2 = "Blablabla!";
@@ -63,10 +64,10 @@ char *timeout_msg = "timeout\n";
 
 void timeout(int signal)
 {
-       error(1, 0, timeout_msg);
+       //error(1, 0, timeout_msg);
 }
 
-int main()
+WVTEST_MAIN("AF_INET inter-orb protocol")
 {
        int len;
        struct inet_addr addr[NUM_PORTS];
@@ -79,23 +80,23 @@ int main()
 
        for (i=0; i<NUM_PORTS; i++) {
                addr[i].addr.s_addr = htonl(0x7f000001+i);
-               if (forb_inet_port_init(&port[i].desc, addr[i].addr, 0) != 0)
+               if (!WVPASSEQ(forb_inet_port_init(&port[i].desc, addr[i].addr, 0), 0))
                        error(1, errno, "forb_inet_port_init(%d)", i);
        }
 
 
        /* Send from zeroth node to all others (starting from 1) */
        for (i=1; i<NUM_PORTS; i++) {
-               forb_peer_t *peer;
                char buf[100];
                char tmsg[100];
-
-               peer = forb_peer_new();
+               forb_peer_t *peer;
+               
+               WVPASS(peer = forb_peer_new());
                peer->addr = port[i].desc.addr;
                peer->port = &port[0];
                
                len = strlen(msg)+1;
-               ret = inet_send(peer, msg, len);
+               WVPASSEQ(ret = inet_send(peer, msg, len), len);
 
                peer->addr = NULL;
                forb_peer_put(peer);
@@ -105,18 +106,18 @@ int main()
                sprintf(tmsg, "Timeout when sending from 0 to %d\n", i);
                timeout_msg = tmsg;
                alarm(1);       /* timeout 1s */
-               ret = inet_recv(&port[i], buf, sizeof(buf));
+               WVPASSEQ(ret = inet_recv(&port[i], buf, sizeof(buf)), len);
                alarm(0);
                if (ret != len)
                        error(1, errno, "recv(port[%d]) = %d", i, ret);
 
-               if (strcmp(msg, buf) != 0)
+               if (!WVPASS(strcmp(msg, buf) == 0))
                        error(1, errno, "port %d: received wrong data", i);
-
        }
 
+#ifndef CONFIG_FORB_PROTO_INET_DEFAULT
        len = strlen(msg2)+1;
-       ret = inet_broadcast(&port[0], msg2, len);
+       WVPASSEQ(ret = inet_broadcast(&port[0], msg2, len), len);
        if (ret != len) 
                error(1, errno, "broadcast(port[0]) = %d should be %d", ret, len);
        
@@ -127,21 +128,21 @@ int main()
                sprintf(tmsg, "Timeout when receiving broadcast for port %d\n", i);
                timeout_msg = tmsg;
                alarm(1);
-               ret = inet_recv(&port[i], buf, sizeof(buf));
+               WVPASSEQ(ret = inet_recv(&port[i], buf, sizeof(buf)), len);
                alarm(0);
                if (ret != len) 
                        error(1, errno, "broadcast recv(port[%d]) = %d should be %d (errno=%d)", i, ret, len, errno);
                //printf("broadcast received: %s\n", buf);
 
-               if (strcmp(msg2, buf) != 0)
+               if (!WVPASS(strcmp(msg2, buf) == 0))
                        error(1, errno, "port %d: broadcast received wrong data", i);
 
        }
+#endif
 
        for (i=0; i<NUM_PORTS; i++) {
                inet_port_destroy(&port[i]);
+               if (port[i].new_peer)
+                       forb_peer_put(port[i].new_peer);
        }
-
-       printf("OK\n");
-       return 0;
 }