summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVo Trung Chi <chi.votrung@vn.bosch.com>2019-08-01 07:38:42 +0700
committerSaya Sugiura <39760799+ssugiura@users.noreply.github.com>2019-08-01 09:38:42 +0900
commit3f7dc3fd80e7fe548f89b96ab4228135dca688db (patch)
treeefa1473fbd73b559fc6340c35479d060d2349553 /tests
parent8673795b845e461e42920e44cdf70a5361457e8b (diff)
downloadDLT-daemon-3f7dc3fd80e7fe548f89b96ab4228135dca688db.tar.gz
using POSIX shared memory APIs (#90) (#151)
Replace all Linux specific shared memory APIs with POSIX alternatives. Signed-off-by: Vo Trung Chi <Chi.VoTrung@vn.bosch.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/CMakeLists.txt9
-rwxr-xr-xtests/gtest_dlt_daemon_gateway.sh14
-rw-r--r--tests/gtest_dlt_shm.cpp67
3 files changed, 89 insertions, 1 deletions
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 <gtest/gtest.h>
+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();
+}