mirror of
https://github.com/emqx/neuron.git
synced 2026-10-17 04:40:42 +08:00
feat: add memory cache unit test
This commit is contained in:
@@ -52,6 +52,14 @@ target_include_directories(tag_sort_test PRIVATE
|
||||
target_link_libraries(tag_sort_test neuron-base gtest_main gtest)
|
||||
#target_link_directories(modbus_point_test PRIVATE /usr/local/lib)
|
||||
|
||||
add_executable(cache_test cache_test.cc
|
||||
${CMAKE_SOURCE_DIR}/src/utils/mem_cache.c)
|
||||
target_include_directories(cache_test PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/src
|
||||
${CMAKE_SOURCE_DIR}/include
|
||||
)
|
||||
target_link_libraries(cache_test neuron-base gtest_main gtest)
|
||||
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(json_test)
|
||||
gtest_discover_tests(http_test)
|
||||
@@ -59,3 +67,4 @@ gtest_discover_tests(mqtt_test)
|
||||
gtest_discover_tests(jwt_test)
|
||||
gtest_discover_tests(base64_test)
|
||||
gtest_discover_tests(tag_sort_test)
|
||||
gtest_discover_tests(cache_test)
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <neuron.h>
|
||||
|
||||
zlog_category_t *neuron = NULL;
|
||||
|
||||
TEST(CacheTest, neu_mem_cache_create)
|
||||
{
|
||||
const size_t max_bytes = 1024 * 1024;
|
||||
const size_t max_items = 1024;
|
||||
neu_mem_cache_t *cache = neu_mem_cache_create(max_bytes, max_items);
|
||||
EXPECT_NE(nullptr, cache);
|
||||
neu_mem_cache_destroy(cache);
|
||||
}
|
||||
|
||||
TEST(CacheTest, neu_mem_cache_add)
|
||||
{
|
||||
const size_t max_bytes = 1024 * 1024;
|
||||
const size_t max_items = 1024;
|
||||
neu_mem_cache_t *cache = neu_mem_cache_create(max_bytes, max_items);
|
||||
EXPECT_NE(nullptr, cache);
|
||||
|
||||
const char * str = "hello,world!";
|
||||
cache_item_t item = {
|
||||
.size = strlen(str) + 1,
|
||||
.data = (void *) str,
|
||||
.release = NULL,
|
||||
};
|
||||
|
||||
int rc = neu_mem_cache_add(cache, &item);
|
||||
EXPECT_EQ(0, rc);
|
||||
|
||||
neu_mem_cache_destroy(cache);
|
||||
}
|
||||
|
||||
TEST(CacheTest, neu_mem_cache_used)
|
||||
{
|
||||
const size_t max_bytes = 1024 * 1024;
|
||||
const size_t max_items = 1024;
|
||||
neu_mem_cache_t *cache = neu_mem_cache_create(max_bytes, max_items);
|
||||
EXPECT_NE(nullptr, cache);
|
||||
|
||||
size_t used_bytes = 0;
|
||||
size_t used_msgs = 0;
|
||||
neu_mem_cache_used(cache, &used_bytes, &used_msgs);
|
||||
EXPECT_EQ(0, used_bytes);
|
||||
EXPECT_EQ(0, used_msgs);
|
||||
|
||||
const char * str = "hello,world!";
|
||||
cache_item_t item = {
|
||||
.size = strlen(str) + 1,
|
||||
.data = (void *) str,
|
||||
.release = NULL,
|
||||
};
|
||||
|
||||
int rc = neu_mem_cache_add(cache, &item);
|
||||
EXPECT_EQ(0, rc);
|
||||
|
||||
neu_mem_cache_used(cache, &used_bytes, &used_msgs);
|
||||
EXPECT_EQ(strlen(str) + 1, used_bytes);
|
||||
EXPECT_EQ(1, used_msgs);
|
||||
|
||||
cache_item_t item1 = neu_mem_cache_earliest(cache);
|
||||
EXPECT_NE(nullptr, item1.data);
|
||||
EXPECT_STREQ((char *) item1.data, str);
|
||||
EXPECT_EQ(item1.size, strlen(str) + 1);
|
||||
|
||||
neu_mem_cache_used(cache, &used_bytes, &used_msgs);
|
||||
EXPECT_EQ(0, used_bytes);
|
||||
EXPECT_EQ(0, used_msgs);
|
||||
|
||||
neu_mem_cache_destroy(cache);
|
||||
}
|
||||
|
||||
TEST(CacheTest, neu_mem_cache_latest)
|
||||
{
|
||||
const size_t max_bytes = 1024 * 1024;
|
||||
const size_t max_items = 1024;
|
||||
neu_mem_cache_t *cache = neu_mem_cache_create(max_bytes, max_items);
|
||||
EXPECT_NE(nullptr, cache);
|
||||
|
||||
size_t used_bytes = 0;
|
||||
size_t used_items = 0;
|
||||
neu_mem_cache_used(cache, &used_bytes, &used_items);
|
||||
EXPECT_EQ(0, used_bytes);
|
||||
EXPECT_EQ(0, used_items);
|
||||
|
||||
const char * str = "hello,world!";
|
||||
cache_item_t item = {
|
||||
.size = strlen(str) + 1,
|
||||
.data = (void *) str,
|
||||
.release = NULL,
|
||||
};
|
||||
|
||||
int rc = neu_mem_cache_add(cache, &item);
|
||||
EXPECT_EQ(0, rc);
|
||||
|
||||
neu_mem_cache_used(cache, &used_bytes, &used_items);
|
||||
EXPECT_EQ(strlen(str) + 1, used_bytes);
|
||||
EXPECT_EQ(1, used_items);
|
||||
|
||||
cache_item_t item1 = neu_mem_cache_latest(cache);
|
||||
EXPECT_NE(nullptr, item1.data);
|
||||
EXPECT_STREQ((char *) item1.data, str);
|
||||
EXPECT_EQ(item1.size, strlen(str) + 1);
|
||||
|
||||
neu_mem_cache_used(cache, &used_bytes, &used_items);
|
||||
EXPECT_EQ(0, used_bytes);
|
||||
EXPECT_EQ(0, used_items);
|
||||
|
||||
neu_mem_cache_destroy(cache);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
zlog_init("./config/dev.conf");
|
||||
neuron = zlog_get_category("neuron");
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
||||
Reference in New Issue
Block a user