summaryrefslogtreecommitdiff
path: root/ACE/tests/UUID_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/tests/UUID_Test.cpp')
-rw-r--r--ACE/tests/UUID_Test.cpp129
1 files changed, 129 insertions, 0 deletions
diff --git a/ACE/tests/UUID_Test.cpp b/ACE/tests/UUID_Test.cpp
new file mode 100644
index 00000000000..6b54ea7d2d0
--- /dev/null
+++ b/ACE/tests/UUID_Test.cpp
@@ -0,0 +1,129 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = FILENAME
+// UUID_Test.cpp
+//
+// = DESCRIPTION
+// Test the ACE UUID class which generates unique id's
+//
+// = AUTHOR
+// Andrew T. Finnel <andrew@activesol.net> and
+// Yamuna Krishnmaurthy <yamuna@oomworks.com>
+// ============================================================================
+
+#include "test_config.h"
+#include "ace/UUID.h"
+#include "ace/Auto_Ptr.h"
+
+class Tester
+{
+public:
+ int init (void);
+ int test (void);
+};
+
+
+int
+Tester::init (void)
+{
+ ///Initialise the UUID Generator
+ ACE_Utils::UUID_GENERATOR::instance ()->init ();
+ return 0;
+}
+
+int
+Tester::test (void)
+{
+ int retval = 0;
+
+ // Generate UUID
+ auto_ptr <ACE_Utils::UUID> uuid (ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID ());
+ ACE_CString uuid_str (uuid->to_string ()->c_str ());
+ ACE_DEBUG ((LM_DEBUG,
+ "Generated UUID\n %s\n",
+ uuid_str.c_str ()));
+
+ // Construct UUID from string
+ ACE_Utils::UUID new_uuid (uuid_str);
+ ACE_DEBUG ((LM_DEBUG,
+ "UUID Constructed from above Generated UUID\n %s\n",
+ new_uuid.to_string ()->c_str ()));
+
+ // Construct UUID from string by assigning it
+ ACE_Utils::UUID new_uuid_assign;
+ new_uuid_assign.from_string (new_uuid.to_string ()->c_str ());
+ ACE_DEBUG ((LM_DEBUG,
+ "UUID Constructed from above Generated UUID with assign\n %s\n",
+ new_uuid_assign.to_string ()->c_str ()));
+
+ if (new_uuid != new_uuid_assign)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: UUIDs are not the same\n"));
+ retval = -1;
+ }
+
+ // Construct UUID using the copy constructor
+ ACE_Utils::UUID new_uuid_copy (new_uuid);
+ ACE_DEBUG ((LM_DEBUG,
+ "UUID Constructed from above Generated UUID with copy\n %s\n",
+ new_uuid_copy.to_string ()->c_str ()));
+
+ if (new_uuid != new_uuid_copy)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: UUIDs are not the same with copy\n"));
+ retval = -1;
+ }
+
+ // Generate UUID with process and thread ids.
+ auto_ptr <ACE_Utils::UUID> uuid_with_tp_id (ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID (0x0001,
+ 0xc0));
+ ACE_DEBUG ((LM_DEBUG,
+ "UUID with Thread and Process ID\n %s\n",
+ uuid_with_tp_id->to_string ()->c_str ()));
+
+ if (new_uuid == *uuid_with_tp_id)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: UUIDs are the same\n"));
+ retval = -1;
+ }
+
+ // Construct UUID from string
+ ACE_Utils::UUID new_uuid_with_tp_id (uuid_with_tp_id->to_string ()->c_str ());
+ ACE_DEBUG ((LM_DEBUG,
+ "UUID with Thread and Process ID reconstructed from above UUID \n %s\n",
+ new_uuid_with_tp_id.to_string ()->c_str ()));
+
+ return retval;
+}
+
+int run_main(int, ACE_TCHAR* [])
+{
+ ACE_START_TEST (ACE_TEXT ("UUID_Test"));
+
+ Tester tester;
+
+ if (tester.init () == -1)
+ {
+ ACE_DEBUG((LM_DEBUG,
+ "UUIDTest: Tester::init failed\n"));
+ return -1;
+ }
+
+ int result = tester.test();
+
+ if (result == 0)
+ ACE_DEBUG((LM_DEBUG,
+ "UUID_Test succeeded\n"));
+ else
+ ACE_ERROR((LM_ERROR,
+ "UUID_Test failed\n"));
+
+ ACE_END_TEST;
+
+ return result;
+}