mirror of
https://github.com/mutouyun/cpp-ipc.git
synced 2025-12-07 01:06:45 +08:00
upd: queue ut
This commit is contained in:
parent
9be0651ae8
commit
15db3c6234
@ -2,6 +2,7 @@
|
|||||||
#include "gtest/gtest.h"
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
#include "libconcur/queue.h"
|
#include "libconcur/queue.h"
|
||||||
|
#include "libimp/log.h"
|
||||||
|
|
||||||
using namespace concur;
|
using namespace concur;
|
||||||
|
|
||||||
@ -13,8 +14,11 @@ TEST(queue, construct) {
|
|||||||
EXPECT_EQ(q1.approx_size(), 0);
|
EXPECT_EQ(q1.approx_size(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(queue, push_pop) {
|
namespace {
|
||||||
using queue_t = queue<int>;
|
|
||||||
|
template <typename PR, typename CR>
|
||||||
|
void test_queue_basic() {
|
||||||
|
using queue_t = queue<int, PR, CR>;
|
||||||
queue_t q1;
|
queue_t q1;
|
||||||
EXPECT_TRUE(q1.valid());
|
EXPECT_TRUE(q1.valid());
|
||||||
EXPECT_TRUE(q1.empty());
|
EXPECT_TRUE(q1.empty());
|
||||||
@ -32,17 +36,17 @@ TEST(queue, push_pop) {
|
|||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
auto push = [&q1, &count](int i) {
|
auto push = [&q1, &count](int i) {
|
||||||
EXPECT_TRUE(q1.push(i));
|
ASSERT_TRUE(q1.push(i));
|
||||||
EXPECT_FALSE(q1.empty());
|
ASSERT_FALSE(q1.empty());
|
||||||
++count;
|
++count;
|
||||||
EXPECT_EQ(q1.approx_size(), count);
|
ASSERT_EQ(q1.approx_size(), count);
|
||||||
};
|
};
|
||||||
auto pop = [&q1, &count](int i) {
|
auto pop = [&q1, &count](int i) {
|
||||||
int value;
|
int value;
|
||||||
EXPECT_TRUE(q1.pop(value));
|
ASSERT_TRUE(q1.pop(value));
|
||||||
EXPECT_EQ(value, i);
|
ASSERT_EQ(value, i);
|
||||||
--count;
|
--count;
|
||||||
EXPECT_EQ(q1.approx_size(), count);
|
ASSERT_EQ(q1.approx_size(), count);
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i = 0; i < 1000; ++i) {
|
for (int i = 0; i < 1000; ++i) {
|
||||||
@ -55,8 +59,26 @@ TEST(queue, push_pop) {
|
|||||||
for (int i = 0; i < default_circle_buffer_size; ++i) {
|
for (int i = 0; i < default_circle_buffer_size; ++i) {
|
||||||
push(i);
|
push(i);
|
||||||
}
|
}
|
||||||
EXPECT_FALSE(q1.push(65536));
|
ASSERT_FALSE(q1.push(65536));
|
||||||
for (int i = 0; i < default_circle_buffer_size; ++i) {
|
for (int i = 0; i < default_circle_buffer_size; ++i) {
|
||||||
pop(i);
|
pop(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
TEST(queue, push_pop) {
|
||||||
|
test_queue_basic<relation::single, relation::single>();
|
||||||
|
test_queue_basic<relation::single, relation::multi >();
|
||||||
|
test_queue_basic<relation::multi , relation::multi >();
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
template <typename PR, typename CR>
|
||||||
|
void test_queue(std::size_t np, std::size_t nc) {
|
||||||
|
LIBIMP_LOG_();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
Loading…
x
Reference in New Issue
Block a user