lvgl/tests
2024-11-21 22:14:48 +01:00
..
gen_json feat: add API JSON generator (#5677) 2024-06-20 22:02:25 +02:00
makefile chore(Makefile): remove useless macro LV_USE_DEV_VERSION 2024-03-27 16:13:42 +08:00
makefile_uefi feat(ci): Add CI test for UEFI build (#5964) 2024-04-20 20:49:56 +02:00
micropy_test chore(logo): update lvgl logo (#6416) 2024-07-05 00:19:44 +02:00
ref_imgs perf(span): optimize span render performance up by 50% (#7290) 2024-11-21 22:42:16 +08:00
ref_imgs_vg_lite ci: fix a reference image 2024-11-21 22:14:48 +01:00
src perf(span): optimize span render performance up by 50% (#7290) 2024-11-21 22:42:16 +08:00
test_images fix(script): update RLE compressed image raw len without padding 2024-06-26 12:00:04 +02:00
unity chore: remove UTF-8 BOMs (#6942) 2024-10-11 21:31:35 +02:00
.gitignore fix(refr): reshape using draw_buf stride (#6567) 2024-08-13 10:08:05 +02:00
CMakeLists.txt feat(libs): add SVG rendering support (#6845) 2024-10-15 21:33:27 +08:00
config.yml feat(test) first experiement with Unity test engine 2021-06-18 14:13:41 +02:00
FindLibDRM.cmake fix(drm): eliminate use of non-existent lv_api_map.h and enable smoke tests (#5694) 2024-02-22 12:19:23 +01:00
main.py feat(driver): import Wayland driver from v8 (#6549) 2024-08-23 22:03:55 +02:00
README.md feat(test): automatically generate test image (#4976) 2024-01-19 10:38:30 +01:00

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

  1. Run all executable tests with ./tests/main.py test.
  2. Build all build-only tests with ./tests/main.py build.
  3. Clean prior test build, build all build-only tests, run executable tests, and generate code coverage report ./tests/main.py --clean --report build test.
  4. 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 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 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 the ref_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.