From 58d904a328c0d849769b483e901a0be9426b8209 Mon Sep 17 00:00:00 2001 From: liuxiaolong <liuxiaolong@aiotlink.com> Date: 星期二, 20 七月 2021 20:20:44 +0800 Subject: [PATCH] 调整Request C.BHFree的位置 --- utest/simple_tests.cpp | 65 +++++++++----------------------- 1 files changed, 18 insertions(+), 47 deletions(-) diff --git a/utest/simple_tests.cpp b/utest/simple_tests.cpp index 06093fd..c7f277c 100644 --- a/utest/simple_tests.cpp +++ b/utest/simple_tests.cpp @@ -29,33 +29,19 @@ SharedMemory shm(shm_name, 1024 * 1024 * 10); auto Avail = [&]() { return shm.get_free_memory(); }; - offset_ptr<const void> p; - BOOST_CHECK(!p); - BOOST_CHECK(p.get() == 0); - p = 0; - BOOST_CHECK(!p); - BOOST_CHECK(p.get() == 0); - const char *str = "basic"; - p = str; - BOOST_CHECK(p); - BOOST_CHECK(p.get() == str); - p = 0; - BOOST_CHECK(!p); - BOOST_CHECK(p.get() == 0); - auto init_avail = Avail(); auto BasicTest = [&](int tid, int nloop) { auto Code = [&](int id) { - typedef ShmObject<s1000> Int; + typedef NamedShmObject<s1000> Int; std::string name = std::to_string(id); - auto a0 = Avail(); - Int i1(shm, name); + auto a0 = Avail(); + Int i1(shm, name, eOpenOrCreate); auto a1 = Avail(); BOOST_CHECK_LT(a1, a0); printf("s1000 size: %ld\n", a0 - a1); i1->a[0] = 5; - Int i2(shm, name); + Int i2(shm, name, eOpenOrCreate); auto a2 = Avail(); BOOST_CHECK_EQUAL(a1, a2); BOOST_CHECK_EQUAL(i1.data(), i2.data()); @@ -64,7 +50,7 @@ { auto old = Avail(); - void *p = shm.Alloc(1024); + void *p = shm.Alloc(1024); shm.Dealloc(p); BOOST_CHECK_EQUAL(old, Avail()); } @@ -80,7 +66,7 @@ // boost::timer::auto_cpu_timer timer; ThreadManager threads; int nthread = 1; - int nloop = 1; + int nloop = 1; for (int i = 0; i < nthread; ++i) { threads.Launch(BasicTest, i, nloop); } @@ -104,37 +90,22 @@ } } -BOOST_AUTO_TEST_CASE(TimedWaitTest) -{ - const std::string shm_name("shm_wait"); - ShmRemover auto_remove(shm_name); - SharedMemory shm(shm_name, 1024 * 1024); - ShmMsgQueue q(shm, 64); - for (int i = 0; i < 2; ++i) { - int ms = i * 100; - printf("Timeout Test %4d: ", ms); - boost::timer::auto_cpu_timer timer; - BHMsg msg; - bool r = q.Recv(msg, ms); - BOOST_CHECK(!r); - } -} - BOOST_AUTO_TEST_CASE(RefCountTest) { - const std::string shm_name("ShmRefCount"); - ShmRemover auto_remove(shm_name); - SharedMemory shm(shm_name, 1024 * 1024); + SharedMemory &shm = TestShm(); + typedef MsgI Msg; + GlobalInit(shm); - MsgI m0(shm.Alloc(1000), shm.New<RefCount>()); - BOOST_CHECK(m0.IsCounted()); + Msg m0(1000, shm); + BOOST_CHECK(!m0.valid()); + m0.Make(100); BOOST_CHECK_EQUAL(m0.Count(), 1); - MsgI m1 = m0; - BOOST_CHECK(m1.IsCounted()); + Msg m1 = m0; + BOOST_CHECK(m1.valid()); BOOST_CHECK_EQUAL(m1.AddRef(), 2); BOOST_CHECK_EQUAL(m0.AddRef(), 3); - BOOST_CHECK_EQUAL(m0.Release(shm), 2); - BOOST_CHECK_EQUAL(m0.Release(shm), 1); - BOOST_CHECK_EQUAL(m1.Release(shm), 0); - BOOST_CHECK(!m1.IsCounted()); + BOOST_CHECK_EQUAL(m0.Release(), 2); + BOOST_CHECK_EQUAL(m0.Release(), 1); + BOOST_CHECK_EQUAL(m1.Release(), 0); + BOOST_CHECK(!m1.valid()); } -- Gitblit v1.8.0