This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
workgroup:codequality:start [2017/04/20 03:58] Daniel Agar |
workgroup:codequality:start [2017/07/27 20:43] (current) Mark Charlebois |
||
---|---|---|---|
Line 3: | Line 3: | ||
The Code Quality WG is focused on ways to provide incremental improvements to Dronecode project code quality and testing. | The Code Quality WG is focused on ways to provide incremental improvements to Dronecode project code quality and testing. | ||
+ | |||
+ | __Tools__ | ||
* Coverity - https://scan.coverity.com/projects/px4-firmware | * Coverity - https://scan.coverity.com/projects/px4-firmware | ||
* clang-tidy | * clang-tidy | ||
- | * astyle | + | * astyle - consistent code formatting improves readability and reduces potential merge conflicts for downstream adopters |
+ | * Docker - consistent, repeatable build environment | ||
__Build System__ | __Build System__ | ||
* travis-ci (http://travis-ci.org/PX4/Firmware) | * travis-ci (http://travis-ci.org/PX4/Firmware) | ||
+ | * responsible for building and deploying production binaries for QGroundControl | ||
* semaphoreci (https://semaphoreci.com/px4/firmware/) | * semaphoreci (https://semaphoreci.com/px4/firmware/) | ||
* circleci (https://circleci.com/gh/PX4/Firmware) | * circleci (https://circleci.com/gh/PX4/Firmware) | ||
* jenkins (http://sitl01.dronetest.io/) | * jenkins (http://sitl01.dronetest.io/) | ||
+ | * runs a set of multicopter and VTOL mission tests | ||
__Testing__ | __Testing__ | ||
Line 19: | Line 24: | ||
* mission tests | * mission tests | ||
* unit tests | * unit tests | ||
- | + | * SITL (Software in the loop) | |
+ | * HIL (Hardware in the loop) | ||
__Todo__ | __Todo__ | ||
Line 29: | Line 34: | ||
* hardware tests | * hardware tests | ||
* perf tracking | * perf tracking | ||
+ | * Automated testing (static analysis, etc) | ||
+ | * Running with address sanitier and thread sanitizer enabled | ||
+ | * Clang tidy expand usage (modernize c++) | ||
+ | * Identifying code in desperate need of refactoring (commander) | ||
+ | * Using safe C++ types | ||
+ | * A time in ms should be a time_ms type vs an int, safe addition, multiplication can then be used | ||
+ | * Convert Orb and param usage to C++ APIs for type safety | ||
+ | * Commander re-write | ||
+ | * Better quantified code coverage tests | ||
+ | * Make it easier for people to contribute and maintain code quality | ||
+ | * Unify NuttX and DriverFramework drivers | ||
+ | * Create design pattern for driver based on cross platform requirements | ||
+ | |||