summaryrefslogtreecommitdiff
path: root/ACE/tests
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2019-03-12 09:47:49 +0000
committerGitHub <noreply@github.com>2019-03-12 09:47:49 +0000
commitf0272b7047cbeeb9ecc71853e0216d9df9653657 (patch)
treed496b46a9dd6c679567939664aa7e916aecc24f5 /ACE/tests
parentd539fdc40caaa2dbd113771f6bdf33ea6b2edb5b (diff)
parenta790e39f097980bcfadf507d69100b1869b7aba3 (diff)
downloadATCD-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.cpp63
-rw-r--r--ACE/tests/run_test.lst1
-rw-r--r--ACE/tests/tests.mpc7
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
+ }
+}