From 02ba913dc7bb5d711471b27f2ea23a897d0f2e28 Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期五, 23 四月 2021 15:34:26 +0800
Subject: [PATCH] bind msgi to shm, change offset_ptr to abs offset.

---
 utest/speed_test.cpp |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/utest/speed_test.cpp b/utest/speed_test.cpp
index 5de3c93..4615c53 100644
--- a/utest/speed_test.cpp
+++ b/utest/speed_test.cpp
@@ -22,16 +22,16 @@
 
 BOOST_AUTO_TEST_CASE(SpeedTest)
 {
-	const std::string shm_name("ShmSpeed");
-	ShmRemover auto_remove(shm_name);
 	const int mem_size = 1024 * 1024 * 50;
+	SharedMemory &shm = TestShm();
+	MsgI::BindShm(shm);
+
 	MQId id = boost::uuids::random_generator()();
 	const int timeout = 1000;
 	const uint32_t data_size = 4000;
 	const std::string proc_id = "demo_proc";
 
 	auto Writer = [&](int writer_id, uint64_t n) {
-		SharedMemory shm(shm_name, mem_size);
 		ShmMsgQueue mq(shm, 64);
 		std::string str(data_size, 'a');
 		MsgI msg;
@@ -39,22 +39,21 @@
 		body.set_topic("topic");
 		body.set_data(str);
 		auto head(InitMsgHead(GetType(body), proc_id));
-		msg.Make(shm, head, body);
+		msg.Make(head, body);
 		assert(msg.valid());
-		DEFER1(msg.Release(shm););
+		DEFER1(msg.Release(););
 
 		for (uint64_t i = 0; i < n; ++i) {
 			while (!mq.TrySend(id, msg)) {}
 		}
 	};
 	auto Reader = [&](int reader_id, std::atomic<bool> *run, bool isfork) {
-		SharedMemory shm(shm_name, mem_size);
 		ShmMsgQueue mq(id, shm, 1000);
 		while (*run) {
 			MsgI msg;
 			BHMsgHead head;
 			if (mq.Recv(msg, timeout)) {
-				DEFER1(msg.Release(shm));
+				DEFER1(msg.Release());
 				// ok
 			} else if (isfork) {
 				exit(0); // for forked quit after 1s.
@@ -62,7 +61,6 @@
 		}
 	};
 	auto State = [&](std::atomic<bool> *run) {
-		SharedMemory shm(shm_name, mem_size);
 		auto init = shm.get_free_memory();
 		printf("shm init : %ld\n", init);
 		while (*run) {
@@ -116,8 +114,6 @@
 // Send Recv Test
 BOOST_AUTO_TEST_CASE(SRTest)
 {
-	const std::string shm_name("ShmSendRecv");
-	ShmRemover auto_remove(shm_name);
 	const int qlen = 64;
 	const size_t msg_length = 100;
 	std::string msg_content(msg_length, 'a');
@@ -125,7 +121,9 @@
 	const std::string client_proc_id = "client_proc";
 	const std::string server_proc_id = "server_proc";
 
-	SharedMemory shm(shm_name, 1024 * 1024 * 512);
+	SharedMemory &shm = TestShm();
+	MsgI::BindShm(shm);
+
 	auto Avail = [&]() { return shm.get_free_memory(); };
 	auto init_avail = Avail();
 	ShmSocket srv(shm, qlen);
@@ -174,7 +172,7 @@
 
 		while (!stop) {
 			if (srv.SyncRecv(req, req_head, 10)) {
-				DEFER1(req.Release(shm));
+				DEFER1(req.Release());
 
 				if (req.ParseHead(req_head) && req_head.type() == kMsgTypeRequestTopic) {
 					auto &mqid = req_head.route()[0].mq_id();

--
Gitblit v1.8.0