Don't handle lack of IPv6 as fatal in unit tests
authorsapier <Sapier at GMX dot net>
Fri, 20 Jun 2014 20:35:50 +0000 (22:35 +0200)
committersapier <Sapier at GMX dot net>
Fri, 20 Jun 2014 20:35:50 +0000 (22:35 +0200)
src/test.cpp

index dd26919473292b11f67c4eeea9f07c3a5384205f..8a080454b6bf7f447bc66727360c6f3dd8d37b2b 100644 (file)
@@ -1517,22 +1517,29 @@ struct TestSocket: public TestBase
                        const char sendbuffer[] = "hello world!";
                        IPv6AddressBytes bytes;
                        bytes.bytes[15] = 1;
-                       socket6.Send(Address(&bytes, port), sendbuffer, sizeof(sendbuffer));
+                       
+                       try {
+                               socket6.Send(Address(&bytes, port), sendbuffer, sizeof(sendbuffer));
 
-                       sleep_ms(50);
+                               sleep_ms(50);
 
-                       char rcvbuffer[256];
-                       memset(rcvbuffer, 0, sizeof(rcvbuffer));
-                       Address sender;
-                       for(;;)
-                       {
-                               int bytes_read = socket6.Receive(sender, rcvbuffer, sizeof(rcvbuffer));
-                               if(bytes_read < 0)
-                                       break;
+                               char rcvbuffer[256];
+                               memset(rcvbuffer, 0, sizeof(rcvbuffer));
+                               Address sender;
+                               for(;;)
+                               {
+                                       int bytes_read = socket6.Receive(sender, rcvbuffer, sizeof(rcvbuffer));
+                                       if(bytes_read < 0)
+                                               break;
+                               }
+                               //FIXME: This fails on some systems
+                               UASSERT(strncmp(sendbuffer, rcvbuffer, sizeof(sendbuffer))==0);
+                               UASSERT(memcmp(sender.getAddress6().sin6_addr.s6_addr, Address(&bytes, 0).getAddress6().sin6_addr.s6_addr, 16) == 0);
                        }
-                       //FIXME: This fails on some systems
-                       UASSERT(strncmp(sendbuffer, rcvbuffer, sizeof(sendbuffer))==0);
-                       UASSERT(memcmp(sender.getAddress6().sin6_addr.s6_addr, Address(&bytes, 0).getAddress6().sin6_addr.s6_addr, 16) == 0);
+                       catch (SendFailedException e) {
+                               errorstream << "IPv6 support enabled but not available!" << std::endl;
+                       }
+                       
                }
 
                // IPv4 socket test