diff options
Diffstat (limited to 'ACE/tests/Bug_3334_Regression_Test.cpp')
-rw-r--r-- | ACE/tests/Bug_3334_Regression_Test.cpp | 48 |
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; +} |