forked from Archive/PX4-Autopilot
travis-ci fix coverity scan and px4_metadata (#8156)
This commit is contained in:
parent
aa92ef3ca6
commit
136d259876
|
@ -64,14 +64,10 @@ cmake-build-*/
|
|||
|
||||
posix-configs/SITL/init/test/*_generated
|
||||
|
||||
parameters.md
|
||||
airframes.md
|
||||
airframes.xml
|
||||
/airframes.md
|
||||
/airframes.xml
|
||||
/parameters.md
|
||||
/parameters.xml
|
||||
/modules
|
||||
|
||||
cppcheck-result.xml
|
||||
cppcheck
|
||||
|
||||
scan-build
|
||||
|
||||
*.gcov
|
||||
|
|
140
.travis.yml
140
.travis.yml
|
@ -1,6 +1,11 @@
|
|||
# Build and autotest script for PX4 Firmware
|
||||
# http://travis-ci.org
|
||||
|
||||
sudo: required
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
language: cpp
|
||||
|
||||
git:
|
||||
|
@ -9,8 +14,8 @@ git:
|
|||
|
||||
env:
|
||||
global:
|
||||
# COVERITY KEY
|
||||
- secure: "NyaJoCGjU0Xc90Y6bxVYWLgjrJX5HlZsm/SPxruZ6I7xkGo19fJIFzGegOHQFR32D4AiKjllfjTUNy+ncckWplind0QwxtF4/kxXrz9XBfiby6X8jLYXIekrB6Ay0mBLGbniDdh+lpWtcyop6Dmkt5bdJCJuKY2nv9ENnhhs07M="
|
||||
# COVERITY_SCAN_TOKEN
|
||||
- secure: "Q4IAcmo1r5cr/UvhcixQa6QN5e5eTcP7FeidzEbX2+BA38yo2BH5O9YQCvZe2AI1Na8ZCjVx3H2luGgDwOKgzAIAjXjZ2KbmXYc6Ns/j/BXScY05dCCzYEhXKD98NZxIKH9lLN9pYDGRA8pChGRJnVlFOr1JHHHnB801+osHy7M="
|
||||
# AWS KEY: $PX4_AWS_KEY
|
||||
- secure: "XknnZHWBbpHbN4f3fuAVwUztdLIu8ej4keC3aQSDofo3uw8AFEzojfsQsN9u77ShWSIV4iYJWh9C9ALkCx7TocJ+xYjiboo10YhM9lH/8u+EXjYWG6GHS8ua0wkir+cViSxoLNaMtmcb/rPTicJecAGANxLsIHyBAgTL3fkbLSA="
|
||||
# AWS SECRET: $PX4_AWS_SECRET
|
||||
|
@ -19,52 +24,22 @@ env:
|
|||
matrix:
|
||||
fast_finish: true
|
||||
include:
|
||||
- os: linux
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
env: BUILD_TARGET=check_format
|
||||
- os: linux
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
env: BUILD_TARGET=tests
|
||||
- os: linux
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
env: BUILD_TARGET=tests_asan
|
||||
- os: linux
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
env: BUILD_TARGET=tests_coverage
|
||||
- os: linux
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
env: BUILD_TARGET=clang-tidy
|
||||
- os: linux
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
env: BUILD_TARGET=scan-build
|
||||
- os: linux
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
env: BUILD_TARGET=cppcheck
|
||||
- os: linux
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
env: BUILD_TARGET=px4_metadata
|
||||
- os: linux
|
||||
- env: BUILD_TARGET=check_format
|
||||
- env: BUILD_TARGET=check_stack
|
||||
- env: BUILD_TARGET=clang-tidy-quiet
|
||||
- env: BUILD_TARGET=cppcheck
|
||||
- env: BUILD_TARGET=px4_metadata
|
||||
- env: BUILD_TARGET=scan-build
|
||||
- env: BUILD_TARGET=tests
|
||||
- env: BUILD_TARGET=tests PX4_ASAN=1
|
||||
- env: BUILD_TARGET=tests PX4_UBSAN=1
|
||||
- env: BUILD_TARGET=tests_coverage
|
||||
- env: BUILD_TARGET=coverity_scan
|
||||
dist: trusty
|
||||
sudo: required
|
||||
env: BUILD_TARGET=coverity_scan
|
||||
if: branch = coverity_scan
|
||||
allow_failures:
|
||||
- env: BUILD_TARGET=tests_asan
|
||||
- env: BUILD_TARGET=tests PX4_ASAN=1
|
||||
- env: BUILD_TARGET=tests PX4_UBSAN=1
|
||||
- env: BUILD_TARGET=tests_coverage
|
||||
|
||||
cache:
|
||||
|
@ -72,70 +47,37 @@ cache:
|
|||
|
||||
before_install:
|
||||
# install dependencies for the coverity build (target and branch), otherwise exit early
|
||||
- if [[ "${TRAVIS_BRANCH}" = "coverity" ]]; then
|
||||
if [[ "${BUILD_TARGET}" = "coverity_scan" ]]; then sudo apt-get install genromfs && pip install empy jinja2; else exit 0; fi;
|
||||
- if [[ "${TRAVIS_BRANCH}" = "coverity_scan" ]]; then
|
||||
if [[ "${BUILD_TARGET}" = "coverity_scan" ]]; then
|
||||
sudo apt-get install python-empy python-jinja2;
|
||||
echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-;
|
||||
else
|
||||
exit 0;
|
||||
fi
|
||||
fi
|
||||
# use git:// to fetch instead of https://
|
||||
- git config --global url."git://".insteadOf https://
|
||||
|
||||
script:
|
||||
- if [[ "${BUILD_TARGET}" = "coverity_scan" ]]; then
|
||||
echo "no script for coverity build";
|
||||
|
||||
elif [[ "${TRAVIS_BRANCH}" = "coverity" ]]; then
|
||||
echo "exit early for coverity build" && exit 0;
|
||||
|
||||
elif [[ "${BUILD_TARGET}" = "check_format" ]]; then
|
||||
./Tools/docker_run.sh 'make check_format';
|
||||
|
||||
elif [[ "${BUILD_TARGET}" = "tests" ]]; then
|
||||
./Tools/docker_run.sh 'make tests';
|
||||
|
||||
elif [[ "${BUILD_TARGET}" = "tests_coverage" ]]; then
|
||||
./Tools/docker_run.sh 'make tests_coverage' && bash <(curl -s https://codecov.io/bash) -F unittests;
|
||||
|
||||
elif [[ "${BUILD_TARGET}" = "tests_asan" ]]; then
|
||||
./Tools/docker_run.sh 'PX4_ASAN=1 make tests';
|
||||
|
||||
elif [[ "${BUILD_TARGET}" = "px4_metadata" ]]; then
|
||||
./Tools/docker_run.sh 'make px4_metadata';
|
||||
|
||||
elif [[ "${BUILD_TARGET}" = "clang-tidy" ]]; then
|
||||
./Tools/docker_run.sh 'make clang-tidy-quiet';
|
||||
|
||||
- if [[ "${BUILD_TARGET}" != "coverity_scan" ]]; then
|
||||
./Tools/docker_run.sh make ${BUILD_TARGET};
|
||||
fi
|
||||
|
||||
after_success:
|
||||
# s3 upload airframe and parameter metadata
|
||||
- if [[ "${BUILD_TARGET}" = "px4_metadata" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
|
||||
./Tools/docker_run.sh 'make s3put_metadata AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}"';
|
||||
fi
|
||||
# s3 upload clang scan-build output for master branch
|
||||
- if [[ "${BUILD_TARGET}" = "scan-build" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
|
||||
./Tools/docker_run.sh 'make s3put_scan-build AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/scan-build"';
|
||||
fi
|
||||
# s3 upload cppcheck output for master branch
|
||||
- if [[ "${BUILD_TARGET}" = "cppcheck" && "${TRAVIS_PULL_REQUEST}" = "false" ]]; then
|
||||
./Tools/docker_run.sh 'make s3put_cppcheck AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/cppcheck"';
|
||||
# upload metadata and static analysis to s3
|
||||
- if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then
|
||||
[ "${BUILD_TARGET}" = "px4_metadata" ] && ./Tools/docker_run.sh 'make s3put_metadata AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}"';
|
||||
[ "${BUILD_TARGET}" = "scan-build" ] && ./Tools/docker_run.sh 'make s3put_scan-build AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/scan-build"';
|
||||
[ "${BUILD_TARGET}" = "cppcheck" ] && ./Tools/docker_run.sh 'make s3put_cppcheck AWS_S3_BUCKET="px4-travis/Firmware/${TRAVIS_BRANCH}/cppcheck"';
|
||||
[ "${BUILD_TARGET}" = "tests_coverage" ] && bash <(curl -s https://codecov.io/bash) -F unittests;
|
||||
fi
|
||||
|
||||
addons:
|
||||
coverity_scan:
|
||||
project:
|
||||
name: PX4/Firmware
|
||||
name: "PX4/Firmware"
|
||||
description: "Build submitted via Travis CI"
|
||||
notification_email: ci@px4.io
|
||||
build_command: make posix_sitl_default
|
||||
branch_pattern: coverity
|
||||
|
||||
notifications:
|
||||
webhooks:
|
||||
urls:
|
||||
- https://webhooks.gitter.im/e/2b9c4a4cb2211f8befba
|
||||
on_success: always # options: [always|never|change] default: always
|
||||
on_failure: always # options: [always|never|change] default: always
|
||||
slack:
|
||||
rooms:
|
||||
- secure: "QKw73Zel/s3JAbe/7XyO9tPnJwiiGFpYzSjdR8lG3tYFjRdXZnhxG4c+G7bkgkaPTS4Hult33VXE3kcEqOI7+C+eRwRlZhDfL0knQbXVCxjcLjzmUFdoPOwurlgZDw66PFWCi5tZcLKSRo3u4U8ibT4WKi3jm9sDSyOcfBAucMU="
|
||||
on_pull_requests: false
|
||||
on_success: never # options: [always|never|change] default: always
|
||||
on_failure: never # options: [always|never|change] default: always
|
||||
build_command_prepend: "make distclean"
|
||||
build_command: "make posix_sitl_default"
|
||||
branch_pattern: coverity_scan
|
||||
|
|
|
@ -128,7 +128,7 @@ string(REPLACE "_" ";" config_args ${CONFIG})
|
|||
list(GET config_args 0 OS)
|
||||
list(GET config_args 1 BOARD)
|
||||
list(GET config_args 2 LABEL)
|
||||
set(target_name "${OS}-${BOARD}-${LABEL}")
|
||||
set(target_name "${OS}_${BOARD}_${LABEL}")
|
||||
|
||||
file(GLOB_RECURSE configs RELATIVE cmake/configs "cmake/configs/*.cmake")
|
||||
set_property(CACHE CONFIG PROPERTY STRINGS ${configs})
|
||||
|
|
77
Makefile
77
Makefile
|
@ -108,8 +108,6 @@ else
|
|||
endif
|
||||
|
||||
# additional config parameters passed to cmake
|
||||
CMAKE_ARGS += -Wno-deprecated
|
||||
|
||||
ifdef EXTERNAL_MODULES_LOCATION
|
||||
CMAKE_ARGS += -DEXTERNAL_MODULES_LOCATION:STRING=$(EXTERNAL_MODULES_LOCATION)
|
||||
endif
|
||||
|
@ -124,7 +122,7 @@ endif
|
|||
define cmake-build
|
||||
+@$(eval BUILD_DIR = $(SRC_DIR)/build/$@$(BUILD_DIR_SUFFIX))
|
||||
+@if [ $(PX4_CMAKE_GENERATOR) = "Ninja" ] && [ -e $(BUILD_DIR)/Makefile ]; then rm -rf $(BUILD_DIR); fi
|
||||
+@if [ ! -e $(BUILD_DIR)/CMakeCache.txt ]; then mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && cmake $(2) -G"$(PX4_CMAKE_GENERATOR)" -DCONFIG=$(1) $(CMAKE_ARGS) || (rm -rf $(BUILD_DIR)); fi
|
||||
+@if [ ! -e $(BUILD_DIR)/CMakeCache.txt ]; then mkdir -p $(BUILD_DIR) && cd $(BUILD_DIR) && cmake $(2) -G"$(PX4_CMAKE_GENERATOR)" $(CMAKE_ARGS) -DCONFIG=$(1) || (rm -rf $(BUILD_DIR)); fi
|
||||
+@(cd $(BUILD_DIR) && $(PX4_MAKE) $(PX4_MAKE_ARGS) $(ARGS))
|
||||
endef
|
||||
|
||||
|
@ -135,8 +133,8 @@ define colorecho
|
|||
+@echo "${COLOR_BLUE}${1} ${NO_COLOR}"
|
||||
endef
|
||||
|
||||
# Get a list of all config targets.
|
||||
ALL_CONFIG_TARGETS := $(basename $(shell find "$(SRC_DIR)/cmake/configs" ! -name '*_common*' ! -name '*_sdflight_*' -name '*.cmake' -print | sed -e 's:^.*/::' | sort))
|
||||
# Get a list of all config targets cmake/configs/*.cmake
|
||||
ALL_CONFIG_TARGETS := $(basename $(shell find "$(SRC_DIR)/cmake/configs" -maxdepth 1 ! -name '*_common*' ! -name '*_sdflight_*' -name '*.cmake' -print | sed -e 's:^.*/::' | sort))
|
||||
# Strip off leading nuttx_
|
||||
NUTTX_CONFIG_TARGETS := $(patsubst nuttx_%,%,$(filter nuttx_%,$(ALL_CONFIG_TARGETS)))
|
||||
|
||||
|
@ -176,11 +174,10 @@ excelsior_legacy_default: posix_excelsior_legacy qurt_excelsior_legacy
|
|||
# Other targets
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware alt_firmware
|
||||
.PHONY: sizes check quick_check check_rtps
|
||||
.PHONY: qgc_firmware px4fmu_firmware misc_qgc_extra_firmware alt_firmware check_rtps
|
||||
|
||||
# QGroundControl flashable NuttX firmware
|
||||
qgc_firmware: px4fmu_firmware misc_qgc_extra_firmware sizes
|
||||
qgc_firmware: px4fmu_firmware misc_qgc_extra_firmware
|
||||
|
||||
# px4fmu NuttX firmware
|
||||
px4fmu_firmware: \
|
||||
|
@ -221,6 +218,8 @@ check_rtps: \
|
|||
check_posix_sitl_rtps \
|
||||
sizes
|
||||
|
||||
.PHONY: sizes check quick_check check_rtps
|
||||
|
||||
sizes:
|
||||
@-find build -name *.elf -type f | xargs size 2> /dev/null || :
|
||||
|
||||
|
@ -228,7 +227,7 @@ sizes:
|
|||
check: check_posix_sitl_default px4fmu_firmware misc_qgc_extra_firmware alt_firmware tests check_format
|
||||
|
||||
# quick_check builds a single nuttx and posix target, runs testing, and checks the style
|
||||
quick_check: check_posix_sitl_default check_px4fmu-v3_default tests check_format
|
||||
quick_check: check_posix_sitl_default check_px4fmu-v4pro_default tests check_format
|
||||
|
||||
check_%:
|
||||
@echo
|
||||
|
@ -240,8 +239,9 @@ check_%:
|
|||
# --------------------------------------------------------------------
|
||||
.PHONY: parameters_metadata airframe_metadata module_documentation px4_metadata
|
||||
|
||||
parameters_metadata: posix_sitl_default
|
||||
@python $(SRC_DIR)/Tools/px_process_params.py -s $(SRC_DIR)/src --markdown
|
||||
parameters_metadata:
|
||||
@python $(SRC_DIR)/Tools/px_process_params.py -s `find $(SRC_DIR)/src -maxdepth 3 -type d` --inject-xml $(SRC_DIR)/Tools/parameters_injected.xml --markdown
|
||||
@python $(SRC_DIR)/Tools/px_process_params.py -s `find $(SRC_DIR)/src -maxdepth 3 -type d` --inject-xml $(SRC_DIR)/Tools/parameters_injected.xml --xml
|
||||
|
||||
airframe_metadata:
|
||||
@python $(SRC_DIR)/Tools/px_process_airframes.py -v -a $(SRC_DIR)/ROMFS/px4fmu_common/init.d --markdown
|
||||
|
@ -260,13 +260,6 @@ px4_metadata: parameters_metadata airframe_metadata module_documentation
|
|||
# AWS_S3_BUCKET
|
||||
.PHONY: s3put_firmware s3put_qgc_firmware s3put_px4fmu_firmware s3put_misc_qgc_extra_firmware s3put_metadata s3put_scan-build s3put_cppcheck s3put_coverage
|
||||
|
||||
Firmware.zip:
|
||||
@rm -rf Firmware.zip
|
||||
@zip --junk-paths Firmware.zip `find . -name \*.px4`
|
||||
|
||||
s3put_firmware: Firmware.zip
|
||||
$(SRC_DIR)/Tools/s3put.sh Firmware.zip
|
||||
|
||||
s3put_qgc_firmware: s3put_px4fmu_firmware s3put_misc_qgc_extra_firmware
|
||||
|
||||
s3put_px4fmu_firmware: px4fmu_firmware
|
||||
|
@ -278,17 +271,17 @@ s3put_misc_qgc_extra_firmware: misc_qgc_extra_firmware
|
|||
s3put_metadata: px4_metadata
|
||||
@$(SRC_DIR)/Tools/s3put.sh airframes.md
|
||||
@$(SRC_DIR)/Tools/s3put.sh airframes.xml
|
||||
@$(SRC_DIR)/Tools/s3put.sh build/posix_sitl_default/parameters.xml
|
||||
@$(SRC_DIR)/Tools/s3put.sh parameters.xml
|
||||
@$(SRC_DIR)/Tools/s3put.sh parameters.md
|
||||
|
||||
s3put_scan-build: scan-build
|
||||
@cd $(SRC_DIR) && ./Tools/s3put.sh `find build/scan-build -mindepth 1 -maxdepth 1 -type d`/
|
||||
@$(SRC_DIR)/Tools/s3put.sh `find $(SRC_DIR)/build/scan-build -mindepth 1 -maxdepth 1 -type d`/
|
||||
|
||||
s3put_cppcheck: cppcheck
|
||||
@cd $(SRC_DIR) && ./Tools/s3put.sh cppcheck/
|
||||
@$(SRC_DIR)/Tools/s3put.sh $(SRC_DIR)/build/cppcheck/
|
||||
|
||||
s3put_coverage: tests_coverage
|
||||
@cd $(SRC_DIR) && ./Tools/s3put.sh build/posix_sitl_default/coverage-html/
|
||||
@$(SRC_DIR)/Tools/s3put.sh $(SRC_DIR)/build/posix_sitl_default/coverage-html/
|
||||
|
||||
# Astyle
|
||||
# --------------------------------------------------------------------
|
||||
|
@ -297,7 +290,7 @@ s3put_coverage: tests_coverage
|
|||
check_format:
|
||||
$(call colorecho,"Checking formatting with astyle")
|
||||
@$(SRC_DIR)/Tools/astyle/check_code_style_all.sh
|
||||
@git diff --check
|
||||
@cd $(SRC_DIR) && git diff --check
|
||||
|
||||
format:
|
||||
$(call colorecho,"Formatting with astyle")
|
||||
|
@ -308,19 +301,17 @@ format:
|
|||
.PHONY: tests tests_coverage
|
||||
|
||||
tests:
|
||||
$(MAKE) --no-print-directory posix_sitl_default test_results ASAN_OPTIONS="color=always"
|
||||
@$(MAKE) --no-print-directory posix_sitl_default test_results \
|
||||
ASAN_OPTIONS="color=always:check_initialization_order=1:detect_stack_use_after_return=1" \
|
||||
UBSAN_OPTIONS="color=always"
|
||||
|
||||
tests_coverage:
|
||||
@$(MAKE) --no-print-directory posix_sitl_default test_coverage_genhtml PX4_CMAKE_BUILD_TYPE=Coverage
|
||||
@echo "Open $(SRC_DIR)/build/posix_sitl_default/coverage-html/index.html to see coverage"
|
||||
|
||||
# static analyzers (scan-build, clang-tidy, cppcheck)
|
||||
# --------------------------------------------------------------------
|
||||
.PHONY: posix_sitl_default-clang scan-build clang-tidy clang-tidy-fix clang-tidy-quiet cppcheck check_stack
|
||||
|
||||
posix_sitl_default-clang:
|
||||
@mkdir -p $(SRC_DIR)/build/posix_sitl_default-clang
|
||||
@cd $(SRC_DIR)/build/posix_sitl_default-clang && cmake $(SRC_DIR) -GNinja -DCONFIG=posix_sitl_default -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
|
||||
@cd $(SRC_DIR)/build/posix_sitl_default-clang && ninja
|
||||
.PHONY: scan-build posix_sitl_default-clang clang-tidy clang-tidy-fix clang-tidy-quiet cppcheck check_stack
|
||||
|
||||
scan-build:
|
||||
@export CCC_CC=clang
|
||||
|
@ -329,32 +320,38 @@ scan-build:
|
|||
@cd $(SRC_DIR)/build/posix_sitl_default-scan-build && scan-build cmake $(SRC_DIR) -GNinja -DCONFIG=posix_sitl_default
|
||||
@scan-build -o $(SRC_DIR)/build/scan-build cmake --build $(SRC_DIR)/build/posix_sitl_default-scan-build
|
||||
|
||||
posix_sitl_default-clang:
|
||||
@mkdir -p $(SRC_DIR)/build/posix_sitl_default-clang
|
||||
@cd $(SRC_DIR)/build/posix_sitl_default-clang && cmake $(SRC_DIR) $(CMAKE_ARGS) -G"$(PX4_CMAKE_GENERATOR)" -DCONFIG=posix_sitl_default -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
|
||||
@$(PX4_MAKE) -C $(SRC_DIR)/build/posix_sitl_default-clang
|
||||
|
||||
clang-tidy: posix_sitl_default-clang
|
||||
@cd build/posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -p .
|
||||
@cd $(SRC_DIR)/build/posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -p .
|
||||
|
||||
# to automatically fix a single check at a time, eg modernize-redundant-void-arg
|
||||
# % run-clang-tidy-4.0.py -fix -j4 -checks=-\*,modernize-redundant-void-arg -p .
|
||||
clang-tidy-fix: posix_sitl_default-clang
|
||||
@cd build/posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -fix -p .
|
||||
@cd $(SRC_DIR)/build/posix_sitl_default-clang && run-clang-tidy-4.0.py -header-filter=".*\.hpp" -j$(j) -fix -p .
|
||||
|
||||
# modified version of run-clang-tidy.py to return error codes and only output relevant results
|
||||
clang-tidy-quiet: posix_sitl_default-clang
|
||||
@cd build/posix_sitl_default-clang && $(SRC_DIR)/Tools/run-clang-tidy.py -header-filter=".*\.hpp" -j$(j) -p .
|
||||
@cd $(SRC_DIR)/build/posix_sitl_default-clang && $(SRC_DIR)/Tools/run-clang-tidy.py -header-filter=".*\.hpp" -j$(j) -p .
|
||||
|
||||
# TODO: Fix cppcheck errors then try --enable=warning,performance,portability,style,unusedFunction or --enable=all
|
||||
cppcheck: posix_sitl_default
|
||||
@cppcheck -i$(SRC_DIR)/src/examples --std=c++11 --std=c99 --std=posix --project=build/posix_sitl_default/compile_commands.json --xml-version=2 2> cppcheck-result.xml
|
||||
@cppcheck-htmlreport --source-encoding=ascii --file=cppcheck-result.xml --report-dir=cppcheck --source-dir=$(SRC_DIR)/src/
|
||||
@mkdir -p $(SRC_DIR)/build/cppcheck
|
||||
@cppcheck -i$(SRC_DIR)/src/examples --enable=performance --std=c++11 --std=c99 --std=posix --project=$(SRC_DIR)/build/posix_sitl_default/compile_commands.json --xml-version=2 2> $(SRC_DIR)/build/cppcheck/cppcheck-result.xml > /dev/null
|
||||
@cppcheck-htmlreport --source-encoding=ascii --file=$(SRC_DIR)/build/cppcheck/cppcheck-result.xml --report-dir=$(SRC_DIR)/build/cppcheck --source-dir=$(SRC_DIR)/src/
|
||||
|
||||
check_stack: px4fmu-v3_default
|
||||
check_stack: px4fmu-v4pro_default
|
||||
@echo "Checking worst case stack usage with checkstack.pl ..."
|
||||
@echo " "
|
||||
@echo "Top 10:"
|
||||
@cd build/px4fmu-v3_default/ && mkdir -p stack_usage && arm-none-eabi-objdump -d nuttx_px4fmu-v3_default.elf | $(SRC_DIR)/Tools/stack_usage/checkstack.pl arm 0 > stack_usage/checkstack_output.txt 2> stack_usage/checkstack_errors.txt
|
||||
@head -n 10 build/px4fmu-v3_default/stack_usage/checkstack_output.txt | c++filt
|
||||
@cd $(SRC_DIR)/build/px4fmu-v4pro_default && mkdir -p stack_usage && arm-none-eabi-objdump -d nuttx_px4fmu-v4pro_default.elf | $(SRC_DIR)/Tools/stack_usage/checkstack.pl arm 0 > stack_usage/checkstack_output.txt 2> stack_usage/checkstack_errors.txt
|
||||
@head -n 10 $(SRC_DIR)/build/px4fmu-v4pro_default/stack_usage/checkstack_output.txt | c++filt
|
||||
@echo " "
|
||||
@echo "Symbols with 'main', 'thread' or 'task':"
|
||||
@cat build/px4fmu-v3_default/stack_usage/checkstack_output.txt | c++filt | grep -E 'thread|main|task'
|
||||
@cat $(SRC_DIR)/build/px4fmu-v4pro_default/stack_usage/checkstack_output.txt | c++filt | grep -E 'thread|main|task'
|
||||
|
||||
# Cleanup
|
||||
# --------------------------------------------------------------------
|
||||
|
@ -387,8 +384,6 @@ distclean: submodulesclean gazeboclean
|
|||
$(if $(filter $(FIRST_ARG),$@), \
|
||||
$(error "$@ cannot be the first argument. Use '$(MAKE) help|list_config_targets' to get a list of all possible [configuration] targets."),@#)
|
||||
|
||||
CONFIGS:=$(shell ls cmake/configs | sed -e "s~.*/~~" | sed -e "s~\..*~~")
|
||||
|
||||
#help:
|
||||
# @echo
|
||||
# @echo "Type 'make ' and hit the tab key twice to see a list of the available"
|
||||
|
|
|
@ -59,9 +59,13 @@ docker run -it --rm -w "${SRC_DIR}" \
|
|||
--env=CODECOV_TOKEN \
|
||||
--env=COVERALLS_REPO_TOKEN \
|
||||
--env=LOCAL_USER_ID="$(id -u)" \
|
||||
--env=PX4_ASAN \
|
||||
--env=PX4_MSAN \
|
||||
--env=PX4_TSAN \
|
||||
--env=PX4_UBSAN \
|
||||
--env=TRAVIS_BRANCH \
|
||||
--env=TRAVIS_BUILD_ID \
|
||||
--publish 14556:14556/udp \
|
||||
--volume=${CCACHE_DIR}:${CCACHE_DIR}:rw \
|
||||
--volume=${SRC_DIR}:${SRC_DIR}:rw \
|
||||
${PX4_DOCKER_REPO} /bin/bash -c "$@"
|
||||
${PX4_DOCKER_REPO} /bin/bash -c "$1 $2 $3"
|
||||
|
|
|
@ -64,10 +64,10 @@ def main():
|
|||
" (default FILENAME: airframes.xml)")
|
||||
parser.add_argument("-m", "--markdown",
|
||||
nargs='?',
|
||||
const="airframe_reference.md",
|
||||
const="airframes.md",
|
||||
metavar="FILENAME",
|
||||
help="Create Markdown file"
|
||||
" (default FILENAME: airframes_reference.md)")
|
||||
" (default FILENAME: airframes.md)")
|
||||
default_image_path = '../../assets/airframes/types'
|
||||
parser.add_argument("-i", "--image-path",
|
||||
default=default_image_path,
|
||||
|
|
|
@ -47,7 +47,7 @@ elseif(DEFINED ENV{PX4_UBSAN})
|
|||
endif()
|
||||
|
||||
if (SANITIZE_ADDRESS)
|
||||
message(STATUS "address sanitizer enabled")
|
||||
message(STATUS "AddressSanitizer enabled")
|
||||
|
||||
# environment variables
|
||||
# ASAN_OPTIONS=detect_stack_use_after_return=1
|
||||
|
@ -57,19 +57,21 @@ if (SANITIZE_ADDRESS)
|
|||
-fno-omit-frame-pointer
|
||||
-fsanitize=address
|
||||
#-fsanitize-address-use-after-scope
|
||||
-fno-optimize-sibling-calls
|
||||
)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address" CACHE INTERNAL "" FORCE)
|
||||
|
||||
elseif(SANITIZE_MEMORY)
|
||||
message(STATUS "thread sanitizer enabled")
|
||||
message(STATUS "MemorySanitizer enabled")
|
||||
|
||||
add_compile_options(
|
||||
-g3
|
||||
-fsanitize=memory
|
||||
)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=memory" CACHE INTERNAL "" FORCE)
|
||||
|
||||
elseif(SANITIZE_THREAD)
|
||||
message(STATUS "thread sanitizer enabled")
|
||||
message(STATUS "ThreadSanitizer enabled")
|
||||
|
||||
add_compile_options(
|
||||
-g3
|
||||
|
@ -78,21 +80,26 @@ elseif(SANITIZE_THREAD)
|
|||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread" CACHE INTERNAL "" FORCE)
|
||||
|
||||
elseif(SANITIZE_UNDEFINED)
|
||||
message(STATUS "undefined behaviour sanitizer enabled")
|
||||
message(STATUS "UndefinedBehaviorSanitizer enabled")
|
||||
|
||||
add_compile_options(
|
||||
-g3
|
||||
#-fsanitize=alignment
|
||||
-fsanitize=bool
|
||||
#-fsanitize=builtin
|
||||
-fsanitize=bounds
|
||||
-fsanitize=enum
|
||||
#-fsanitize=float-cast-overflow
|
||||
-fsanitize=float-cast-overflow
|
||||
-fsanitize=float-divide-by-zero
|
||||
#-fsanitize=function
|
||||
-fsanitize=integer-divide-by-zero
|
||||
-fsanitize=nonnull-attribute
|
||||
-fsanitize=null
|
||||
#-fsanitize=nullability-arg
|
||||
#-fsanitize=nullability-assign
|
||||
#-fsanitize=nullability-return
|
||||
-fsanitize=object-size
|
||||
#-fsanitize=pointer-overflow
|
||||
-fsanitize=return
|
||||
-fsanitize=returns-nonnull-attribute
|
||||
-fsanitize=shift
|
||||
|
@ -101,6 +108,8 @@ elseif(SANITIZE_UNDEFINED)
|
|||
#-fsanitize=unsigned-integer-overflow
|
||||
-fsanitize=vla-bound
|
||||
-fsanitize=vptr
|
||||
|
||||
-fno-sanitize-recover=bounds,null
|
||||
)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined" CACHE INTERNAL "" FORCE)
|
||||
|
||||
|
|
Loading…
Reference in New Issue