summaryrefslogtreecommitdiff
path: root/tests/Process_Mutex_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Process_Mutex_Test.cpp')
-rw-r--r--tests/Process_Mutex_Test.cpp133
1 files changed, 0 insertions, 133 deletions
diff --git a/tests/Process_Mutex_Test.cpp b/tests/Process_Mutex_Test.cpp
deleted file mode 100644
index 483b305a495..00000000000
--- a/tests/Process_Mutex_Test.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Process_Mutex_Test.cpp
-//
-// = DESCRIPTION
-// Tests a Process Mutex shared between multiple processes
-//
-// = AUTHOR
-// Irfan Pyarali
-//
-// ============================================================================
-
-#include "ace/Synch.h"
-#include "ace/Process.h"
-#include "ace/Get_Opt.h"
-#include "test_config.h"
-
-static int release_mutex = 1;
-static int child_process = 0;
-static char *mutex_name = ACE_DEFAULT_MUTEX_A;
-
-// Explain usage and exit.
-static void
-print_usage_and_die (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "usage: %n [-d (don't release mutex)] [-c (child process)] [-n mutex name] \n"));
- ACE_OS::exit (1);
-}
-
-// Parse the command-line arguments and set options.
-static void
-parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "dcn:");
-
- int c;
-
- while ((c = get_opt ()) != -1)
- switch (c)
- {
- case 'd':
- release_mutex = 0;
- break;
- case 'c':
- child_process = 1;
- break;
- case 'n':
- mutex_name = get_opt.optarg;
- break;
- default:
- print_usage_and_die ();
- break;
- }
-}
-
-static void
-acquire_release (void)
-{
- ACE_Process_Mutex mutex (ACE_WIDE_STRING (mutex_name));
- // Make sure the constructor succeeded
- ACE_ASSERT (ACE_LOG_MSG->op_status () == 0);
- // Grab the lock
- ACE_ASSERT (mutex.acquire () == 0);
- ACE_DEBUG ((LM_DEBUG, "(%P) Mutex acquired %s\n", mutex_name));
- ACE_DEBUG ((LM_DEBUG, "(%P) Working....\n"));
- // work
- ACE_OS::sleep (2);
- // Check if we need to release the mutex
- if (release_mutex == 1)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P) Releasing the mutex %s\n", mutex_name));
- ACE_ASSERT (mutex.release () == 0);
- }
-}
-
-int
-main (int argc, char *argv[])
-{
- parse_args (argc, argv);
-
- // Child process code
- if (child_process)
- {
- ACE_APPEND_LOG ("Process_Mutex_Test-children");
- acquire_release ();
- ACE_END_LOG;
- }
- else
- {
- ACE_START_TEST ("Process_Mutex_Test");
- ACE_INIT_LOG ("Process_Mutex_Test-children");
-
- char *s_argv[6];
- s_argv[0] = "Process_Mutex_Test" ACE_PLATFORM_EXE_SUFFIX;
- s_argv[1] = "-c"; // child/slave process
- s_argv[2] = "-n";
- s_argv[3] = mutex_name;
- if (release_mutex == 0)
- s_argv[4] = "-d";
- else
- s_argv[4] = 0;
- s_argv[5] = 0;
-
- // Spawn ACE_MAX_ITERATIONS processes which will contend for the lock
- ACE_Process servers[ACE_MAX_ITERATIONS];
- int i;
-
- for (i = 0; i < ACE_MAX_ITERATIONS; i++)
- {
- ACE_ASSERT (servers[i].start (s_argv) != -1);
-
- ACE_DEBUG ((LM_DEBUG, "Server forked with pid = %d.\n", servers[i].getpid ()));
-
- }
-
- for (i = 0; i < ACE_MAX_ITERATIONS; i++)
- {
- // Wait for the process we created to exit.
- ACE_ASSERT (servers[i].wait () != -1);
- ACE_DEBUG ((LM_DEBUG, "Server %d finished\n", servers[i].getpid ()));
- }
- ACE_END_TEST;
- }
-
- return 0;
-}