| # PR Workflow | |
| We use the bors-ng bot to merge PRs. In short, when someone replies `bors r+`, | |
| your PR has been scheduled for final tests and will be automatically merged. If | |
| a maintainer replies `bors delegate+`, then you have been granted the authority | |
| to merge your own PR (usually this will happen if there are some trivial | |
| changes required). For a full list of bors commands, | |
| [see the bors documentation](https://bors.tech/documentation/). | |
| # Tests | |
| Our aim is to provide a number of tests to be safe from regression. Currently, | |
| the unit tests and the linting is automated, however, the integration tests | |
| have to be run manually. | |
| ## Compilation | |
| `libtock-rs` currently has the following compilation targets | |
| - `riscv32imac-unknown-none-elf` | |
| - `riscv32imc-unknown-none-elf` | |
| - `thumbv7em-none-eabi` | |
| You can trigger a test build of the library and the examples using `make test`. | |
| ## Unit Testing and Linting | |
| There a a number of tests which run in our travis-ci environment. You can run them | |
| using `make test`. | |
| ## Integration tests | |
| If you have an nRF52 DK you can run the integration tests as follows. | |
| The pins P0.03 and P0.04 need to be connected (on an nRF52 DK). Then do the following: | |
| - connect your device to your computer | |
| - open a console, e.g. `tockloader listen` | |
| - run the tests: `make flash-nrf52 EXAMPLE=libtock_test FEATURES=alloc` | |
| The expected output on the UART console will be as follows. | |
| ``` | |
| [ OK ] Console | |
| [ OK ] static mut | |
| [ OK ] Dynamic dispatch | |
| [ OK ] Formatting | |
| [ OK ] Heap | |
| [ OK ] Drivers only instantiable once | |
| [ OK ] Callbacks | |
| [ OK ] GPIO initialization | |
| [ OK ] GPIO activation | |
| [ OK ] GPIO read/write | |
| [ OK ] Test suite finished with state SUCCESS | |
| ``` |