From 981ca0fa022524fd04af988bc798f2d697d31548 Mon Sep 17 00:00:00 2001
From: lichao <lichao@aiotlink.com>
Date: 星期三, 19 五月 2021 14:33:10 +0800
Subject: [PATCH] hide .so symbols, avoid 2+ protobuf link conflict.
---
utest/robust_test.cpp | 74 +++++++++++++++++++++++++++---------
1 files changed, 55 insertions(+), 19 deletions(-)
diff --git a/utest/robust_test.cpp b/utest/robust_test.cpp
index 0645918..ea6144c 100644
--- a/utest/robust_test.cpp
+++ b/utest/robust_test.cpp
@@ -16,6 +16,35 @@
/////////////////////////////////////////////////////////////////////////////////////////
+BOOST_AUTO_TEST_CASE(InitTest)
+{
+ AtomicReqRep rr;
+ auto client = [&]() {
+ for (int i = 0; i < 20; ++i) {
+ int64_t reply = 0;
+ bool r = rr.ClientRequest(i, reply);
+ printf("init request %d, %s, reply %d\n", i, (r ? "ok" : "failed"), reply);
+ }
+ };
+
+ bool run = true;
+ auto server = [&]() {
+ auto onReq = [](int64_t req) { return req + 100; };
+ while (run) {
+ rr.ServerProcess(onReq);
+ }
+ };
+
+ ThreadManager clients, servers;
+ servers.Launch(server);
+ for (int i = 0; i < 2; ++i) {
+ clients.Launch(client);
+ }
+ clients.WaitAll();
+ run = false;
+ servers.WaitAll();
+}
+
BOOST_AUTO_TEST_CASE(QueueTest)
{
const int nthread = 100;
@@ -39,19 +68,24 @@
std::atomic<uint64_t> nwrite(0);
std::atomic<uint64_t> writedone(0);
-#if 0
- typedef AtomicQueue<4> Rcb;
+#if 1
+ const int kPower = 0;
+ typedef AtomicQueue<kPower> Rcb;
Rcb tmp;
- BOOST_CHECK(tmp.like_empty());
+ // BOOST_CHECK(tmp.like_empty());
BOOST_CHECK(tmp.push(1));
- BOOST_CHECK(tmp.tail() == 1);
+ if (kPower != 0) {
+ BOOST_CHECK(tmp.tail() == 1);
+ }
BOOST_CHECK(tmp.head() == 0);
int64_t d;
BOOST_CHECK(tmp.pop(d));
- BOOST_CHECK(tmp.like_empty());
- BOOST_CHECK(tmp.head() == 1);
- BOOST_CHECK(tmp.tail() == 1);
+ if (kPower != 0) {
+ // BOOST_CHECK(tmp.like_empty());
+ BOOST_CHECK(tmp.head() == 1);
+ BOOST_CHECK(tmp.tail() == 1);
+ }
ShmObject<Rcb> rcb(shm, "test_rcb");
bool try_more = true;
@@ -166,18 +200,20 @@
BOOST_AUTO_TEST_CASE(MutexTest)
{
{
- int fd = open("/tmp/test_fmutex", O_CREAT | O_RDONLY, 0666);
- flock(fd, LOCK_EX);
- printf("lock 1");
+ int sem_id = semget(100, 1, 0666 | IPC_CREAT);
+ auto P = [&]() {
+ sembuf op = {0, -1, SEM_UNDO};
+ semop(sem_id, &op, 1);
+ };
+ auto V = [&]() {
+ sembuf op = {0, 1, SEM_UNDO};
+ semop(sem_id, &op, 1);
+ };
+ for (int i = 0; i < 10; ++i) {
+ V();
+ }
Sleep(10s);
- flock(fd, LOCK_EX);
- printf("lock 2");
- Sleep(10s);
- flock(fd, LOCK_UN);
- printf("un lock 2");
- Sleep(10s);
- flock(fd, LOCK_UN);
- printf("un lock 1");
+
return;
}
@@ -204,7 +240,7 @@
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);
--
Gitblit v1.8.0