// $Id$ #include "ace/Get_Opt.h" #include "testC.h" #include "tao/RTCORBA/RTCORBA.h" #include "../check_supported_priorities.cpp" ACE_RCSID(Thread_Pool, client, "$Id$") const char *ior = "file://ior_1"; int iterations = 6; int shutdown_server = 0; int parse_args (int argc, char *argv[]) { ACE_Get_Opt get_opts (argc, argv, "xk:i:"); int c; while ((c = get_opts ()) != -1) switch (c) { case 'x': shutdown_server = 1; break; case 'k': ior = get_opts.opt_arg (); break; case 'i': iterations = ACE_OS::atoi (get_opts.opt_arg ()); break; case '?': default: ACE_ERROR_RETURN ((LM_ERROR, "usage: %s " "-k " "-i " "-x [shutdown server] " "\n", argv [0]), -1); } // Indicates sucessful parsing of the command line return 0; } int main (int argc, char *argv[]) { // Make sure we can support multiple priorities that are required // for this test. check_supported_priorities (); ACE_TRY_NEW_ENV { CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "" ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; int result = parse_args (argc, argv); if (result != 0) return result; CORBA::Object_var object = orb->string_to_object (ior ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; test_var test = test::_narrow (object.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; pid_t pid = ACE_OS::getpid (); for (int i = 0; i != iterations; ++i) { CORBA::Long r = test->method (pid, i ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; ACE_ASSERT (r == i); /// Assert disappears on with optimizations on. ACE_UNUSED_ARG (r); } if (shutdown_server) { test->shutdown (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; } } ACE_CATCHANY { ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Exception caught:"); return 1; } ACE_ENDTRY; return 0; }