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/03/23 03:14] Daniel Agar |
workgroup:codequality:start [2017/07/27 20:43] (current) Mark Charlebois |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Code Quality WG ====== | ====== Code Quality WG ====== | ||
- | Coverity - https://scan.coverity.com/projects/px4-firmware | + | The Code Quality WG is focused on ways to provide incremental improvements to Dronecode project code quality and testing. |
- | clang-tidy | ||
- | astyle | ||
+ | __Tools__ | ||
- | __Build System | + | * Coverity - https://scan.coverity.com/projects/px4-firmware |
- | __ | + | * clang-tidy |
- | - travis-ci (http://travis-ci.org/PX4/Firmware) | + | * astyle - consistent code formatting improves readability and reduces potential merge conflicts for downstream adopters |
- | - semaphoreci (https://semaphoreci.com/px4/firmware/) | + | * Docker - consistent, repeatable build environment |
- | - circleci (https://circleci.com/gh/PX4/Firmware) | + | |
- | - jenkins (http://sitl01.dronetest.io/) | + | |
- | __Testing__ | ||
- | - mission tests | + | __Build System__ |
- | - unit tests | + | * travis-ci (http://travis-ci.org/PX4/Firmware) |
+ | * responsible for building and deploying production binaries for QGroundControl | ||
+ | * semaphoreci (https://semaphoreci.com/px4/firmware/) | ||
+ | * circleci (https://circleci.com/gh/PX4/Firmware) | ||
+ | * jenkins (http://sitl01.dronetest.io/) | ||
+ | * runs a set of multicopter and VTOL mission tests | ||
+ | __Testing__ | ||
+ | * mission tests | ||
+ | * unit tests | ||
+ | * SITL (Software in the loop) | ||
+ | * HIL (Hardware in the loop) | ||
__Todo__ | __Todo__ | ||
- | - significantly expand automated mission tests | + | * significantly expand automated mission tests |
- | - run mission tests under address sanitizer | + | * run mission tests under address sanitizer |
- | - code coverage | + | * code coverage |
- | - 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 | ||