diff options
author | Like Ma <likemartinma@gmail.com> | 2019-03-12 01:39:46 +0800 |
---|---|---|
committer | Like Ma <likemartinma@gmail.com> | 2019-03-12 01:41:49 +0800 |
commit | a790e39f097980bcfadf507d69100b1869b7aba3 (patch) | |
tree | a0f2d3875c55928b3aad08fa2e9be5d9eb81b446 /ACE/tests/UNIX_Addr_Test.cpp | |
parent | 8d212501ec1031d271317055b9155d7fa9d50796 (diff) | |
download | ATCD-a790e39f097980bcfadf507d69100b1869b7aba3.tar.gz |
Add ACE_UNIX_Addr test.
Diffstat (limited to 'ACE/tests/UNIX_Addr_Test.cpp')
-rw-r--r-- | ACE/tests/UNIX_Addr_Test.cpp | 63 |
1 files changed, 63 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: |