Skip to content

Commit

Permalink
Upstream from BOSCH dlt-daemon
Browse files Browse the repository at this point in the history
cmake: correct typo in setting up evironment

Signed-off-by: LUU QUANG MINH <[email protected]>

unittest: pgrep should detect the exact pattern

Signed-off-by: LUU QUANG MINH <[email protected]>

cmake: refactor wrong line continuation

Signed-off-by: LUU QUANG MINH <[email protected]>

unittest: adapt IPv6 testing

+ Checking NULL before checking IP
+ Add environment variable for default loopback IP
+ Add test for IPv6 in unittest, by using converted IP
+ Add correct IP protocol for testing to dlt_gateway.conf

Signed-off-by: LUU QUANG MINH <[email protected]>
  • Loading branch information
LUU QUANG MINH authored and LUU QUANG MINH committed Feb 5, 2024
1 parent 6e66d7e commit 07ed62c
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 31 deletions.
10 changes: 7 additions & 3 deletions src/gateway/dlt_gateway.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,15 +56,19 @@
*/
DLT_STATIC DltReturnValue dlt_gateway_check_ip(DltGatewayConnection *con, char *value)
{
struct sockaddr_in sa;
int ret = DLT_RETURN_ERROR;

if ((con == NULL) || (value == NULL)) {
dlt_vlog(LOG_ERR, "%s: wrong parameter\n", __func__);
return DLT_RETURN_WRONG_PARAMETER;
}

int ret = DLT_RETURN_ERROR;
#ifdef DLT_USE_IPv6
struct sockaddr_in6 sa6;
ret = inet_pton(AF_INET6, value, &(sa6.sin6_addr));
#else
struct sockaddr_in sa;
ret = inet_pton(AF_INET, value, &(sa.sin_addr));
#endif

/* valid IP address */
if (ret != 0) {
Expand Down
72 changes: 47 additions & 25 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,31 +27,53 @@ set(DLT_LIBRARIES dlt ${GTEST_LIBS} ${LIBRARIES})
set(DLT_DAEMON_LIBRARIES dlt_daemon ${GTEST_LIBS} ${LIBRARIES} ${SYSTEMD_LIBS})
set(DLT_CONTROL_LIBRARIES dlt dlt_control_common_lib ${GTEST_LIBS})

#Receiver used for QTs. add_test() is not required
# Receiver used for QTs. add_test() is not required
add_executable(dlt_test_receiver dlt_test_receiver.c)
target_link_libraries(dlt_test_receiver ${DLT_LIBRARIES})

# Prepare string for testing command sequence
set(CMD_SEQ_SLEEP "sleep 0.5")
set(CMD_SEQ_CLEAN "killall -v dlt-daemon || echo 'Could not find any daemon to kill'")
set(CMD_SEQ_EXIT "exit $TESTS_FAILED")
string(CONCAT CMD_SEQ "${CMD_SEQ_SLEEP};"
"${CMD_SEQ_CLEAN};"
"${CMD_SEQ_EXIT}")

# Prepare string for setting environment variables
set(TEST_ENV_PATH "PATH=$<TARGET_FILE_DIR:dlt-daemon>:$ENV{PATH}")
set(TEST_ENV_DAEMON "DLT_UT_DAEMON_PATH=$<TARGET_FILE:dlt-daemon>")
set(TEST_ENV_DAEMON_CONFIG "DLT_UT_CONFIG_PATH=$<TARGET_FILE_DIR:dlt-daemon>/dlt.conf")
set(TEST_ENV_LO_IPv6 "DLT_IPv6_LO=::1")
string(CONCAT TEST_ENV "${TEST_ENV_PATH};"
"${TEST_ENV_DAEMON};"
"${TEST_ENV_DAEMON_CONFIG}")
string(CONCAT TEST_ENV_IPv6 "${TEST_ENV};"
"${TEST_ENV_LO_IPv6}")

####################
# DLT library tests
####################
set(TARGET_LIST gtest_dlt_common
gtest_dlt_user
gtest_dlt_daemon_common
dlt_env_ll_unit_test
)
dlt_env_ll_unit_test)

foreach(target IN LISTS TARGET_LIST)
set(target_SRCS ${target})
if(${target} STREQUAL "gtest_dlt_daemon_common")
set(target_SRCS ${target_SRCS} ${PROJECT_SOURCE_DIR}/src/daemon/dlt_daemon_common.c)
endif()
add_executable(${target} ${target_SRCS})
target_link_libraries(${target} ${DLT_LIBRARIES} ${DLT_CONTROL_LIBRARIES})
add_test(NAME ${target}
COMMAND ${target})
target_compile_definitions(${target}
PRIVATE
DLTPATH=${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(${target} ${DLT_LIBRARIES})
if(EXISTS ${PROJECT_SOURCE_DIR}/tests/${target}.sh)
configure_file(${PROJECT_SOURCE_DIR}/tests/${target}.sh ${PROJECT_BINARY_DIR}/tests COPYONLY)
set(CMD_SEQ_SETUP "sh $<TARGET_FILE:${target}>.sh")
set(CMD_SEQ_BOOL "$<TARGET_FILE:${target}> || TESTS_FAILED=1 && TESTS_FAILED=0")
add_test(NAME ${target} COMMAND /bin/sh -e -c "${CMD_SEQ_SETUP};${CMD_SEQ_BOOL};${CMD_SEQ}")
set_tests_properties(${target} PROPERTIES ENVIRONMENT "${TEST_ENV}")
else()
add_test(NAME ${target} COMMAND ${target})
endif()
endforeach()

###################
Expand All @@ -60,8 +82,12 @@ endforeach()
set(TARGET_LIST gtest_dlt_daemon_gateway
gtest_dlt_daemon_offline_log
gtest_dlt_daemon_event_handler
gtest_dlt_daemon_multiple_files_logging
)
gtest_dlt_daemon_multiple_files_logging)

if(WITH_DLT_LOG_STATISTIC)
list(APPEND TARGET_LIST gtest_dlt_daemon_statistics)
endif()

if(WITH_DLT_SHM_ENABLE)
list(APPEND TARGET_LIST gtest_dlt_shm)
endif()
Expand All @@ -72,18 +98,16 @@ foreach(target IN LISTS TARGET_LIST)
target_link_libraries(${target} ${DLT_DAEMON_LIBRARIES} ${ZLIB_LIBRARY})
if(EXISTS ${PROJECT_SOURCE_DIR}/tests/${target}.sh)
configure_file(${PROJECT_SOURCE_DIR}/tests/${target}.sh ${PROJECT_BINARY_DIR}/tests COPYONLY)
add_test(NAME ${target}
COMMAND /bin/sh -e -c "\
sh $<TARGET_FILE:${target}>.sh ; \
$<TARGET_FILE:${target}> || TESTS_FAILED=1 && TESTS_FAILED=0 \
sleep 0.5 ; \
killall -v dlt-daemon || echo 'Could not find any daemon to kill' ;
exit $TESTS_FAILED")
set_tests_properties(${target} PROPERTIES ENVIRONMENT "PATH=$<TARGET_FILE_DIR:dlt-daemon>:$ENV{PATH}; \
DLT_UT_DAEMON_PATH=$<TARGET_FILE:dlt-daemon>")
set(CMD_SEQ_SETUP "sh $<TARGET_FILE:${target}>.sh")
set(CMD_SEQ_BOOL "$<TARGET_FILE:${target}> || TESTS_FAILED=1 && TESTS_FAILED=0")
add_test(NAME ${target} COMMAND /bin/sh -e -c "${CMD_SEQ_SETUP};${CMD_SEQ_BOOL};${CMD_SEQ}")
if(WITH_DLT_USE_IPv6)
set_tests_properties(${target} PROPERTIES ENVIRONMENT "${TEST_ENV_IPv6}")
else()
set_tests_properties(${target} PROPERTIES ENVIRONMENT "${TEST_ENV}")
endif()
else()
add_test(NAME ${target}
COMMAND ${target})
add_test(NAME ${target} COMMAND ${target})
endif()
set_tests_properties(${target} PROPERTIES TIMEOUT "${seconds}")
endforeach()
Expand All @@ -94,11 +118,9 @@ endforeach()
if(WITH_EXTENDED_FILTERING)
configure_file(${PROJECT_SOURCE_DIR}/tests/testfile_extended.dlt ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/testfilter.json ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)

add_executable(gtest_dlt_json_filter gtest_dlt_json_filter.cpp)
target_link_libraries(gtest_dlt_json_filter ${DLT_CONTROL_LIBRARIES})
add_test(NAME gtest_dlt_json_filter
COMMAND gtest_dlt_json_filter)
add_test(NAME gtest_dlt_json_filter COMMAND gtest_dlt_json_filter)
set_tests_properties(${target} PROPERTIES TIMEOUT "${seconds}")
endif()

Expand Down
12 changes: 12 additions & 0 deletions tests/gtest_dlt_daemon_gateway.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,11 @@ TEST(t_dlt_gateway_check_ip, normal)
{
DltGatewayConnection tmp;
DltGatewayConnection *con;
#ifdef DLT_USE_IPv6
char value[DLT_CONFIG_FILE_ENTRY_MAX_LEN] = "::ffff:a71:6464";
#else
char value[DLT_CONFIG_FILE_ENTRY_MAX_LEN] = "10.113.100.100";
#endif
con = &tmp;

EXPECT_EQ(DLT_RETURN_OK, dlt_gateway_check_ip(con, value));
Expand Down Expand Up @@ -670,7 +674,11 @@ TEST(t_dlt_gateway_process_on_demand_request, nullpointer)
/* Begin Method: dlt_gateway::t_dlt_gateway_check_param*/
TEST(t_dlt_gateway_check_param, normal)
{
#ifdef DLT_USE_IPv6
char value_1[DLT_CONFIG_FILE_ENTRY_MAX_LEN] = "::ffff:a0b:1621";
#else
char value_1[DLT_CONFIG_FILE_ENTRY_MAX_LEN] = "10.11.22.33";
#endif
char value_2[DLT_CONFIG_FILE_ENTRY_MAX_LEN] = "3490";
DltGateway gateway;
DltGatewayConnection tmp;
Expand All @@ -689,7 +697,11 @@ TEST(t_dlt_gateway_check_param, normal)

TEST(t_dlt_gateway_check_param, abnormal)
{
#ifdef DLT_USE_IPv6
char value_1[DLT_CONFIG_FILE_ENTRY_MAX_LEN] = "::ffff:a0b:1621";
#else
char value_1[DLT_CONFIG_FILE_ENTRY_MAX_LEN] = "10.11.22.33";
#endif
DltGateway gateway;
DltGatewayConnection tmp;
gateway.connections = &tmp;
Expand Down
12 changes: 9 additions & 3 deletions tests/gtest_dlt_daemon_gateway.sh
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,13 @@ setupTest()
fi

echo "[PassiveNode1]" >>$tmpPath/dlt_gateway.conf
echo "IPaddress=$ipaddr">>$tmpPath/dlt_gateway.conf

if [ -n "$DLT_IPv6_LO" ]
then
echo "IPaddress=$DLT_IPv6_LO">>$tmpPath/dlt_gateway.conf
else
echo "IPaddress=$ipaddr">>$tmpPath/dlt_gateway.conf
fi
echo "Port=3490" >>$tmpPath/dlt_gateway.conf
echo "EcuID=ECU1" >>$tmpPath/dlt_gateway.conf
echo "Connect=OnStartup" >>$tmpPath/dlt_gateway.conf
Expand All @@ -202,7 +208,7 @@ startDaemons()
{
DLT_PASSIVE_SHM_NAME=""
tmpPath=/tmp
dlt-daemon -d
dlt-daemon -d -c $DLT_UT_CONFIG_PATH
sleep 1

# Check if the dlt shm file exist (DLT_SHM_ENABLE=ON)
Expand All @@ -226,7 +232,7 @@ checkDaemonStart()
slay -p $BASE > /dev/null
total=$?
else
total=`pgrep -c $BASE`
total=`pgrep -cx $BASE`
fi

if [ $total -ne '2' ]; then
Expand Down

0 comments on commit 07ed62c

Please sign in to comment.