summaryrefslogtreecommitdiff
path: root/ACE/TAO/tests/CSD_Collocation/Collocation.cpp
blob: 22932237fefef65f9131947e3c99dc4e636e537d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// $Id$

#include "Collocation_Tester.h"
#include "tao/Strategies/advanced_resource.h"
#include "tao/CSD_Framework/CSD_ORBInitializer.h"
#include "tao/CSD_ThreadPool/CSD_TP_Strategy_Factory.h"
#include "tao/CSD_ThreadPool/CSD_ThreadPool.h"
#include "ace/Thread_Manager.h"

ACE_RCSID(Collocation, main, "$Id$")

int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
  try
    {
      Collocation_Test coll_test;

      int orig_argc = argc;
      ACE_TCHAR **orig_argv = new ACE_TCHAR*[argc];
      for (int i = 0; i < argc; ++i)
        {
          orig_argv[i] = argv[i];
        }

      coll_test.init (argc, argv);
      coll_test.run ();
      coll_test.shutdown ();

      //reinitialize ORB to reproduce the problem
      coll_test.init (orig_argc, orig_argv);
      coll_test.run ();
      coll_test.shutdown ();

      delete[] orig_argv;
      //this will leak if we get an exception, but it's just a small test case
    }
  catch (const CORBA::Exception& ex)
    {
      ex._tao_print_exception ("Uncaught exception: ");
    }

  ACE_Thread_Manager::instance()->wait();
  return 0;
}