summaryrefslogtreecommitdiffstats
path: root/src/gtest/rpc_test.cpp
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2015-08-12 15:13:25 +0300
committerimarom <imarom@cisco.com>2015-08-12 15:13:25 +0300
commit218b12788ace0683918dc335639cdd92c4e33ab5 (patch)
tree19ff4056f67be6fcf7da5c166dc5bfcab90ecab2 /src/gtest/rpc_test.cpp
parente69bd2e2858c21421e1fb05aee58746cbbfeeea5 (diff)
adding some files
unsteady version
Diffstat (limited to 'src/gtest/rpc_test.cpp')
-rw-r--r--src/gtest/rpc_test.cpp81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/gtest/rpc_test.cpp b/src/gtest/rpc_test.cpp
new file mode 100644
index 00000000..7f78efd0
--- /dev/null
+++ b/src/gtest/rpc_test.cpp
@@ -0,0 +1,81 @@
+/*
+ Itay Marom
+
+ Cisco Systems, Inc.
+*/
+
+/*
+Copyright (c) 2015-2015 Cisco Systems, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+#include <common/gtest.h>
+#include <trex_rpc_server_api.h>
+#include <zmq.h>
+#include <json/json.h>
+#include <sstream>
+
+class RpcTest : public testing::Test {
+
+ virtual void SetUp() {
+ }
+
+ virtual void TearDown() {
+ }
+};
+
+TEST_F(RpcTest, basic_rpc_test) {
+ TrexRpcServerArray rpc(TrexRpcServerArray::RPC_PROT_TCP, 5050);
+ rpc.start();
+
+ sleep(1);
+
+ printf ("Connecting to hello world server…\n");
+ void *context = zmq_ctx_new ();
+ void *requester = zmq_socket (context, ZMQ_REQ);
+ zmq_connect (requester, "tcp://localhost:5050");
+
+
+ char buffer[50];
+ Json::Value request;
+
+ int id = 1;
+ request["jsonrpc"] = "2.0";
+ request["method"] = "test_func";
+
+ Json::Value &params = request["params"];
+ params["num"] = 12;
+ params["msg"] = "hello, method test_func";
+
+ for (int request_nbr = 0; request_nbr != 10; request_nbr++) {
+ request["id"] = id++;
+
+ std::stringstream ss;
+ ss << request;
+
+ std::cout << "Sending : '" << ss.str() << "'\n";
+
+ zmq_send (requester, ss.str().c_str(), ss.str().size(), 0);
+
+ zmq_recv (requester, buffer, 50, 0);
+ printf ("Received ACK\n");
+ }
+ zmq_close (requester);
+ zmq_ctx_destroy (context);
+
+ sleep(1);
+
+ rpc.stop();
+}
+