summaryrefslogtreecommitdiff
path: root/ACE/TAO/tests/Bug_3542_Regression/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/tests/Bug_3542_Regression/server.cpp')
-rw-r--r--ACE/TAO/tests/Bug_3542_Regression/server.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/ACE/TAO/tests/Bug_3542_Regression/server.cpp b/ACE/TAO/tests/Bug_3542_Regression/server.cpp
new file mode 100644
index 00000000000..f660feaf1f3
--- /dev/null
+++ b/ACE/TAO/tests/Bug_3542_Regression/server.cpp
@@ -0,0 +1,72 @@
+// $Id$
+
+#include "ace/ARGV.h"
+#include "ace/OS.h"
+#include "ace/Reactor.h"
+#include "ace/Signal.h"
+#include "ace/Service_Config.h"
+#include "ace/Log_Msg.h"
+
+
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testDllOrb",
+ "Bug_3542",
+ "_make_DllOrb",
+ "testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -NumThreads 2 -ORBDottedDecimalAddresses 1 -ORBCollocationStrategy thru_poa"
+);
+
+ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
+
+int
+ACE_TMAIN(int, ACE_TCHAR **)
+{
+ int result = 0;
+#if 0
+ ACE_Service_Config serviceConfig;
+
+ char signum[64];
+ ACE_OS::sprintf(signum, "%d", SIGUSR1);
+
+ ACE_ARGV args;
+ args.add(argv[0]);
+ args.add("-s");
+ args.add(signum);
+
+ result = serviceConfig.open (
+ args.argc(),
+ args.argv(),
+ ACE_DEFAULT_LOGGER_KEY,
+ 1, // ignore_static_svcs = 1,
+ 1, // ignore_default_svc_conf_file = 0,
+ 0 // ignore_debug_flag = 0
+ );
+ if(0 != result)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) Error: serviceConfig.open failed\n")));
+ return result;
+ }
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) serviceConfig.open done\n")));
+#endif
+
+ for(int cnt = 0; cnt < 1000; ++cnt)
+ {
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) Loading ORB cnt = %d\n"), cnt));
+ result = ACE_Service_Config::process_directive(scpc_loadOrb);
+ if(0 != result)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) Error loading ORB failed (%d)\n"), result));
+ return result;
+ }
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) Loading ORB done\n")));
+
+ result = ACE_Service_Config::process_directive(scpc_unloadOrb);
+ if(0 != result)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) Error unloading ORB failed (%d)\n"), result));
+ return result;
+ }
+ ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) Unloading ORB done\n")));
+ }
+
+ return result;
+}