summaryrefslogtreecommitdiff
path: root/netsvcs/clients/Tokens/invariant
diff options
context:
space:
mode:
Diffstat (limited to 'netsvcs/clients/Tokens/invariant')
-rw-r--r--netsvcs/clients/Tokens/invariant/Makefile73
-rw-r--r--netsvcs/clients/Tokens/invariant/README27
-rw-r--r--netsvcs/clients/Tokens/invariant/invariant.cpp199
3 files changed, 0 insertions, 299 deletions
diff --git a/netsvcs/clients/Tokens/invariant/Makefile b/netsvcs/clients/Tokens/invariant/Makefile
deleted file mode 100644
index 975c1241329..00000000000
--- a/netsvcs/clients/Tokens/invariant/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-#----------------------------------------------------------------------------
-# @(#)Makefile 1.1 10/18/96
-#
-# Makefile for repeating token client application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = invariant
-
-FILES = invariant
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(LSRC:%.cpp=$(VDIR)%.o)
-SHOBJ = $(addsuffix .so,$(FILES))
-
-BUILD = $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(WRAPPER_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(WRAPPER_ROOT)/include/makeinclude/macros.GNU
-include $(WRAPPER_ROOT)/include/makeinclude/rules.common.GNU
-include $(WRAPPER_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(WRAPPER_ROOT)/include/makeinclude/rules.lib.GNU
-include $(WRAPPER_ROOT)/include/makeinclude/rules.bin.GNU
-include $(WRAPPER_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/invariant.o .shobj/invariant.so: invariant.cpp \
- $(WRAPPER_ROOT)/ace/OS.h \
- $(WRAPPER_ROOT)/ace/Time_Value.h \
- $(WRAPPER_ROOT)/ace/config.h \
- $(WRAPPER_ROOT)/ace/stdcpp.h \
- $(WRAPPER_ROOT)/ace/Trace.h \
- $(WRAPPER_ROOT)/ace/Log_Msg.h \
- $(WRAPPER_ROOT)/ace/Log_Record.h \
- $(WRAPPER_ROOT)/ace/Log_Priority.h \
- $(WRAPPER_ROOT)/ace/ACE.h \
- $(WRAPPER_ROOT)/ace/ACE.i \
- $(WRAPPER_ROOT)/ace/Log_Record.i \
- $(WRAPPER_ROOT)/ace/Get_Opt.h \
- $(WRAPPER_ROOT)/ace/Thread_Manager.h \
- $(WRAPPER_ROOT)/ace/Thread.h \
- $(WRAPPER_ROOT)/ace/Synch.h \
- $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.h \
- $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.h \
- $(WRAPPER_ROOT)/ace/SV_Semaphore_Simple.i \
- $(WRAPPER_ROOT)/ace/SV_Semaphore_Complex.i \
- $(WRAPPER_ROOT)/ace/Synch_T.h \
- $(WRAPPER_ROOT)/ace/Event_Handler.h \
- $(WRAPPER_ROOT)/ace/Token_Invariants.h \
- $(WRAPPER_ROOT)/ace/Map_Manager.h \
- $(WRAPPER_ROOT)/ace/Local_Tokens.h \
- $(WRAPPER_ROOT)/ace/Stack.h \
- $(WRAPPER_ROOT)/ace/Synch_Options.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Tokens/invariant/README b/netsvcs/clients/Tokens/invariant/README
deleted file mode 100644
index f078c2d6be4..00000000000
--- a/netsvcs/clients/Tokens/invariant/README
+++ /dev/null
@@ -1,27 +0,0 @@
-
-invariants.cpp tests the ACE Token Invariant utilities. The ACE Token
-Invariant utilities allow an application to test the correctness of
-mutex and readers/writer locks.
-
-invariants.cpp takes no command-line arguments. invariants.cpp first
-tests readers/writer locks. This is done by spawning two threads
-which simulate reader and writer acquire/renew/release loops.
-However, the loops are performed without actual locks, so the
-competing threads quickly reach and invalid state. The test should
-report this violation of readers/writer lock invariants and both
-threads should exit.
-
-The second test is for mutexes. Similar to the readers/writer lock
-test, this test spawns two threads which perform acquire/renew/release
-loops. When to two threads reach an invalid mutex state, the error
-should be reported and the threads should exit.
-
-For these two previous tests, it is theoretically possible that the
-threads never reach an invalid token state. However, it is highly
-unlikely since the threads would have to execute the same code
-simultaneously for the duration of the test. Nevertheless, it is
-possible.
-
-The last test hardwires invalid token states. It runs two mutex and
-two readers/writer lock tests. It should report "succeeded" for the
-four tests.
diff --git a/netsvcs/clients/Tokens/invariant/invariant.cpp b/netsvcs/clients/Tokens/invariant/invariant.cpp
deleted file mode 100644
index 1b623169d64..00000000000
--- a/netsvcs/clients/Tokens/invariant/invariant.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-// ============================================================================
-// $Id$
-
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// invariant.cpp
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
-
-#include "ace/OS.h"
-
-#include "ace/Get_Opt.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Token_Invariants.h"
-
-#if defined (ACE_HAS_THREADS)
-
-typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
-
-static char * rwname = "reader/writer";
-static char * mutexname = "mutex";
-
-static void *
-run_reader_writer (void *vp)
-{
- ACE_Thread_Manager *thr_mgr = (ACE_Thread_Manager*) vp;
- ACE_Thread_Control tc (thr_mgr);
-
- for (int x = 0; x < 50; x++)
- {
- int y = 0;
- for (; y < 5; y++)
- {
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired (rwname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "reader acquire violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock acquired.\n"));
- }
-
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing (rwname);
-
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired (rwname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "reader renew violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock renewed.\n"));
-
- for (; y > 0; y--)
- {
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing (rwname);
- ACE_DEBUG ((LM_DEBUG, "(%t) r-released.\n"));
- }
-
- if (ACE_TOKEN_INVARIANTS::instance ()->writer_acquired (rwname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "writer acquire violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "\t\t(%t) wlock acquired.\n"));
-
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing (rwname);
-
- if (ACE_TOKEN_INVARIANTS::instance ()->writer_acquired (rwname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "writer renew violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock renewed.\n"));
-
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing (rwname);
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) thread exiting.\n"));
- return 0;
-}
-
-static void *
-run_mutex (void *vp)
-{
- ACE_Thread_Manager *thr_mgr = (ACE_Thread_Manager*) vp;
- ACE_Thread_Control tc (thr_mgr);
-
- for (int x = 0; x < 50; x++)
- {
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired (mutexname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "mutex acquire violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) mutex acquired.\n"));
-
- ACE_TOKEN_INVARIANTS::instance ()->mutex_releasing (mutexname);
-
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired (mutexname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "mutex renew violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) mutex renewed.\n"));
-
- ACE_TOKEN_INVARIANTS::instance ()->mutex_releasing (mutexname);
- ACE_DEBUG ((LM_DEBUG, "(%t) mutex released.\n"));
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) thread exiting.\n"));
- return 0;
-}
-
-static int
-run_final_test (void)
-{
- ACE_DEBUG ((LM_DEBUG, "starting mutex tests 1 & 2\n"));
-
- // Mutex tests.
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired ("testing mutex") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "mutex test 1 failed.\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired ("testing mutex2") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "mutex test 2 failed.\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired ("testing mutex") == 0)
- ACE_DEBUG ((LM_DEBUG, "mutex test 1 succeeded.\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "mutex test 1 failed..\n"), 0);
-
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired ("testing mutex2") == 0)
- ACE_DEBUG ((LM_DEBUG, "mutex test 2 succeeded.\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "mutex test 2 failed..\n"), 0);
-
- // RW tests.
- ACE_DEBUG ((LM_DEBUG, "starting rwlock tests 1 & 2\n"));
-
- // Multiple readers.
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 1 failed.\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock 2") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 2 failed.\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 1 failed..\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock 2") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 2 failed..\n"), 0);
-
- // Writer.
- if (ACE_TOKEN_INVARIANTS::instance ()->writer_acquired ("testing rwlock") == 0)
- ACE_DEBUG ((LM_ERROR, "rwlock test 1 succeded.\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 1 failed...\n"), 0);
-
- // Releasing reader.
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing ("testing rwlock 2");
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing ("testing rwlock 2");
-
- // Writer.
- if (ACE_TOKEN_INVARIANTS::instance ()->writer_acquired ("testing rwlock 2") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 2 failed....\n"), 0);
-
- // Reader.
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock 2") == 0)
- ACE_DEBUG ((LM_DEBUG, "rwlock test 2 succeeded.\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 2 failed.....\n"), 0);
-
- return 0;
-}
-
-int
-main (int argc, char* argv[])
-{
- ACE_Thread_Manager mgr;
-
- // Run reader/writer test
- if (mgr.spawn_n (2, ACE_THR_FUNC (run_reader_writer),
- (void *) &mgr, THR_NEW_LWP | THR_DETACHED) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn failed"), -1);
-
- mgr.wait ();
-
- ACE_OS::sleep (2);
-
- // Run mutex test.
- if (mgr.spawn_n (2, ACE_THR_FUNC (run_mutex),
- (void *) &mgr, THR_NEW_LWP | THR_DETACHED) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn failed"), -1);
-
- mgr.wait ();
-
- ACE_OS::sleep (2);
-
- run_final_test ();
-
- return 42;
-}
-
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "threads not supported on this platform\n"), -1);
-}
-#endif /* ACE_HAS_THREADS */