summaryrefslogtreecommitdiff
path: root/tests/Bug_3729_Regression_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Bug_3729_Regression_Test.cpp')
-rw-r--r--tests/Bug_3729_Regression_Test.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/Bug_3729_Regression_Test.cpp b/tests/Bug_3729_Regression_Test.cpp
new file mode 100644
index 00000000000..05d6f5ef7f4
--- /dev/null
+++ b/tests/Bug_3729_Regression_Test.cpp
@@ -0,0 +1,59 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = FILENAME
+// Bug_3729_Regression_Test.cpp
+// ============================================================================
+
+#include "test_config.h"
+#include "ace/OS_NS_string.h"
+#include "ace/INET_Addr.h"
+#include "ace/Log_Msg.h"
+
+struct Multicast_Address
+{
+ const char *addr_;
+ bool is_multicast_;
+};
+
+int run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3729_Regression_Test"));
+
+ int status = 0; // Innocent until proven guilty
+
+ // Test is_multicast()
+ Multicast_Address mcast_addresses[] =
+ {
+ { "223.0.0.5:23006", false },
+ { "224.0.0.0:23006", true },
+ { "224.0.0.1:23006", true },
+ { "239.255.255.255:23006", true },
+ { "240.0.0.0:23006", false },
+ { "2.0.0.224", false },
+ { 0, false }
+ };
+
+ for (int i = 0; mcast_addresses[i].addr_; ++i)
+ {
+ ACE_INET_Addr addr (mcast_addresses[i].addr_);
+
+ if (addr.is_multicast () != mcast_addresses[i].is_multicast_)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("ACE_INET_Addr::is_multicast() for ")
+ ACE_TEXT ("\"%C\" incorrectly returned %d\n"),
+ mcast_addresses[i].addr_,
+ (int)addr.is_multicast ()));
+ status = 1;
+ }
+ }
+
+ ACE_END_TEST;
+
+ return status;
+}