// $Id: Bug_3334_Regression_Test.cpp 89925 2010-04-19 12:49:11Z cbeaulac $

// ============================================================================
//
// = 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"

ACE_RCSID(tests, Bug_3334_Regression_Test, "$Id: Bug_3334_Regression_Test.cpp 89925 2010-04-19 12:49:11Z cbeaulac $")

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;
}
