[haiku-commits] r39694 - in haiku/trunk/src/tests/kits/net: . libnetapi

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 1 Dec 2010 18:33:09 +0100 (CET)

Author: axeld
Date: 2010-12-01 18:33:09 +0100 (Wed, 01 Dec 2010)
New Revision: 39694
Changeset: http://dev.haiku-os.org/changeset/39694

Added:
   haiku/trunk/src/tests/kits/net/libnetapi/
   haiku/trunk/src/tests/kits/net/libnetapi/Jamfile
   haiku/trunk/src/tests/kits/net/libnetapi/NetAPITestAddon.cpp
   haiku/trunk/src/tests/kits/net/libnetapi/NetworkAddressTest.cpp
   haiku/trunk/src/tests/kits/net/libnetapi/NetworkAddressTest.h
Modified:
   haiku/trunk/src/tests/kits/net/Jamfile
Log:
* Added some unit tests for BNetworkAddress.


Modified: haiku/trunk/src/tests/kits/net/Jamfile
===================================================================
--- haiku/trunk/src/tests/kits/net/Jamfile      2010-12-01 17:32:27 UTC (rev 
39693)
+++ haiku/trunk/src/tests/kits/net/Jamfile      2010-12-01 17:33:09 UTC (rev 
39694)
@@ -30,6 +30,7 @@
 SubInclude HAIKU_TOP src tests kits net DialUpPreflet ;
 SubInclude HAIKU_TOP src tests kits net icmp ;
 SubInclude HAIKU_TOP src tests kits net ipv6 ;
+HaikuSubInclude libnetapi ;
 SubInclude HAIKU_TOP src tests kits net multicast ;
 SubInclude HAIKU_TOP src tests kits net netperf ;
 SubInclude HAIKU_TOP src tests kits net preflet ;

Added: haiku/trunk/src/tests/kits/net/libnetapi/Jamfile
===================================================================
--- haiku/trunk/src/tests/kits/net/libnetapi/Jamfile                            
(rev 0)
+++ haiku/trunk/src/tests/kits/net/libnetapi/Jamfile    2010-12-01 17:33:09 UTC 
(rev 39694)
@@ -0,0 +1,9 @@
+SubDir HAIKU_TOP src tests kits net libnetapi ;
+
+UnitTestLib libnetapitest.so :
+       NetAPITestAddon.cpp
+
+       NetworkAddressTest.cpp
+
+       : bnetapi $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++)
+;

Added: haiku/trunk/src/tests/kits/net/libnetapi/NetAPITestAddon.cpp
===================================================================
--- haiku/trunk/src/tests/kits/net/libnetapi/NetAPITestAddon.cpp                
                (rev 0)
+++ haiku/trunk/src/tests/kits/net/libnetapi/NetAPITestAddon.cpp        
2010-12-01 17:33:09 UTC (rev 39694)
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2010, Axel Dörfler, axeld@xxxxxxxxxxxxxxxxx
+ * Distributed under the terms of the MIT License.
+ */
+
+
+#include <TestSuite.h>
+#include <TestSuiteAddon.h>
+
+#include "NetworkAddressTest.h"
+
+
+BTestSuite*
+getTestSuite()
+{
+       BTestSuite* suite = new BTestSuite("NetAPI");
+
+       NetworkAddressTest::AddTests(*suite);
+
+       return suite;
+}

Added: haiku/trunk/src/tests/kits/net/libnetapi/NetworkAddressTest.cpp
===================================================================
--- haiku/trunk/src/tests/kits/net/libnetapi/NetworkAddressTest.cpp             
                (rev 0)
+++ haiku/trunk/src/tests/kits/net/libnetapi/NetworkAddressTest.cpp     
2010-12-01 17:33:09 UTC (rev 39694)
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2010, Axel Dörfler, axeld@xxxxxxxxxxxxxxxxx
+ * Distributed under the terms of the MIT License.
+ */
+
+
+#include "NetworkAddressTest.h"
+
+#include <NetworkAddress.h>
+#include <TypeConstants.h>
+
+#include <cppunit/TestCaller.h>
+#include <cppunit/TestSuite.h>
+
+
+NetworkAddressTest::NetworkAddressTest()
+{
+}
+
+
+NetworkAddressTest::~NetworkAddressTest()
+{
+}
+
+
+void
+NetworkAddressTest::TestUnset()
+{
+       BNetworkAddress unset;
+
+       CPPUNIT_ASSERT(unset.Family() == AF_UNSPEC);
+       CPPUNIT_ASSERT(unset.Port() == 0);
+
+       BNetworkAddress set(AF_INET, NULL);
+       CPPUNIT_ASSERT(set.Family() == AF_INET);
+       CPPUNIT_ASSERT(unset != set);
+
+       set.Unset();
+       CPPUNIT_ASSERT(unset == set);
+}
+
+
+void
+NetworkAddressTest::TestWildcard()
+{
+       BNetworkAddress wildcard;
+       wildcard.SetToWildcard(AF_INET);
+
+       CPPUNIT_ASSERT(wildcard.Family() == AF_INET);
+       CPPUNIT_ASSERT(wildcard.Length() == sizeof(sockaddr_in));
+       CPPUNIT_ASSERT(wildcard.Port() == 0);
+       CPPUNIT_ASSERT(((sockaddr_in&)wildcard.SockAddr()).sin_addr.s_addr
+               == INADDR_ANY);
+
+       BNetworkAddress null(AF_INET, NULL);
+       CPPUNIT_ASSERT(wildcard == null);
+}
+
+
+void
+NetworkAddressTest::TestIsLocal()
+{
+       BNetworkAddress local(AF_INET, "localhost");
+       CPPUNIT_ASSERT(local.IsLocal());
+
+       BNetworkAddress google(AF_INET, "google.com");
+       CPPUNIT_ASSERT(!google.IsLocal());
+}
+
+
+void
+NetworkAddressTest::TestFlatten()
+{
+       // IPv4
+
+       BNetworkAddress ipv4(AF_INET, "localhost", 9999);
+
+       char buffer[256];
+       CPPUNIT_ASSERT(ipv4.Flatten(buffer, sizeof(buffer)) == B_OK);
+
+       BNetworkAddress unflattened;
+       CPPUNIT_ASSERT(unflattened.Unflatten(B_NETWORK_ADDRESS_TYPE, buffer,
+               sizeof(buffer)) == B_OK);
+
+       // unflatten buffer too small
+       CPPUNIT_ASSERT(unflattened.Unflatten(B_NETWORK_ADDRESS_TYPE, buffer, 0)
+               != B_OK);
+       CPPUNIT_ASSERT(unflattened.Unflatten(B_NETWORK_ADDRESS_TYPE, buffer, 3)
+               != B_OK);
+       CPPUNIT_ASSERT(unflattened.Unflatten(B_NETWORK_ADDRESS_TYPE, buffer, 16)
+               != B_OK);
+
+       CPPUNIT_ASSERT(ipv4 == unflattened);
+}
+
+
+/*static*/ void
+NetworkAddressTest::AddTests(BTestSuite& parent)
+{
+       CppUnit::TestSuite& suite = *new 
CppUnit::TestSuite("NetworkAddressTest");
+
+       suite.addTest(new CppUnit::TestCaller<NetworkAddressTest>(
+               "NetworkAddressTest::TestUnset", 
&NetworkAddressTest::TestUnset));
+       suite.addTest(new CppUnit::TestCaller<NetworkAddressTest>(
+               "NetworkAddressTest::TestWildcard", 
&NetworkAddressTest::TestWildcard));
+       suite.addTest(new CppUnit::TestCaller<NetworkAddressTest>(
+               "NetworkAddressTest::TestIsLocal", 
&NetworkAddressTest::TestIsLocal));
+       suite.addTest(new CppUnit::TestCaller<NetworkAddressTest>(
+               "NetworkAddressTest::TestFlatten", 
&NetworkAddressTest::TestFlatten));
+
+       parent.addTest("NetworkAddressTest", &suite);
+}

Added: haiku/trunk/src/tests/kits/net/libnetapi/NetworkAddressTest.h
===================================================================
--- haiku/trunk/src/tests/kits/net/libnetapi/NetworkAddressTest.h               
                (rev 0)
+++ haiku/trunk/src/tests/kits/net/libnetapi/NetworkAddressTest.h       
2010-12-01 17:33:09 UTC (rev 39694)
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2010, Axel Dörfler, axeld@xxxxxxxxxxxxxxxxx
+ * Distributed under the terms of the MIT License.
+ */
+#ifndef NETWORK_ADDRESS_TEST_H
+#define NETWORK_ADDRESS_TEST_H
+
+
+#include <TestCase.h>
+#include <TestSuite.h>
+
+
+class NetworkAddressTest : public CppUnit::TestCase {
+public:
+                                                               
NetworkAddressTest();
+       virtual                                         ~NetworkAddressTest();
+
+                       void                            TestUnset();
+                       void                            TestWildcard();
+                       void                            TestIsLocal();
+                       void                            TestFlatten();
+
+       static  void                            AddTests(BTestSuite& suite);
+};
+
+
+#endif // NETWORK_ADDRESS_TEST_H


Other related posts:

  • » [haiku-commits] r39694 - in haiku/trunk/src/tests/kits/net: . libnetapi - axeld