diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2019-03-12 09:47:49 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-12 09:47:49 +0000 |
commit | f0272b7047cbeeb9ecc71853e0216d9df9653657 (patch) | |
tree | d496b46a9dd6c679567939664aa7e916aecc24f5 /ACE/tests | |
parent | d539fdc40caaa2dbd113771f6bdf33ea6b2edb5b (diff) | |
parent | a790e39f097980bcfadf507d69100b1869b7aba3 (diff) | |
download | ATCD-f0272b7047cbeeb9ecc71853e0216d9df9653657.tar.gz |
Merge pull request #868 from likema/unix-addr-size
Fix ACE_UNIX_Addr size.
Diffstat (limited to 'ACE/tests')
-rw-r--r-- | ACE/tests/UNIX_Addr_Test.cpp | 63 | ||||
-rw-r--r-- | ACE/tests/run_test.lst | 1 | ||||
-rw-r--r-- | ACE/tests/tests.mpc | 7 |
3 files changed, 71 insertions, 0 deletions
diff --git a/ACE/tests/UNIX_Addr_Test.cpp b/ACE/tests/UNIX_Addr_Test.cpp new file mode 100644 index 00000000000..14c76a7ff0c --- /dev/null +++ b/ACE/tests/UNIX_Addr_Test.cpp @@ -0,0 +1,63 @@ +/** + * @file UNIX_Addr_Test.cpp + * @brief Performs serveral tests on ACE_UNIX_Addr class. + * @author Like Ma <likemartinma@gmail.com> + */ +#include "test_config.h" +#include "ace/OS_NS_string.h" +#include "ace/UNIX_Addr.h" +#include "ace/Log_Msg.h" +#include "ace/OS_NS_unistd.h" + +int run_main (int, ACE_TCHAR *[]) +{ + ACE_START_TEST (ACE_TEXT ("UNIX_Addr_Test")); + +#if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) + // Default ctor and empty path. + ACE_UNIX_Addr addr; + ACE_UNIX_Addr empty(""); + ACE_TEST_ASSERT (addr == empty); + ACE_TEST_ASSERT (addr.get_type () == AF_UNIX); + ACE_TEST_ASSERT (addr.get_size () == empty.get_size ()); + ACE_TEST_ASSERT (addr.hash () == empty.hash ()); + ACE_TEST_ASSERT (*addr.get_path_name () == '\0'); + ACE_TEST_ASSERT (*empty.get_path_name () == '\0'); + + ACE_TCHAR buf[MAXPATHLEN]; + ACE_TEST_ASSERT (addr.addr_to_string (buf, sizeof (buf)) == 0); + ACE_TEST_ASSERT (*buf == '\0'); + + // Set longer path by ACE_UNIX_Addr::set + int origin = addr.get_size (); + const char* path = "/tmp/ace.test"; + addr.set (path); + ACE_TEST_ASSERT (addr.get_size () > origin); + ACE_TEST_ASSERT (addr.addr_to_string (buf, sizeof (buf)) == 0); + ACE_TEST_ASSERT (strcmp(path, ACE_TEXT_ALWAYS_CHAR(buf)) == 0); + ACE_TEST_ASSERT (strcmp(path, addr.get_path_name ()) == 0); + + // Set longer path by ACE_UNIX_Addr::string_to_addr + origin = addr.get_size (); + path = "/tmp/unix_addr_test"; + addr.string_to_addr (path); + ACE_TEST_ASSERT (addr.get_size () > origin); + ACE_TEST_ASSERT (addr.addr_to_string (buf, sizeof (buf)) == 0); + ACE_TEST_ASSERT (strcmp(path, ACE_TEXT_ALWAYS_CHAR(buf)) == 0); + ACE_TEST_ASSERT (strcmp(path, addr.get_path_name ()) == 0); + + // Set shorter path by ACE_UNIX_Addr::string_to_addr + origin = addr.get_size (); + path = "/tmp/test"; + addr.string_to_addr (path); + ACE_TEST_ASSERT (addr.get_size () < origin); + ACE_TEST_ASSERT (addr.addr_to_string (buf, sizeof (buf)) == 0); + ACE_TEST_ASSERT (strcmp(path, ACE_TEXT_ALWAYS_CHAR(buf)) == 0); + ACE_TEST_ASSERT (strcmp(path, addr.get_path_name ()) == 0); +#endif // ! ACE_LACKS_UNIX_DOMAIN_SOCKETS + + ACE_END_TEST; + + return 0; +} +// vim: set ts=2 sw=2 sts=2 et: diff --git a/ACE/tests/run_test.lst b/ACE/tests/run_test.lst index 0f4f88de61f..1e09306ecd8 100644 --- a/ACE/tests/run_test.lst +++ b/ACE/tests/run_test.lst @@ -282,3 +282,4 @@ Wild_Match_Test SSL/Bug_2912_Regression_Test: SSL !ACE_FOR_TAO !BAD_AIO SSL/SSL_Asynch_Stream_Test: SSL !ACE_FOR_TAO !BAD_AIO !FIXED_BUGS_ONLY SSL/Thread_Pool_Reactor_SSL_Test: SSL +UNIX_Addr_Test diff --git a/ACE/tests/tests.mpc b/ACE/tests/tests.mpc index 04e1c9e8949..1b4b2324ea6 100644 --- a/ACE/tests/tests.mpc +++ b/ACE/tests/tests.mpc @@ -2284,3 +2284,10 @@ project(Missing_Svc_Conf_Test) : acetest { Missing_Svc_Conf_Test.cpp } } + +project(UNIX Addr Test) : acetest { + exename = UNIX_Addr_Test + Source_Files { + UNIX_Addr_Test.cpp + } +} |