-
Notifications
You must be signed in to change notification settings - Fork 108
CI and QA
Continuous Integration and Quality Assurance are important development practices and we take them very seriously on Soletta's development.
To help us to keep code quality we're using a few processes, tools and web services.
Every single commit should be reviewed before integration to Soletta's
master
branch.
It's done on github, following these instructions.
For each pull request a semaphoreci build will be done, checking if Soletta is building fine for 3 different build configurations:
- alldefconfig
- modconfig
- allyesconfig
For each of those builds many automated tests will be done:
-
check - runs numerous unit tests to make sure Soletta's internals are
in good shape (tests at
src/tests/
) -
check-fbp - guarantees that all flow tests are correctly parsed by
sol-fbp-runner and behave as expected (tests at
src/tests-fbp/
) - check-fbp-bin - binaries are generated for all flow tests and executed to guarantee that code generated with sol-fbp-generator works as expected.
-
samples - tests if all samples build correctly (samples at
src/samples/
) - check-stub - checks if our tool that creates stubs for node types wasn't broken
Some extra checks are done on submitted code:
- check-style - makes sure new code is following the project's coding style
- doxygen - checks if no error is raised when creating C API documentation with doxygen (that should follow some standards)
- doxy-coverage - checks if no exposed C API is lacking documentation
Also every time a PR lands on master branch, it's built and all the previous steps are done (for 32 and 64 bits architectures).
If any issue is detected on PRs, it must be fixed before integration to 'master' branch.
If any issue is found on 'master' branch, what should be a rare situation given all PRs are tested first, Soletta developers should fix it immediately.
Even with many flags to show errors in the compiler, running hundreds of tests and doing manual code review, some issues may pass and end up on 'master' branch.
Once a day 'master' branch is scanned by Coverity, a static analysis tool. When issues are found this service notifies Soletta developers, that promptly fix them.
If you need access to it, please let us know.
We ask to any QA person, developer or user that finds any issue or behavior that doesn't seem correct to fill an issue on github.
There are some steps that may be taken to help Soletta's team to solve them as fast as possible.
Some engineers run fuzz tests to guarantee Soletta's inputs are well validated.
We're working on making them more open to public, so stay tuned for more about this subject in a near future.