You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2009/04/09 18:17:39 UTC

svn commit: r763722 - in /qpid/trunk/qpid/cpp/src/tests: declare_queues.cpp failover_soak.cpp replaying_sender.cpp run_failover_soak

Author: aconway
Date: Thu Apr  9 16:17:39 2009
New Revision: 763722

URL: http://svn.apache.org/viewvc?rev=763722&view=rev
Log:
Add durability option to the cpp failover_soak test. 

>From Mick Goulish: https://issues.apache.org/jira/browse/QPID-1796,

Modified:
    qpid/trunk/qpid/cpp/src/tests/declare_queues.cpp
    qpid/trunk/qpid/cpp/src/tests/failover_soak.cpp
    qpid/trunk/qpid/cpp/src/tests/replaying_sender.cpp
    qpid/trunk/qpid/cpp/src/tests/run_failover_soak

Modified: qpid/trunk/qpid/cpp/src/tests/declare_queues.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/declare_queues.cpp?rev=763722&r1=763721&r2=763722&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/declare_queues.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/declare_queues.cpp Thu Apr  9 16:17:39 2009
@@ -33,14 +33,15 @@
 int main(int argc, char ** argv) 
 {
     ConnectionSettings settings;
-    if ( argc != 3 )
+    if ( argc != 4 )
     {
-      cerr << "Usage: declare_queues host port\n";
+      cerr << "Usage: declare_queues host port durability\n";
       return 1;
     }
 
     settings.host = argv[1];
     settings.port = atoi(argv[2]);
+    int durability = atoi(argv[3]);
     
     FailoverManager connection(settings);
     try {
@@ -48,7 +49,10 @@
         while (!complete) {
             Session session = connection.connect().newSession();
             try {
-                session.queueDeclare(arg::queue="message_queue");
+                if ( durability )
+                  session.queueDeclare(arg::queue="message_queue", arg::durable=true);
+                else
+                  session.queueDeclare(arg::queue="message_queue");
                 complete = true;
             } catch (const qpid::TransportFailure&) {}
         }

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=763722&r1=763721&r2=763722&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/failover_soak.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/failover_soak.cpp Thu Apr  9 16:17:39 2009
@@ -370,7 +370,8 @@
 startNewBroker ( brokerVector & brokers,
                  char const * moduleOrDir,
                  string const clusterName,
-                 int verbosity ) 
+                 int verbosity,
+                 int durable ) 
 {
     static int brokerId = 0;
     stringstream path, prefix;
@@ -394,6 +395,9 @@
         // Module path specified, load only that module.
         argv.push_back(string("--load-module=")+moduleOrDir);
         argv.push_back("--no-module-dir");
+        if ( durable ) {
+          std::cerr << "failover_soak warning: durable arg hass no effect.  Use \"dir\" option of \"moduleOrDir\".\n";
+        }
     }
     else {
         // Module directory specified, load all modules in dir.
@@ -483,7 +487,8 @@
 runDeclareQueuesClient ( brokerVector brokers, 
                             char const *  host,
                             char const *  path,
-                            int verbosity
+                            int verbosity,
+                            int durable
                           ) 
 {
     string name("declareQueues");
@@ -502,6 +507,10 @@
     argv.push_back ( "declareQueues" );
     argv.push_back ( host );
     argv.push_back ( portSs.str().c_str() );
+    if ( durable )
+      argv.push_back ( "1" );
+    else
+      argv.push_back ( "0" );
     argv.push_back ( 0 );
     pid_t pid = fork();
 
@@ -572,7 +581,8 @@
                        char const *  senderPath,
                        char const *  nMessages,
                        char const *  reportFrequency,
-                       int verbosity
+                       int verbosity,
+                       int durability
                      ) 
 {
     string name("sender");
@@ -596,6 +606,10 @@
     argv.push_back ( nMessages );
     argv.push_back ( reportFrequency );
     argv.push_back ( verbosityStr );
+    if ( durability )
+      argv.push_back ( "1" );
+    else
+      argv.push_back ( "0" );
     argv.push_back ( 0 );
 
     pid_t pid = fork();
@@ -623,14 +637,18 @@
 #define ERROR_KILLING_BROKER  8
 
 
+// If you want durability, use the "dir" option of "moduleOrDir" .
+
+
 int
 main ( int argc, char const ** argv ) 
 {    
-    if ( argc != 8 ) {
+    if ( argc != 9 ) {
         cerr << "Usage: "
              << argv[0]
-             << "moduleOrDir declareQueuesPath senderPath receiverPath nMessages reportFrequency verbosity"
+             << "moduleOrDir declareQueuesPath senderPath receiverPath nMessages reportFrequency verbosity durable"
              << endl;
+        cerr << "\tverbosity is an integer, durable is 0 or 1\n";
         return BAD_ARGS;
     }
     signal ( SIGCHLD, childExit );
@@ -643,6 +661,7 @@
     char const * nMessages          = argv[i++];
     char const * reportFrequency    = argv[i++];
     int          verbosity          = atoi(argv[i++]);
+    int          durable            = atoi(argv[i++]);
 
     char const * host               = "127.0.0.1";
     int maxBrokers = 50;
@@ -665,7 +684,8 @@
         startNewBroker ( brokers,
                          moduleOrDir, 
                          clusterName,
-                         verbosity ); 
+                         verbosity,
+                         durable ); 
     }
 
 
@@ -675,7 +695,7 @@
      // Run the declareQueues child.
      int childStatus;
      pid_t dqClientPid = 
-     runDeclareQueuesClient ( brokers, host, declareQueuesPath, verbosity );
+     runDeclareQueuesClient ( brokers, host, declareQueuesPath, verbosity, durable );
      if ( -1 == dqClientPid ) {
          cerr << "END_OF_TEST ERROR_START_DECLARE_1\n";
          return CANT_FORK_DQ;
@@ -711,7 +731,8 @@
                             senderPath, 
                             nMessages,
                             reportFrequency,
-                            verbosity );
+                            verbosity,
+                            durable );
      if ( -1 == sendingClientPid ) {
          cerr << "END_OF_TEST ERROR_START_SENDER\n";
          return CANT_FORK_SENDER;
@@ -757,7 +778,8 @@
          startNewBroker ( brokers,
                           moduleOrDir, 
                           clusterName,
-                          verbosity ); 
+                          verbosity,
+                          durable ); 
        
          if ( verbosity > 1 )
              printBrokers ( brokers );

Modified: qpid/trunk/qpid/cpp/src/tests/replaying_sender.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/replaying_sender.cpp?rev=763722&r1=763721&r2=763722&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/replaying_sender.cpp (original)
+++ qpid/trunk/qpid/cpp/src/tests/replaying_sender.cpp Thu Apr  9 16:17:39 2009
@@ -40,9 +40,10 @@
   public:
     Sender(const std::string& queue, uint count, uint reportFreq);
     void execute(AsyncSession& session, bool isRetry);
-    uint getSent();
+    uint getSent(); 
 
-    int verbosity;
+    void setVerbosity   ( int v ) { verbosity   = v; }
+    void setPersistence ( int p ) { persistence = p; }
 
   private:
     MessageReplayTracker sender;
@@ -51,9 +52,11 @@
     const uint reportFrequency;
     Message message;
     
+    int verbosity;
+    int persistence;
 };
 
-Sender::Sender(const std::string& queue, uint count_, uint reportFreq ) : sender(10), count(count_), sent(0), reportFrequency(reportFreq)
+Sender::Sender(const std::string& queue, uint count_, uint reportFreq ) : sender(10), count(count_), sent(0), reportFrequency(reportFreq), verbosity(0), persistence(0)
 {
     message.getDeliveryProperties().setRoutingKey(queue);
 }
@@ -69,6 +72,9 @@
         message_data << ++sent;
         message.setData(message_data.str());
         message.getHeaders().setInt("sn", sent);
+        if ( persistence )
+          message.getDeliveryProperties().setDeliveryMode(PERSISTENT);
+
         sender.send(message);
         if (count > reportFrequency && !(sent % reportFrequency)) {
             if ( verbosity > 0 )
@@ -91,9 +97,9 @@
 {
     ConnectionSettings settings;
 
-    if ( argc != 6 )
+    if ( argc != 7 )
     {
-      std::cerr << "Usage: replaying_sender host port n_messages report_frequency verbosity\n";
+      std::cerr << "Usage: replaying_sender host port n_messages report_frequency verbosity persistence\n";
       return 1;
     }
 
@@ -102,10 +108,12 @@
     int n_messages      = atoi(argv[3]);
     int reportFrequency = atoi(argv[4]);
     int verbosity       = atoi(argv[5]);
+    int persistence     = atoi(argv[6]);
 
     FailoverManager connection(settings);
     Sender sender("message_queue", n_messages, reportFrequency );
-    sender.verbosity = verbosity;
+    sender.setVerbosity   ( verbosity   );
+    sender.setPersistence ( persistence );
     try {
         connection.execute ( sender );
         if ( verbosity > 0 )

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=763722&r1=763721&r2=763722&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/tests/run_failover_soak (original)
+++ qpid/trunk/qpid/cpp/src/tests/run_failover_soak Thu Apr  9 16:17:39 2009
@@ -49,6 +49,7 @@
 MESSAGES=${MESSAGES:-300000}
 REPORT_FREQUENCY=${REPORT_FREQUENCY:-`expr $MESSAGES / 20`}
 VERBOSITY=${VERBOSITY:-1}
+DURABILITY=${DURABILITY:-0}
 
-exec ./failover_soak $MODULES ./declare_queues ./replaying_sender ./resuming_receiver $MESSAGES $REPORT_FREQUENCY $VERBOSITY
+exec ./failover_soak $MODULES ./declare_queues ./replaying_sender ./resuming_receiver $MESSAGES $REPORT_FREQUENCY $VERBOSITY $DURABILITY
 



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org