feat: add memory cache unit test

This commit is contained in:
gc87
2022-08-28 20:07:57 +08:00
parent c2a136a6a6
commit 2bdb38129c
7 changed files with 177 additions and 18 deletions
+9
View File
@@ -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)
+120
View File
@@ -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();
}