summaryrefslogtreecommitdiff
path: root/ACE/tests/Notification_Queue_Unit_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/tests/Notification_Queue_Unit_Test.cpp')
-rw-r--r--ACE/tests/Notification_Queue_Unit_Test.cpp329
1 files changed, 0 insertions, 329 deletions
diff --git a/ACE/tests/Notification_Queue_Unit_Test.cpp b/ACE/tests/Notification_Queue_Unit_Test.cpp
deleted file mode 100644
index 98d19f61fef..00000000000
--- a/ACE/tests/Notification_Queue_Unit_Test.cpp
+++ /dev/null
@@ -1,329 +0,0 @@
-/**
- * @file Notification_Queue_Unit_Test.cpp
- *
- * $Id$
- *
- * A unit test for the ACE_Notification_Queue class.
- *
- * @author Carlos O'Ryan <coryan@atdesk.com>
- *
- */
-
-#include "test_config.h"
-#include "ace/Notification_Queue.h"
-
-ACE_RCSID(tests,
- Notification_Queue_Unit_Test, "$Id$")
-
-#define TEST_LIST \
- ACTION(null_test) \
- ACTION(pop_returns_element_pushed) \
- ACTION(purge_empty_queue) \
- ACTION(purge_with_no_matches) \
- ACTION(purge_with_single_match) \
- ACTION(purge_with_multiple_matches) \
- ACTION(reset_empty_queue) \
- ACTION(reset_non_empty_queue) \
-
-// Declare all the tests
-#define ACTION(TEST_NAME) void TEST_NAME (char const * test_name);
-TEST_LIST
-#undef ACTION
-
-int
-run_main (int, ACE_TCHAR *[])
-{
- ACE_START_TEST (ACE_TEXT ("Notification_Queue_Unit_Test"));
-
- // Call all the tests
-#define ACTION(TEST_NAME) TEST_NAME (#TEST_NAME);
-TEST_LIST
-#undef ACTION
-
- ACE_END_TEST;
-
- return 0;
-}
-
-// There are far more elegant ways to do this. Ideally one would use
-// an existing framework (Boost.Test, TUT, CppTest). But this will
-// do for our purposes
-void test_equal(int x, int y, char const * x_msg, char const * y_msg,
- char const * error_message,
- char const * test_name, char const * filename, int lineno);
-void test_equal(void * x, void * y, char const * x_msg, char const * y_msg,
- char const * error_message,
- char const * test_name, char const * filename, int lineno);
-void test_not_equal(int x, int y, char const * x_msg, char const * y_msg,
- char const * error_message,
- char const * test_name, char const * filename, int lineno);
-void test_assert(bool predicate, char const * predicate_msg,
- char const * error_message,
- char const * test_name, char const * filename, int lineno);
-
-#define TEST_EQUAL(X, Y, MSG) \
- test_equal((X), (Y), #X, #Y, MSG, test_name, __FILE__, __LINE__)
-#define TEST_NOT_EQUAL(X, Y, MSG) \
- test_not_equal((X), (Y), #X, #Y, MSG, test_name, __FILE__, __LINE__)
-#define TEST_ASSERT(PREDICATE, MESSAGE) \
- test_assert((PREDICATE), #PREDICATE, MESSAGE, test_name, __FILE__, __LINE__)
-
-void null_test(char const * test_name)
-{
- ACE_Notification_Queue queue;
-
- TEST_EQUAL(0, 0, "Test framework failure");
- TEST_NOT_EQUAL(1, 0, "Test framework failure");
- TEST_ASSERT(true, "True is still true");
-}
-
-class Event_Handler : public ACE_Event_Handler
-{
-public:
- Event_Handler(int event_handler_id)
- : ACE_Event_Handler()
- , id (event_handler_id)
- {
- }
-
- int id;
-};
-
-void pop_returns_element_pushed(char const * test_name)
-{
- ACE_Notification_Queue queue;
-
- Event_Handler eh1(1);
- Event_Handler eh2(2);
- Event_Handler eh3(2);
-
- int result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh1,
- ACE_Event_Handler::READ_MASK));
- TEST_ASSERT(result == 1, "push[1] should return 1");
-
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::WRITE_MASK));
- TEST_ASSERT(result == 0, "push[2] should return 0");
-
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh3,
- ACE_Event_Handler::READ_MASK |
- ACE_Event_Handler::WRITE_MASK));
- TEST_ASSERT(result == 0, "push[3] should return 0");
-
- ACE_Notification_Buffer current;
- bool more_messages_queued;
- ACE_Notification_Buffer next;
-
- result = queue.pop_next_notification(current, more_messages_queued, next);
- TEST_ASSERT(result == 1, "pop[0] should return 1");
- TEST_ASSERT(more_messages_queued, "pop[0] should have more messages");
-
- TEST_EQUAL(current.eh_, &eh1, "Wrong handler extracted");
- TEST_EQUAL(current.mask_, ACE_Event_Handler::READ_MASK,
- "Wrong mask extracted");
-
- result = queue.pop_next_notification(current, more_messages_queued, next);
- TEST_ASSERT(result == 1, "pop[1] should return 1");
- TEST_ASSERT(more_messages_queued, "pop[1] should have more messages");
-
- TEST_EQUAL(current.eh_, &eh2, "Wrong handler extracted");
- TEST_EQUAL(current.mask_, ACE_Event_Handler::WRITE_MASK,
- "Wrong mask extracted");
-
- result = queue.pop_next_notification(current, more_messages_queued, next);
- TEST_ASSERT(result == 1, "pop[2] should return 1");
- TEST_ASSERT(!more_messages_queued, "pop[2] should not have more messages");
-
- TEST_EQUAL(current.eh_, &eh3, "Wrong handler extracted");
- TEST_EQUAL(current.mask_, ACE_Event_Handler::READ_MASK |
- ACE_Event_Handler::WRITE_MASK,
- "Wrong mask extracted");
-
- more_messages_queued = true;
- result = queue.pop_next_notification(current, more_messages_queued, next);
- TEST_ASSERT(result == 0, "pop[3] should return 0");
- TEST_ASSERT(!more_messages_queued, "pop[3] should not have more messages");
-}
-
-void purge_empty_queue(char const * test_name)
-{
- ACE_Notification_Queue queue;
-
- Event_Handler eh1(1);
-
- int result = queue.purge_pending_notifications(&eh1,
- ACE_Event_Handler::READ_MASK);
- TEST_ASSERT(result == 0, "purge of empty queue should return 0");
-}
-
-void purge_with_no_matches(char const * test_name)
-{
- ACE_Notification_Queue queue;
-
- Event_Handler eh1(1);
- Event_Handler eh2(2);
-
- int result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh1,
- ACE_Event_Handler::READ_MASK));
-
- result = queue.purge_pending_notifications(&eh2,
- ACE_Event_Handler::READ_MASK);
- TEST_ASSERT(result == 0, "purge of eh2 should return 0");
-
- result = queue.purge_pending_notifications(&eh1,
- ACE_Event_Handler::WRITE_MASK);
- TEST_ASSERT(result == 0, "purge of eh1/WRITE should return 0");
-}
-
-void purge_with_single_match(char const * test_name)
-{
- ACE_Notification_Queue queue;
-
- Event_Handler eh1(1);
- Event_Handler eh2(2);
-
- int result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh1,
- ACE_Event_Handler::READ_MASK |
- ACE_Event_Handler::WRITE_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh1,
- ACE_Event_Handler::WRITE_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::READ_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::WRITE_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::WRITE_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::WRITE_MASK));
-
- result = queue.purge_pending_notifications(&eh2,
- ACE_Event_Handler::READ_MASK);
- TEST_EQUAL(result, 1, "purge of eh2/READ should return 1");
-
- result = queue.purge_pending_notifications(&eh1,
- ACE_Event_Handler::READ_MASK);
- TEST_EQUAL(result, 0, "purge of eh1/READ should return 0");
-}
-
-void purge_with_multiple_matches(char const * test_name)
-{
- ACE_Notification_Queue queue;
-
- Event_Handler eh1(1);
- Event_Handler eh2(2);
-
- int result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh1,
- ACE_Event_Handler::READ_MASK |
- ACE_Event_Handler::WRITE_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh1,
- ACE_Event_Handler::WRITE_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::READ_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::WRITE_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::WRITE_MASK));
- result = queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::WRITE_MASK));
-
- result = queue.purge_pending_notifications(&eh2,
- ACE_Event_Handler::WRITE_MASK);
- TEST_EQUAL(result, 3, "purge of eh2/WRITE should return 3");
-
- result = queue.purge_pending_notifications(&eh1,
- ACE_Event_Handler::WRITE_MASK);
- TEST_EQUAL(result, 1, "purge of eh1/WRITE should return 1");
-}
-
-void reset_empty_queue(char const * /* test_name */)
-{
- ACE_Notification_Queue queue;
-
- queue.reset();
-}
-
-void reset_non_empty_queue(char const * /* test_name */)
-{
- ACE_Notification_Queue queue;
-
- Event_Handler eh1(1);
- Event_Handler eh2(2);
-
- queue.push_new_notification(
- ACE_Notification_Buffer(0,
- ACE_Event_Handler::READ_MASK));
- queue.push_new_notification(
- ACE_Notification_Buffer(&eh1,
- ACE_Event_Handler::READ_MASK));
- queue.push_new_notification(
- ACE_Notification_Buffer(&eh2,
- ACE_Event_Handler::WRITE_MASK));
- queue.push_new_notification(
- ACE_Notification_Buffer(0,
- ACE_Event_Handler::WRITE_MASK));
-
- queue.reset();
-}
-
-void test_equal(int x, int y, char const * x_msg, char const * y_msg,
- char const * error_message,
- char const * test_name, char const * filename, int lineno)
-{
- if (x == y) return;
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT("%C in (%C %C:%d) %C (%d) != %C (%d)\n"),
- error_message,
- test_name, filename, lineno,
- x_msg, x, y_msg, y));
-}
-
-void test_equal(void * x, void * y, char const * x_msg, char const * y_msg,
- char const * error_message,
- char const * test_name, char const * filename, int lineno)
-{
- if (x == y) return;
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT("%C in (%C %C:%d) %C (%@) != %C (%@)\n"),
- error_message,
- test_name, filename, lineno,
- x_msg, x, y_msg, y));
-}
-
-void test_not_equal(int x, int y, char const * x_msg, char const * y_msg,
- char const * error_message,
- char const * test_name, char const * filename, int lineno)
-{
- if (x != y) return;
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT("%C in (%C %C:%d) %C (%d) != %C (%d)\n"),
- error_message,
- test_name, filename, lineno,
- x_msg, x, y_msg, y));
-}
-
-void test_assert(bool predicate, char const * predicate_msg,
- char const * error_message,
- char const * test_name, char const * filename, int lineno)
-{
- if (predicate) return;
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT("Assertion in (%C %C:%d) %C %C\n"),
- test_name, filename, lineno,
- predicate_msg, error_message));
-}