lichao
2021-03-25 a22dd242713636fad33ee5965fe0900a425ce50d
utest/utest.cpp
@@ -1,6 +1,4 @@
#include <stdio.h>
#include "../src/shm.h"
#include "../src/bh_util.h"
#include <string>
#include <vector>
#include <thread>
@@ -12,6 +10,8 @@
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/microsec_time_clock.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include "shm_queue.h"
#include "bh_util.h"
using namespace std::chrono_literals;
using namespace bhome_shm;
@@ -48,7 +48,7 @@
    ~ShmRemover() { SharedMemory::Remove(name_); }
};
BOOST_AUTO_TEST_CASE(ShmBasic)
BOOST_AUTO_TEST_CASE(ShmBasicTest)
{
    const std::string shm_name("basic");
    ShmRemover auto_remove(shm_name);
@@ -105,7 +105,7 @@
    BOOST_CHECK_EQUAL(init_avail, Avail());
}
BOOST_AUTO_TEST_CASE(TimedWait)
BOOST_AUTO_TEST_CASE(TimedWaitTest)
{
    const std::string shm_name("shm_wait");
    ShmRemover auto_remove(shm_name);
@@ -123,7 +123,32 @@
    }
}
BOOST_AUTO_TEST_CASE(MsgHeader)
BOOST_AUTO_TEST_CASE(RefCountTest)
{
    const std::string shm_name("ShmRefCount");
    ShmRemover auto_remove(shm_name);
    SharedMemory shm(shm_name, 1024*1024);
    Msg m0(shm.allocate(1000), shm.New<RefCount>());
    BOOST_CHECK_EQUAL(m0.AddRef(), 1);
    Msg m1 = m0;
    BOOST_CHECK_EQUAL(m1.AddRef(), 2);
    BOOST_CHECK_EQUAL(m0.AddRef(), 3);
    BOOST_CHECK_EQUAL(m0.RemoveRef(), 2);
    BOOST_CHECK_EQUAL(m0.RemoveRef(), 1);
    BOOST_CHECK_EQUAL(m1.RemoveRef(), 0);
    {
        Msg::CountGuard guard(m0);
        BOOST_CHECK_EQUAL(m1.AddRef(), 2);
        {
            Msg::CountGuard guard(m0);
            BOOST_CHECK_EQUAL(m1.RemoveRef(), 2);
        }
    }
    BOOST_CHECK_EQUAL(m1.Count(), 0);
}
BOOST_AUTO_TEST_CASE(MsgHeaderTest)
{
    MsgMetaV1 head;
    BOOST_CHECK_EQUAL(head.self_size_, sizeof(head));
@@ -146,7 +171,7 @@
    BOOST_CHECK_EQUAL(memcmp(&head, &result, sizeof(head)), 0);
}
BOOST_AUTO_TEST_CASE(RequestReply)
BOOST_AUTO_TEST_CASE(RequestReplyTest)
{
    const std::string shm_name("ShmReqRep");
    ShmRemover auto_remove(shm_name);
@@ -191,7 +216,7 @@
                auto cur = Now();
                if (last_time.exchange(cur) != cur) {
                    std::cout << "time: " << Now();
                    printf(", total msg:%10ld, speed:%8ld, used mem:%8ld\n",  count.load(), count - last_count.exchange(count), init_avail - Avail());
                    printf(", total msg:%10ld, speed:%8ld/s, used mem:%8ld\n",  count.load(), count - last_count.exchange(count), init_avail - Avail());
                    last_time = cur;
                }