From 77a6c3512a44dfe6540dde71946e6484fe4f173f Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期一, 10 五月 2021 16:05:28 +0800
Subject: [PATCH] test lock code.

---
 utest/api_test.cpp |   91 ++-------------------------------------------
 1 files changed, 4 insertions(+), 87 deletions(-)

diff --git a/utest/api_test.cpp b/utest/api_test.cpp
index 6577b51..bd59c7f 100644
--- a/utest/api_test.cpp
+++ b/utest/api_test.cpp
@@ -102,91 +102,6 @@
 using namespace std::chrono;
 // using namespace std::chrono_literals;
 
-BOOST_AUTO_TEST_CASE(MutexTest)
-{
-	// typedef robust::CasMutex<true> RobustMutex;
-	typedef MutexWithPidCheck RobustMutex;
-
-	for (int i = 0; i < 20; ++i) {
-		int size = i;
-		int left = size & 7;
-		int rsize = size + ((8 - left) & 7);
-		printf("size: %3d, rsize: %3d\n", size, rsize);
-	}
-	SharedMemory &shm = TestShm();
-	// shm.Remove();
-	// return;
-	GlobalInit(shm);
-
-	const std::string mtx_name("test_mutex");
-	const std::string int_name("test_int");
-	auto mtx = shm.FindOrCreate<RobustMutex>(mtx_name);
-	auto pi = shm.FindOrCreate<int>(int_name, 100);
-
-	std::mutex m;
-	typedef std::chrono::steady_clock Clock;
-	auto Now = []() { return Clock::now().time_since_epoch(); };
-	if (pi) {
-		auto old = *pi;
-		printf("int : %d, add1: %d\n", old, ++*pi);
-	}
-
-	{
-		boost::timer::auto_cpu_timer timer;
-		const int ntimes = 1000 * 1000;
-		printf("test lock/unlock %d times: ", ntimes);
-		RobustMutex mutex;
-		auto Lock = [&]() {
-			for (int i = 0; i < ntimes; ++i) {
-				mutex.lock();
-				mutex.unlock();
-			}
-		};
-		std::thread t1(Lock), t2(Lock);
-		t1.join();
-		t2.join();
-	}
-
-	auto MSFromNow = [](const int ms) {
-		using namespace boost::posix_time;
-		ptime cur = boost::posix_time::microsec_clock::universal_time();
-		return cur + millisec(ms);
-	};
-
-	auto TryLock = [&]() {
-		if (mtx->try_lock()) {
-			printf("try_lock ok\n");
-			return true;
-		} else {
-			printf("try_lock failed\n");
-			return false;
-		}
-	};
-	auto Unlock = [&]() {
-		mtx->unlock();
-		printf("unlocked\n");
-	};
-
-	if (mtx) {
-		printf("mtx exists\n");
-		if (TryLock()) {
-			auto op = [&]() {
-				if (TryLock()) {
-					Unlock();
-				}
-			};
-			op();
-			std::thread t(op);
-			t.join();
-			// Unlock();
-		} else {
-			// mtx->unlock();
-		}
-	} else {
-		printf("mtx not exists\n");
-	}
-}
-
 BOOST_AUTO_TEST_CASE(ApiTest)
 {
 	auto max_time = std::chrono::steady_clock::time_point::max();
@@ -203,6 +118,8 @@
 
 	printf("maxsec: %ld\n", CountSeconds(max_time));
 
+	// BHCleanup();
+	// return;
 	bool reg = false;
 	for (int i = 0; i < 3 && !reg; ++i) {
 		ProcInfo proc;
@@ -234,7 +151,7 @@
 		bool r = BHRegisterTopics(s.data(), s.size(), &reply, &reply_len, 1000);
 		BHFree(reply, reply_len);
 		// printf("register topic : %s\n", r ? "ok" : "failed");
-		Sleep(1s);
+		// Sleep(1s);
 	}
 
 	{ // Subscribe
@@ -367,7 +284,7 @@
 	threads.Launch(hb, &run);
 	threads.Launch(showStatus, &run);
 	int ncli = 10;
-	const uint64_t nreq = 1000 * 100;
+	const int64_t nreq = 1000 * 100;
 	for (int i = 0; i < ncli; ++i) {
 		threads.Launch(asyncRequest, nreq);
 	}

--
Gitblit v1.8.0