mirror of
https://github.com/lvgl/lvgl.git
synced 2024-11-26 19:23:46 +08:00
bdfb80ef3e
Signed-off-by: yushuailong1 <yushuailong1@xiaomi.com> Co-authored-by: yushuailong1 <yushuailong1@xiaomi.com> Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com> Co-authored-by: FASTSHIFT <vifextech@foxmail.com> |
||
---|---|---|
.. | ||
gen_json | ||
makefile | ||
makefile_uefi | ||
micropy_test | ||
ref_imgs | ||
ref_imgs_vg_lite | ||
src | ||
test_images | ||
unity | ||
.gitignore | ||
CMakeLists.txt | ||
config.yml | ||
FindLibDRM.cmake | ||
main.py | ||
README.md |
Tests for LVGL
The tests in the folder can be run locally and automatically by GitHub CI.
Running locally
Requirements (Linux)
Install requirements by:
scripts/install-prerequisites.sh
Run test
- Run all executable tests with
./tests/main.py test
. - Build all build-only tests with
./tests/main.py build
. - Clean prior test build, build all build-only tests,
run executable tests, and generate code coverage
report
./tests/main.py --clean --report build test
. - You can re-generate the test images by adding option
--update-image
. It relies on scripts/LVGLImage.py, which requires pngquant and pypng. You can run below command firstly and follow instructions in logs to install them../tests/main.py --update-image test
Note that different version of pngquant may generate different images. As of now the generated image on CI uses pngquant 2.13.1-1.
For full information on running tests run: ./tests/main.py --help
.
Running automatically
GitHub's CI automatically runs these tests on pushes and pull requests to master
and releasev8.*
branches.
Directory structure
src
Source files of the teststest_cases
The written tests,test_runners
Generated automatically from the files intest_cases
.- other miscellaneous files and folders
ref_imgs
- Reference images for screenshot comparereport
- Coverage report. Generated if thereport
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 basic skeleton of a test file copy _test_template.c
.
Asserts
See the list of asserts here.
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 theref_imgs
folder.- If the reference image is not found it will be created automatically from the rendered screen.
- If the compare fails an
<image_name>_err.png
file will be created with the rendered content next to the reference image.
TEST_ASSERT_EQUAL_COLOR(color1, color2)
Compare two colors.