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

Reply via email to