Author: aconway Date: Tue Mar 31 14:20:05 2009 New Revision: 760458 URL: http://svn.apache.org/viewvc?rev=760458&view=rev Log: cpp/src/tests/failover_soak.cpp: allow it to run with all modules loaded or only the cluster module. cpp/src/tests/run_failover_soak: run failover_soak with all modules loaded by default.
Modified: qpid/trunk/qpid/cpp/src/tests/failover_soak.cpp qpid/trunk/qpid/cpp/src/tests/run_failover_soak Modified: qpid/trunk/qpid/cpp/src/tests/failover_soak.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/failover_soak.cpp?rev=760458&r1=760457&r2=760458&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/failover_soak.cpp (original) +++ qpid/trunk/qpid/cpp/src/tests/failover_soak.cpp Tue Mar 31 14:20:05 2009 @@ -361,35 +361,45 @@ } } - +bool endsWith(const char* str, const char* suffix) { + return (strlen(suffix) < strlen(str) && 0 == strcmp(str+strlen(str)-strlen(suffix), suffix)); +} void startNewBroker ( brokerVector & brokers, - char const * srcRoot, - char const * moduleDir, + char const * moduleOrDir, string const clusterName, int verbosity ) { static int brokerId = 0; - stringstream path, prefix, module; - module << moduleDir << "/cluster.so"; - path << srcRoot << "/qpidd"; + stringstream path, prefix; prefix << "soak-" << brokerId; + string dataDir("/tmp/failover_soak.XXXXXX"); + if (!mkdtemp(const_cast<char*>(dataDir.c_str()))) + throw qpid::ErrnoException("Can't create data dir"); + std::vector<std::string> argv = list_of<string> ("qpidd") - ("--no-module-dir") - ("--load-module=cluster.so") - ("--cluster-name") - (clusterName) + ("--cluster-name")(clusterName) ("--auth=no") - ("--no-data-dir") + ("--data-dir")(dataDir) ("--mgmt-enable=no") ("--log-prefix") (prefix.str()) ("--log-to-file") (prefix.str()+".log"); + if (endsWith(moduleOrDir, "cluster.so")) { + // Module path specified, load only that module. + argv.push_back(string("--load-module=")+moduleOrDir); + argv.push_back("--no-module-dir"); + } + else { + // Module directory specified, load all modules in dir. + argv.push_back(string("--module-dir=")+moduleOrDir); + } + newbie = new ForkedBroker ( argv ); newbie_port = newbie->getPort(); ForkedBroker * broker = newbie; @@ -616,24 +626,25 @@ int main ( int argc, char const ** argv ) { - if ( argc < 9 ) { - cerr << "Usage: failoverSoak srcRoot moduleDir host senderPath receiverPath nMessages verbosity\n"; - cerr << " ( argc was " << argc << " )\n"; + if ( argc != 8 ) { + cerr << "Usage: " + << argv[0] + << "moduleOrDir declareQueuesPath senderPath receiverPath nMessages reportFrequency verbosity" + << endl; return BAD_ARGS; } - signal ( SIGCHLD, childExit ); - char const * srcRoot = argv[1]; - char const * moduleDir = argv[2]; - char const * host = argv[3]; - char const * declareQueuesPath = argv[4]; - char const * senderPath = argv[5]; - char const * receiverPath = argv[6]; - char const * nMessages = argv[7]; - char const * reportFrequency = argv[8]; - int verbosity = atoi(argv[9]); + int i = 1; + char const * moduleOrDir = argv[i++]; + char const * declareQueuesPath = argv[i++]; + char const * senderPath = argv[i++]; + char const * receiverPath = argv[i++]; + char const * nMessages = argv[i++]; + char const * reportFrequency = argv[i++]; + int verbosity = atoi(argv[i++]); + char const * host = "127.0.0.1"; int maxBrokers = 50; allMyChildren.verbosity = verbosity; @@ -652,8 +663,7 @@ int nBrokers = 3; for ( int i = 0; i < nBrokers; ++ i ) { startNewBroker ( brokers, - srcRoot, - moduleDir, + moduleOrDir, clusterName, verbosity ); } @@ -745,8 +755,7 @@ cout << "Starting new broker.\n\n"; startNewBroker ( brokers, - srcRoot, - moduleDir, + moduleOrDir, clusterName, verbosity ); Modified: qpid/trunk/qpid/cpp/src/tests/run_failover_soak URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/run_failover_soak?rev=760458&r1=760457&r2=760458&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/run_failover_soak (original) +++ qpid/trunk/qpid/cpp/src/tests/run_failover_soak Tue Mar 31 14:20:05 2009 @@ -45,12 +45,10 @@ host=127.0.0.1 -src_root=.. -module_dir=$src_root/.libs - +MODULES=../.libs MESSAGES=${MESSAGES:-300000} REPORT_FREQUENCY=${REPORT_FREQUENCY:-`expr $MESSAGES / 20`} VERBOSITY=${VERBOSITY:-1} -exec ./failover_soak $src_root $module_dir $host ./declare_queues ./replaying_sender ./resuming_receiver $MESSAGES $REPORT_FREQUENCY $VERBOSITY +exec ./failover_soak $MODULES ./declare_queues ./replaying_sender ./resuming_receiver $MESSAGES $REPORT_FREQUENCY $VERBOSITY --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org