diff options
Diffstat (limited to 'tests/Bug_3729_Regression_Test.cpp')
-rw-r--r-- | tests/Bug_3729_Regression_Test.cpp | 59 |
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; +} |