mirror of
https://gitee.com/xiaohuolufeihua/bizhang_-obav.git
synced 2026-05-21 09:22:18 +00:00
Add unit test for dynamically loading modules on posix.
This commit is contained in:
@@ -8,6 +8,7 @@ program="$3"
|
||||
model="$4"
|
||||
src_path="$5"
|
||||
build_path="$6"
|
||||
# The rest of the arguments are files to copy into the working dir.
|
||||
|
||||
echo SITL ARGS
|
||||
|
||||
@@ -58,6 +59,11 @@ pkill -x px4_$model || true
|
||||
cp $src_path/Tools/posix_lldbinit $rootfs/.lldbinit
|
||||
cp $src_path/Tools/posix.gdbinit $rootfs/.gdbinit
|
||||
|
||||
shift 6
|
||||
for file in "$@"; do
|
||||
cp "$file" $rootfs/
|
||||
done
|
||||
|
||||
SIM_PID=0
|
||||
|
||||
if [ "$program" == "jmavsim" ] && [ ! -n "$no_sim" ]
|
||||
|
||||
@@ -55,6 +55,7 @@ set(config_module_list
|
||||
systemcmds/tests
|
||||
|
||||
platforms/posix/tests/hello
|
||||
platforms/posix/tests/dyn_hello
|
||||
platforms/posix/tests/hrt_test
|
||||
platforms/posix/tests/vcdev_test
|
||||
|
||||
|
||||
@@ -99,6 +99,20 @@ add_test(NAME shutdown
|
||||
set_tests_properties(shutdown PROPERTIES PASS_REGULAR_EXPRESSION "Shutting down")
|
||||
sanitizer_fail_test_on_error(shutdown)
|
||||
|
||||
# Dynamic module loading test
|
||||
add_test(NAME dyn
|
||||
COMMAND ${PX4_SOURCE_DIR}/Tools/sitl_run.sh
|
||||
$<TARGET_FILE:px4>
|
||||
none
|
||||
none
|
||||
test_dyn_hello
|
||||
${PX4_SOURCE_DIR}
|
||||
${PX4_BINARY_DIR}
|
||||
$<TARGET_FILE:platforms__posix__tests__dyn_hello>
|
||||
WORKING_DIRECTORY ${SITL_WORKING_DIR})
|
||||
set_tests_properties(dyn PROPERTIES PASS_REGULAR_EXPRESSION "1: PASSED")
|
||||
sanitizer_fail_test_on_error(dyn)
|
||||
|
||||
# run arbitrary commands
|
||||
set(test_cmds
|
||||
hello
|
||||
@@ -127,7 +141,7 @@ endforeach()
|
||||
|
||||
add_custom_target(test_results
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -T Test
|
||||
DEPENDS px4
|
||||
DEPENDS px4 platforms__posix__tests__dyn_hello
|
||||
USES_TERMINAL
|
||||
COMMENT "Running tests in sitl"
|
||||
WORKING_DIRECTORY ${PX4_BINARY_DIR})
|
||||
|
||||
8
posix-configs/SITL/init/test/test_dyn_hello
Normal file
8
posix-configs/SITL/init/test/test_dyn_hello
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
# PX4 commands need the 'px4-' prefix in bash.
|
||||
# (px4-alias.sh is expected to be in the PATH)
|
||||
. px4-alias.sh
|
||||
|
||||
dyn ./platforms__posix__tests__dyn_hello.px4mod PASSED
|
||||
|
||||
shutdown
|
||||
8
src/platforms/posix/tests/dyn_hello/CMakeLists.txt
Normal file
8
src/platforms/posix/tests/dyn_hello/CMakeLists.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
px4_add_module(
|
||||
MODULE platforms__posix__tests__dyn_hello
|
||||
MAIN hello
|
||||
SRCS
|
||||
hello.cpp
|
||||
DEPENDS
|
||||
DYNAMIC
|
||||
)
|
||||
16
src/platforms/posix/tests/dyn_hello/hello.cpp
Normal file
16
src/platforms/posix/tests/dyn_hello/hello.cpp
Normal file
@@ -0,0 +1,16 @@
|
||||
#include <px4_log.h>
|
||||
#include <px4_app.h>
|
||||
|
||||
extern "C" __EXPORT int hello_main(int argc, char *argv[]);
|
||||
int hello_main(int argc, char *argv[])
|
||||
{
|
||||
PX4_INFO("Hello, I am a dynamically loaded module.");
|
||||
|
||||
PX4_INFO("Argv:");
|
||||
|
||||
for (int i = 0; i < argc; ++i) {
|
||||
PX4_INFO(" %d: %s", i, argv[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user