From e4820fb700a8882e984274939b7d78b3e9ce5334 Mon Sep 17 00:00:00 2001
From: Irene Y Zhang <iyzhang@cs.washington.edu>
Date: Tue, 23 Jun 2015 09:41:46 -0700
Subject: [PATCH] updating VR test cases

---
 lib/udptransport.cc             | 24 ++++++++++++------------
 lib/udptransport.h              | 20 ++++++++++----------
 replication/common/client.cc    |  2 +-
 replication/common/log.cc       |  2 +-
 replication/common/replica.cc   |  2 +-
 replication/vr/tests/vr-test.cc | 33 ++++++++++++++++++++++-----------
 6 files changed, 47 insertions(+), 36 deletions(-)

diff --git a/lib/udptransport.cc b/lib/udptransport.cc
index 144be69..d2f0e2a 100644
--- a/lib/udptransport.cc
+++ b/lib/udptransport.cc
@@ -29,10 +29,10 @@
  *
  **********************************************************************/
 
-#include "paxos-lib/lib/assert.h"
-#include "paxos-lib/lib/configuration.h"
-#include "paxos-lib/lib/message.h"
-#include "paxos-lib/lib/udptransport.h"
+#include "lib/assert.h"
+#include "lib/configuration.h"
+#include "lib/message.h"
+#include "lib/udptransport.h"
 
 #include <google/protobuf/message.h>
 #include <event2/event.h>
@@ -83,7 +83,7 @@ bool operator<(const UDPTransportAddress &a, const UDPTransportAddress &b)
 }
 
 UDPTransportAddress
-UDPTransport::LookupAddress(const replication::ReplicaAddress &addr)
+UDPTransport::LookupAddress(const transport::ReplicaAddress &addr)
 {
     int res;
     struct addrinfo hints;
@@ -106,15 +106,15 @@ UDPTransport::LookupAddress(const replication::ReplicaAddress &addr)
 }
 
 UDPTransportAddress
-UDPTransport::LookupAddress(const replication::Configuration &config,
+UDPTransport::LookupAddress(const transport::Configuration &config,
                             int idx)
 {
-    const replication::ReplicaAddress &addr = config.replica(idx);
+    const transport::ReplicaAddress &addr = config.replica(idx);
     return LookupAddress(addr);
 }
 
 const UDPTransportAddress *
-UDPTransport::LookupMulticastAddress(const replication::Configuration
+UDPTransport::LookupMulticastAddress(const transport::Configuration
                                      *config)
 {
     if (!config->multicast()) {
@@ -232,7 +232,7 @@ UDPTransport::~UDPTransport()
 }
 
 void
-UDPTransport::ListenOnMulticastPort(const replication::Configuration
+UDPTransport::ListenOnMulticastPort(const transport::Configuration
                                     *canonicalConfig)
 {
     if (!canonicalConfig->multicast()) {
@@ -298,13 +298,13 @@ UDPTransport::ListenOnMulticastPort(const replication::Configuration
 
 void
 UDPTransport::Register(TransportReceiver *receiver,
-                       const replication::Configuration &config,
+                       const transport::Configuration &config,
                        int replicaIdx)
 {
     ASSERT(replicaIdx < config.n);
     struct sockaddr_in sin;
 
-    const replication::Configuration *canonicalConfig =
+    const transport::Configuration *canonicalConfig =
         RegisterConfiguration(receiver, config, replicaIdx);
 
     // Create socket
@@ -624,7 +624,7 @@ UDPTransport::OnReadable(int fd)
             // If so, deliver the message to all replicas for that
             // config, *except* if that replica was the sender of the
             // message.
-            const replication::Configuration *cfg = it->second;
+            const transport::Configuration *cfg = it->second;
             for (auto &kv : replicaReceivers[cfg]) {
                 TransportReceiver *receiver = kv.second;
                 const UDPTransportAddress &raddr = 
diff --git a/lib/udptransport.h b/lib/udptransport.h
index 6a52f56..914cbf0 100644
--- a/lib/udptransport.h
+++ b/lib/udptransport.h
@@ -32,9 +32,9 @@
 #ifndef _LIB_UDPTRANSPORT_H_
 #define _LIB_UDPTRANSPORT_H_
 
-#include "paxos-lib/lib/configuration.h"
-#include "paxos-lib/lib/transport.h"
-#include "paxos-lib/lib/transportcommon.h"
+#include "lib/configuration.h"
+#include "lib/transport.h"
+#include "lib/transportcommon.h"
 
 #include <event2/event.h>
 
@@ -69,7 +69,7 @@ public:
                  int dscp = 0, event_base *evbase = nullptr);
     virtual ~UDPTransport();
     void Register(TransportReceiver *receiver,
-                  const replication::Configuration &config,
+                  const transport::Configuration &config,
                   int replicaIdx);
     void Run();
     void Stop();
@@ -106,8 +106,8 @@ private:
     std::vector<event *> signalEvents;
     std::map<int, TransportReceiver*> receivers; // fd -> receiver
     std::map<TransportReceiver*, int> fds; // receiver -> fd
-    std::map<const replication::Configuration *, int> multicastFds;
-    std::map<int, const replication::Configuration *> multicastConfigs;
+    std::map<const transport::Configuration *, int> multicastFds;
+    std::map<int, const transport::Configuration *> multicastConfigs;
     int lastTimerId;
     std::map<int, UDPTransportTimerInfo *> timers;
     uint64_t lastFragMsgId;
@@ -122,13 +122,13 @@ private:
                              const UDPTransportAddress &dst,
                              const Message &m, bool multicast = false);
     UDPTransportAddress
-    LookupAddress(const replication::ReplicaAddress &addr);
+    LookupAddress(const transport::ReplicaAddress &addr);
     UDPTransportAddress
-    LookupAddress(const replication::Configuration &cfg,
+    LookupAddress(const transport::Configuration &cfg,
                   int replicaIdx);
     const UDPTransportAddress *
-    LookupMulticastAddress(const replication::Configuration *cfg);
-    void ListenOnMulticastPort(const replication::Configuration
+    LookupMulticastAddress(const transport::Configuration *cfg);
+    void ListenOnMulticastPort(const transport::Configuration
                                *canonicalConfig);
     void OnReadable(int fd);
     void OnTimer(UDPTransportTimerInfo *info);
diff --git a/replication/common/client.cc b/replication/common/client.cc
index 76c3e36..9969b4f 100644
--- a/replication/common/client.cc
+++ b/replication/common/client.cc
@@ -37,7 +37,7 @@
 
 namespace replication {
     
-Client::Client(const Configuration &config, Transport *transport,
+Client::Client(const transport::Configuration &config, Transport *transport,
                uint64_t clientid)
     : config(config), transport(transport)
 {
diff --git a/replication/common/log.cc b/replication/common/log.cc
index 70c4e2c..35ac8cb 100644
--- a/replication/common/log.cc
+++ b/replication/common/log.cc
@@ -28,7 +28,7 @@
  *
  **********************************************************************/
 
-#include "replicationcommon/log.h"
+#include "replication/common/log.h"
 #include "replication/common/request.pb.h"
 #include "lib/assert.h"
 
diff --git a/replication/common/replica.cc b/replication/common/replica.cc
index 281c31a..92777bb 100644
--- a/replication/common/replica.cc
+++ b/replication/common/replica.cc
@@ -34,7 +34,7 @@
 #include "replication/common/log.h"
 #include "replication/common/replica.h"
 
-#include "replication/lib/message.h"
+#include "lib/message.h"
 
 #include <stdlib.h>
 
diff --git a/replication/vr/tests/vr-test.cc b/replication/vr/tests/vr-test.cc
index e61c8b6..aec96b5 100644
--- a/replication/vr/tests/vr-test.cc
+++ b/replication/vr/tests/vr-test.cc
@@ -53,6 +53,25 @@ using namespace replication;
 using namespace replication::vr;
 using namespace replication::vr::proto;
 
+class VRApp : public AppReplica {
+
+    std::vector<string> *ops;
+    std::vector<string> *unloggedOps;
+
+public:
+    VRApp(std::vector<string> *o, std::vector<string> *u) : ops(o), unloggedOps(u) { }
+    
+    void ReplicaUpcall(Replica *r, opnum_t opnum, const string &req, string &reply) {
+        ops->push_back(req);
+        reply = "reply: " + req;
+    }
+
+    void UnloggedUpcall(Replica *r, const string &req, string &reply) {
+        unloggedOps->push_back(req);
+        reply = "unlreply: " + req;
+    }
+};
+    
 class VRTest : public  ::testing::TestWithParam<int>
 {
 protected:
@@ -77,15 +96,7 @@ protected:
         unloggedOps.resize(config->n);
 
         for (int i = 0; i < config->n; i++) {
-            replicas.push_back(new VRReplica(*config, i, transport, GetParam(),
-                                             [i,this](Replica *r, opnum_t opnum, const string &req, string &reply) {
-                                                 ops[i].push_back(req);
-                                                 reply = "reply: " + req;
-                                             },
-                                   [i,this](Replica *r, const string &req, string &reply) {
-                                                 unloggedOps[i].push_back(req);
-                                                 reply = "unlreply: " + req;
-                                             }));
+            replicas.push_back(new VRReplica(*config, i, transport, GetParam(), new VRApp(&ops[i], &unloggedOps[i])));
         }
 
         client = new VRClient(*config, transport);
@@ -174,7 +185,7 @@ TEST_P(VRTest, Unlogged)
     ClientSendNextUnlogged(1, upcall, timeout);
     transport->Run();
 
-    for (int i = 0; i < ops.size(); i++) {
+    for (unsigned int i = 0; i < ops.size(); i++) {
         EXPECT_EQ(0, ops[i].size());
         EXPECT_EQ((i == 1 ? 1 : 0), unloggedOps[i].size());
     }
@@ -210,7 +221,7 @@ TEST_P(VRTest, UnloggedTimeout)
     ClientSendNextUnlogged(1, upcall, timeout);
     transport->Run();
 
-    for (int i = 0; i < ops.size(); i++) {
+    for (unsigned int i = 0; i < ops.size(); i++) {
         EXPECT_EQ(0, ops[i].size());
         EXPECT_EQ(0, unloggedOps[i].size());
     }
-- 
GitLab