summaryrefslogtreecommitdiff
path: root/ACE/tests/UNIX_Addr_Test.cpp
diff options
context:
space:
mode:
authorLike Ma <likemartinma@gmail.com>2019-03-12 01:39:46 +0800
committerLike Ma <likemartinma@gmail.com>2019-03-12 01:41:49 +0800
commita790e39f097980bcfadf507d69100b1869b7aba3 (patch)
treea0f2d3875c55928b3aad08fa2e9be5d9eb81b446 /ACE/tests/UNIX_Addr_Test.cpp
parent8d212501ec1031d271317055b9155d7fa9d50796 (diff)
downloadATCD-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.cpp63
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: