Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
tests add README
- Loading branch information
1 parent
3672f87
commit b765643
Showing
2 changed files
with
64 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Tests for LVGL | ||
|
||
The tests in the folder can be run locally and automatically by GitHub CI. | ||
|
||
## Running locally | ||
|
||
### Requirements (Linux) | ||
1. Be sure GCC and Python3 is installed. | ||
2. Install [gcovr](https://gcovr.com/en/stable/index.html) with `pip install gcovr` | ||
3. Install Ruby with `sudo apt-get install ruby-full` | ||
|
||
### Run test | ||
1. Enter `lvgl/tests/` | ||
2. Run the tests with `./main.py [OPTIONS]`. The options are | ||
- `report` Create a html page in the `report` folder with the coverage report. | ||
- `test` Build and run only test. Without this option LVGL will be built with various configurations. | ||
- `noclean` Do not clean the project before building. Useful while writing test to save some times. | ||
|
||
For example: | ||
- `./main.py` Run all the test as they run in the CI. | ||
- `./main.py report test noclean` Run only the test, should be sued when writing tests. | ||
|
||
|
||
## Running automatically | ||
TODO | ||
|
||
GitHub's CI automatically runs these tests on pushes and pull requests to `master` and `releasev8.*` branches. | ||
|
||
## Directory structure | ||
- `src` Source files of the tests | ||
- `test_cases` The written tests, | ||
- `test_runners` Generated automatically from the files in `test_cases`. | ||
- other miscellaneous files and folders | ||
- `ref_imgs` - Reference images for screenshot compare | ||
- `report` - Coverage report. Generated if the `report` flag was passed to `./main.py` | ||
- `unity` Source files of the test engine | ||
|
||
## Add new tests | ||
|
||
### Create new test file | ||
New test needs to be added into the `src/test_cases` folder. The name of the files should look like `test_<name>.c`. The the basic skeleton of a test file copy `_test_template.c`. | ||
|
||
### Asserts | ||
See the list of asserts [here](https://github.com/ThrowTheSwitch/Unity/blob/master/docs/UnityAssertionsReference.md). | ||
|
||
There are some custom, LVGL specific asserts: | ||
- `TEST_ASSERT_EQUAL_SCREENSHOT("image1.png")` Render the active screen and compare its content with an image in the `ref_imgs` folder. | ||
If the compare fails `lvgl/test_screenshot_error.h` is created with the content of the frame buffer as an image. | ||
To see the that image `#include "test_screenshot_error.h"` and call `test_screenshot_error_show();`. | ||
- `TEST_ASSERT_EQUAL_COLOR(color1, color2)` Compare two colors. | ||
|
||
### Adding new reference images | ||
The reference images can be taken by copy-pasting the test code in to LVGL simulator and saving the screen. | ||
LVGL needs to | ||
- 800x480 resolution | ||
- 32 bit color depth | ||
- `LV_USE_PERF_MONITOR` and `LV_USE_MEM_MONITOR` disabled | ||
- use the default theme, with the default color (don't set a theme manually) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters