| | |
| | | ShmRemover auto_remove(shm_name); |
| | | SharedMemory shm(shm_name, 1024*1024*10); |
| | | |
| | | 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 Avail = [&]() { return shm.get_free_memory(); }; |
| | | auto init_avail = Avail(); |
| | | |
| | |
| | | |
| | | { |
| | | auto old = Avail(); |
| | | void *p = shm.allocate(1024); |
| | | shm.deallocate(p); |
| | | void *p = shm.Alloc(1024); |
| | | shm.Dealloc(p); |
| | | BOOST_CHECK_EQUAL(old, Avail()); |
| | | } |
| | | |
| | |
| | | ShmRemover auto_remove(shm_name); |
| | | SharedMemory shm(shm_name, 1024*1024); |
| | | |
| | | Msg m0(shm.allocate(1000), shm.New<RefCount>()); |
| | | Msg m0(shm.Alloc(1000), shm.New<RefCount>()); |
| | | BOOST_CHECK_EQUAL(m0.AddRef(), 1); |
| | | Msg m1 = m0; |
| | | BOOST_CHECK_EQUAL(m1.AddRef(), 2); |
| | |
| | | BOOST_CHECK_EQUAL(head.type_, kMsgTypeNormal); |
| | | BOOST_CHECK_EQUAL(head.tag_, kMsgMetaTag); |
| | | BOOST_CHECK_EQUAL(head.data_size_, 0); |
| | | BOOST_CHECK_EQUAL(head.src_id_[5], 0); |
| | | BOOST_CHECK(head.src_id_ == boost::uuids::nil_uuid()); |
| | | |
| | | head.data_size_ = 100; |
| | | auto rand_id = boost::uuids::random_generator()(); |
| | | memcpy(head.src_id_, &rand_id, sizeof(rand_id)); |
| | | head.src_id_ = boost::uuids::random_generator()(); |
| | | head.type_ = 123; |
| | | |
| | | BOOST_CHECK_EQUAL(sizeof(head.src_id_), sizeof(rand_id)); |
| | | |
| | | char buf[100] = {0}; |
| | | head.Pack(buf); |