Add minunit test framework (#168)

* add minunit tests

* fix logging

* ignore unexisting time service on embedded targets

* fix warning, issue with printf

* add exitcode

* migrate to printf

* indicate test by leds

* add testing description

* redesigned minunit tests to allow testing in separate files

* add test step for local target

* add failure test

* add restore test_check

* testing description

Co-authored-by: rusdacent <rusdacentx0x08@gmail.com>
Co-authored-by: DrZlo13 <who.just.the.doctor@gmail.com>
This commit is contained in:
coreglitch
2020-10-10 16:32:06 +06:00
committed by GitHub
parent aa3ac5b242
commit 176e608c6d
18 changed files with 903 additions and 243 deletions

View File

@@ -0,0 +1,35 @@
1. `# Clean flash`
2. `make -C bootloader flash` `# Load bootloader`
3. `# reboot device`
* Press right
* Press left
* Wait 0.1 s
* Release left
* Release right
4. Wait 0.5 s
5. `# Expect no FW`
* Expect: no uart welcome message
* Expect: red led on
* Expect: no USB
6. `# reboot device and go to DFU`
* Press left
* Press right
* Wait 0.1 s
* Release left
* Wait 0.5 s
* Release right
7. Wait 0.5 s
8. `# Expect DFU`
* Expect: blue led on
* Expect: USB: DFU
9. `target_f2/deploy-dfu.sh` `# load FW`
10. `# reboot device`
* Press right
* Press left
* Wait 0.1 s
* Release left
* Release right
11. Wait 0.5 s
12. `# Expect FW`
* Expect: uart welcome message
* Expect: USB Flipper CDC

View File

@@ -0,0 +1,59 @@
Local target:
* `docker-compose exec dev make -C firmware TARGET=local APP_TEST=1 clean`
* `docker-compose exec dev make -C firmware TARGET=local APP_TEST=1 run`
* check tests pass/fail (by exitcode == 0)
* `docker-compose exec dev make -C firmware TARGET=local APP_EXAMPLE_BLINK=1 run`
* GPIO on and off
* `docker-compose exec dev make -C firmware TARGET=local APP_EXAMPLE_UART_WRITE=1 run`
* GPIO on/off and `counter: %` writes
* `docker-compose exec dev make -C firmware TARGET=local APP_EXAMPLE_IPC=1 run`
* ASCII display draw
* `docker-compose exec dev make -C firmware TARGET=local APP_EXAMPLE_INPUT_DUMP=1 run` not implemented
* `docker-compose exec dev make -C firmware TARGET=local APP_EXAMPLE_QRCODE=1 run`
* Some writes to display
* `docker-compose exec dev make -C firmware TARGET=local APP_EXAMPLE_DISPLAY=1 run`
* Some writes to display
* `docker-compose exec dev make -C firmware TARGET=local APP_EXAMPLE_FATFS=1 flash`
* TODO: FatFs emulation and test not implemented
F2 target:
* `docker-compose exec dev make -C firmware TARGET=f2 APP_TEST=1 clean`
* `docker-compose exec dev make -C firmware TARGET=f2 APP_TEST=1 flash`
* check UART for test pass/fail
* blue led when test is running
* green led if test is passed
* red led if test is failed
* `docker-compose exec dev make -C firmware TARGET=f2 APP_EXAMPLE_BLINK=1 flash`
* Red LED blink (1s period)
* `docker-compose exec dev make -C firmware TARGET=f2 APP_EXAMPLE_UART_WRITE=1 flash`
* Red LED shortly blinking, `counter: %` writes to UART
* `docker-compose exec dev make -C firmware TARGET=f2 APP_EXAMPLE_IPC=1 flash`
* ASCII display draw in UART
* `docker-compose exec dev make -C firmware TARGET=f2 APP_EXAMPLE_INPUT_DUMP=1 flash`
* Press all buttons, `state` and `event` writes to UART
* `docker-compose exec dev make -C firmware TARGET=f2 APP_EXAMPLE_QRCODE=1 flash`
* QR code show on the screen
* `docker-compose exec dev make -C firmware TARGET=f2 APP_EXAMPLE_DISPLAY=1 flash`
* `Hello world` show on the screen
* `docker-compose exec dev make -C firmware TARGET=f2 APP_EXAMPLE_FATFS=1 flash`
* `Init sd card error` on the screen
* Insert SD-card
* Reboot
* Show file list on the screen
* Scroll by pressing up and down

View File

@@ -0,0 +1,22 @@
1. `docker-compose exec dev make -C target_f2 example_input_dump`
2. Flash
3. For x in ```
[
(Up, "00"),
(Down, "01"),
(Right, "02"),
(Left, "03"),
(Ok, "04"),
(Back, "05"),
]
```
* Press ${x[0]}
* wait 0.05
* Expect: Uart: "event: ${x[1]} pressed"
* wait 0.05
* Release ${x[0]}
* wait 0.05
* Expect: Uart: "event: ${x[1]} released"
* wait 0.05
TODO: add debouncing check (multiple press and check there is no multiple events)