forked from Archive/PX4-Autopilot
Add unit test for dynamically loading modules on posix.
This commit is contained in:
parent
d13836eb1e
commit
3c660acca8
|
@ -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})
|
||||
|
|
|
@ -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
|
|
@ -0,0 +1,8 @@
|
|||
px4_add_module(
|
||||
MODULE platforms__posix__tests__dyn_hello
|
||||
MAIN hello
|
||||
SRCS
|
||||
hello.cpp
|
||||
DEPENDS
|
||||
DYNAMIC
|
||||
)
|
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue