summaryrefslogtreecommitdiff
path: root/ACE/tests/Bug_3334_Regression_Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/tests/Bug_3334_Regression_Test.cpp')
-rw-r--r--ACE/tests/Bug_3334_Regression_Test.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/ACE/tests/Bug_3334_Regression_Test.cpp b/ACE/tests/Bug_3334_Regression_Test.cpp
new file mode 100644
index 00000000000..475a25a3dc7
--- /dev/null
+++ b/ACE/tests/Bug_3334_Regression_Test.cpp
@@ -0,0 +1,48 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// tests
+//
+// = DESCRIPTION
+// This test exercises ACE_Service_Config SEGV during shutdown when
+// Modules get double deleted. Once by Stream parent,
+// once by ACE_Service_Repository
+//
+// = AUTHOR
+// Chad Beaulac <chad@objectivesolutions.com>
+//
+// ============================================================================
+
+#include "test_config.h"
+#include "ace/Log_Msg.h"
+#include "ace/Service_Config.h"
+
+
+
+int
+run_main (int, ACE_TCHAR *argv[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3334_Regression_Test"));
+
+ ACE_TCHAR *_argv[3] = { argv[0],
+ const_cast<ACE_TCHAR*> (ACE_TEXT ("-f")),
+ const_cast<ACE_TCHAR*>
+ (ACE_TEXT ("Bug_3334_Regression_Test.conf")) };
+ int status;
+ if ((status = ACE_Service_Config::open (3,
+ _argv,
+ ACE_DEFAULT_LOGGER_KEY,
+ true,
+ true /*ignore def svc.conf*/)) == -1)
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("open"),
+ 1));
+
+ ACE_Service_Config::fini_svcs ();
+
+ ACE_END_TEST;
+ return status;
+}