From 3f7dc3fd80e7fe548f89b96ab4228135dca688db Mon Sep 17 00:00:00 2001 From: Vo Trung Chi Date: Thu, 1 Aug 2019 07:38:42 +0700 Subject: using POSIX shared memory APIs (#90) (#151) Replace all Linux specific shared memory APIs with POSIX alternatives. Signed-off-by: Vo Trung Chi --- tests/CMakeLists.txt | 9 ++++++ tests/gtest_dlt_daemon_gateway.sh | 14 +++++++- tests/gtest_dlt_shm.cpp | 67 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 tests/gtest_dlt_shm.cpp (limited to 'tests') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 609a7a0..db9160c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -28,6 +28,11 @@ add_executable(dlt-test-preregister-context dlt-test-preregister-context.c) add_executable(gtest_dlt_daemon_gateway gtest_dlt_daemon_gateway.cpp ${systemd_SRCS}) add_executable(gtest_dlt_daemon_event_handler gtest_dlt_daemon_event_handler.cpp ${systemd_SRCS}) add_executable(gtest_dlt_daemon_offline_log gtest_dlt_daemon_offline_log.cpp ${systemd_SRCS}) + +if(WITH_DLT_SHM_ENABLE) + add_executable(gtest_dlt_shm gtest_dlt_shm.cpp) +endif(WITH_DLT_SHM_ENABLE) + target_link_libraries(gtest_dlt_common ${DLT_LIBRARIES}) target_link_libraries(gtest_dlt_user ${DLT_LIBRARIES}) target_link_libraries(gtest_dlt_daemon_common ${DLT_LIBRARIES}) @@ -38,6 +43,10 @@ target_link_libraries(gtest_dlt_daemon_gateway ${DLT_DAEMON_LIBRARIES}) target_link_libraries(gtest_dlt_daemon_event_handler ${DLT_DAEMON_LIBRARIES}) target_link_libraries(gtest_dlt_daemon_offline_log ${DLT_DAEMON_LIBRARIES}) +if(WITH_DLT_SHM_ENABLE) + target_link_libraries(gtest_dlt_shm ${DLT_DAEMON_LIBRARIES}) +endif(WITH_DLT_SHM_ENABLE) + if(WITH_DLT_CXX11_EXT) add_executable(dlt-test-cpp-extension dlt-test-cpp-extension.cpp) target_link_libraries(dlt-test-cpp-extension ${DLT_LIBRARIES}) diff --git a/tests/gtest_dlt_daemon_gateway.sh b/tests/gtest_dlt_daemon_gateway.sh index 6ce625b..d74f519 100755 --- a/tests/gtest_dlt_daemon_gateway.sh +++ b/tests/gtest_dlt_daemon_gateway.sh @@ -105,6 +105,10 @@ cleanup() rm -f $tmpPath/dlt.conf rm -f $tmpPath/dlt_gateway.conf + rm -f /dev/shm/dlt-shm + rm -f /dev/shm/sem.dlt-shm + rm -f /dev/shm/dlt-shm-passive + rm -f /dev/shm/sem.dlt-shm-passive return 0 } # @@ -171,9 +175,17 @@ setupTest() # startDaemons() { + DLT_PASSIVE_SHM_NAME="" tmpPath=/tmp dlt-daemon -d - dlt-daemon -d -p 3495 -c $tmpPath/dlt.conf + sleep 1 + + # Check if the dlt shm file exist (DLT_SHM_ENABLE=ON) + if [ -f /dev/shm/dlt-shm ]; then + DLT_PASSIVE_SHM_NAME="-s dlt-shm-passive" + fi + + dlt-daemon -d -p 3495 -c $tmpPath/dlt.conf $DLT_PASSIVE_SHM_NAME return 0 } diff --git a/tests/gtest_dlt_shm.cpp b/tests/gtest_dlt_shm.cpp new file mode 100644 index 0000000..7260080 --- /dev/null +++ b/tests/gtest_dlt_shm.cpp @@ -0,0 +1,67 @@ +#include +extern "C" +{ + #include "dlt_shm.h" +} + +DltShm *server_buf = (DltShm *)calloc(1, sizeof(DltShm)); +DltShm *client_buf = (DltShm *)calloc(1, sizeof(DltShm)); + +char *dltShmNameTest = (char *)"dlt-shm-test"; +int size = 1000; + +/* Method: dlt_shm::t_dlt_shm_init_server */ +TEST(t_dlt_shm_init_server, normal) +{ + EXPECT_EQ(DLT_RETURN_OK, dlt_shm_init_server(server_buf, dltShmNameTest, size)); +} + +/* Method: dlt_shm::t_dlt_shm_init_server */ +TEST(t_dlt_shm_init_server, nullpointer) +{ + EXPECT_EQ(DLT_RETURN_WRONG_PARAMETER, dlt_shm_init_server(NULL, NULL, size)); +} + +/* Method: dlt_shm::t_dlt_shm_init_client */ +TEST(t_dlt_shm_init_client, normal) +{ + EXPECT_EQ(DLT_RETURN_OK, dlt_shm_init_client(client_buf, dltShmNameTest)); +} + +/* Method: dlt_shm::t_dlt_shm_init_client */ +TEST(t_dlt_shm_init_client, nullpointer) +{ + EXPECT_EQ(DLT_RETURN_WRONG_PARAMETER, dlt_shm_init_client(NULL, NULL)); +} + +/* Method: dlt_shm::t_dlt_shm_free_client */ +TEST(t_dlt_shm_free_client, normal) +{ + EXPECT_EQ(DLT_RETURN_OK, dlt_shm_free_client(client_buf)); +} + +/* Method: dlt_shm::t_dlt_shm_free_client */ +TEST(t_dlt_shm_free_client, nullpointer) +{ + EXPECT_EQ(DLT_RETURN_WRONG_PARAMETER, dlt_shm_free_client(NULL)); +} + +/* Method: dlt_shm::t_dlt_shm_free_server */ +TEST(t_dlt_shm_free_server, normal) +{ + EXPECT_EQ(DLT_RETURN_OK, dlt_shm_free_server(server_buf, dltShmNameTest)); +} + +/* Method: dlt_shm::t_dlt_shm_free_server */ +TEST(t_dlt_shm_free_server, nullpointer) +{ + EXPECT_EQ(DLT_RETURN_WRONG_PARAMETER, dlt_shm_free_server(NULL, NULL)); +} + +int main(int argc, char **argv) +{ + ::testing::InitGoogleTest(&argc, argv); + ::testing::FLAGS_gtest_break_on_failure = false; + + return RUN_ALL_TESTS(); +} -- cgit v1.2.1