lvgl/tests
2024-08-08 09:48:21 +01:00
..
makefile ci: protect test.c with #if LV_BUILD_TEST 2022-07-25 21:33:31 +02:00
ref_imgs fix(roller): set the position of the selected test correctly (#6082) 2024-05-16 11:59:41 +02:00
src fix(display): delete previous screen instead of current (#6495) 2024-08-08 09:48:21 +01:00
unity ci: update screenshot compare from v9 to automatically create missing reference images 2023-08-25 14:25:15 +02:00
.gitignore test convert Makefile to CMake (#2495) 2021-08-27 15:49:31 +02:00
CMakeLists.txt feat(tiny_ttf): backport Tiny TTF to lvgl 8 (#4727) 2023-11-03 00:03:09 +01:00
config.yml feat(test) first experiement with Unity test engine 2021-06-18 14:13:41 +02:00
main.py ci bump test timeout to 30 seconds [skip ci] 2022-05-09 13:40:48 -04:00
README.md chore(style): remove the trailing space from all source files (#3188) 2022-03-21 11:25:51 +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.

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 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)