Browse Source

mavsdk SITL testing code coverage and upload to codecov.io

sbg
Daniel Agar 5 years ago
parent
commit
30a73416dc
  1. 23
      .github/workflows/sitl_tests_coverage.yml
  2. 2
      CMakeLists.txt
  3. 10
      Makefile
  4. 1
      Tools/setup/requirements.txt
  5. 5
      platforms/posix/cmake/sitl_tests.cmake
  6. 5
      platforms/posix/src/px4/common/CMakeLists.txt

23
.github/workflows/sitl_tests_coverage.yml

@ -0,0 +1,23 @@
name: SITL Tests (Code Coverage)
on: [push]
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-simulation-bionic:2019-12-18
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: Set Python 3 as default
run: update-alternatives --install /usr/bin/python python /usr/bin/python3 10
- name: Install psutil
run: pip3 install psutil
- name: Run simulation tests
run: make tests_integration_coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: mavsdk

2
CMakeLists.txt

@ -358,7 +358,7 @@ endif()
# optionally enable cmake testing (supported only on posix) # optionally enable cmake testing (supported only on posix)
option(CMAKE_TESTING "Configure test targets" OFF) option(CMAKE_TESTING "Configure test targets" OFF)
if (${PX4_CONFIG} STREQUAL "px4_sitl_test") if(${PX4_CONFIG} STREQUAL "px4_sitl_test")
set(CMAKE_TESTING ON) set(CMAKE_TESTING ON)
endif() endif()
if(CMAKE_TESTING) if(CMAKE_TESTING)

10
Makefile

@ -357,10 +357,16 @@ tests_coverage:
rostest: px4_sitl_default rostest: px4_sitl_default
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo @$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo
tests_integration: px4_sitl gazebo mavsdk_tests tests_integration: px4_sitl_default
# Missing step: Gazebo model generation @$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo
@"$(SRC_DIR)"/test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 100 @"$(SRC_DIR)"/test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 100
tests_integration_coverage:
@$(MAKE) clean
@$(MAKE) --no-print-directory px4_sitl_default PX4_CMAKE_BUILD_TYPE=Coverage
@$(MAKE) --no-print-directory px4_sitl_default sitl_gazebo PX4_CMAKE_BUILD_TYPE=Coverage
@"$(SRC_DIR)"/test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 --iterations 1 --fail-early
tests_mission: rostest tests_mission: rostest
@"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_tests_missions.test @"$(SRC_DIR)"/test/rostest_px4_run.sh mavros_posix_tests_missions.test

1
Tools/setup/requirements.txt

@ -6,6 +6,7 @@ matplotlib
nose nose
numpy>=1.13 numpy>=1.13
pandas>=0.21 pandas>=0.21
psutil
pyserial>=3.0 pyserial>=3.0
pyulog>=0.5.0 pyulog>=0.5.0
pyyaml pyyaml

5
platforms/posix/cmake/sitl_tests.cmake

@ -141,7 +141,10 @@ foreach(cmd_name ${test_cmds})
set_tests_properties(posix_${cmd_name} PROPERTIES PASS_REGULAR_EXPRESSION "Shutting down") set_tests_properties(posix_${cmd_name} PROPERTIES PASS_REGULAR_EXPRESSION "Shutting down")
endforeach() endforeach()
if (CMAKE_BUILD_TYPE STREQUAL Coverage) if(CMAKE_BUILD_TYPE STREQUAL Coverage)
setup_target_for_coverage(test_coverage "${CMAKE_CTEST_COMMAND} --output-on-failure -T Test" tests) setup_target_for_coverage(test_coverage "${CMAKE_CTEST_COMMAND} --output-on-failure -T Test" tests)
setup_target_for_coverage(generate_coverage "${CMAKE_COMMAND} -E echo" generic) setup_target_for_coverage(generate_coverage "${CMAKE_COMMAND} -E echo" generic)
# TODO:
#setup_target_for_coverage(mavsdk_coverage "${PX4_SOURCE_DIR}/test/mavsdk_tests/mavsdk_test_runner.py --speed-factor 20 --iterations 1 --fail-early" mavsdk)
endif() endif()

5
platforms/posix/src/px4/common/CMakeLists.txt

@ -68,13 +68,12 @@ if(ENABLE_LOCKSTEP_SCHEDULER)
endif() endif()
if (EXTRA_DEPENDS) if(EXTRA_DEPENDS)
add_dependencies(px4_layer ${EXTRA_DEPENDS}) add_dependencies(px4_layer ${EXTRA_DEPENDS})
endif() endif()
if (BUILD_TESTING) if(BUILD_TESTING)
add_subdirectory(test_stubs) add_subdirectory(test_stubs)
add_subdirectory(gtest_runner) add_subdirectory(gtest_runner)
endif() endif()

Loading…
Cancel
Save