* test(table): Happy path test for set_cell_value * table: Abstract char configuration on set_cell_value Abstract bytes to allocate calculation and txt copying * table: Add missing & * table: Update helper names * test(table): Add test for column increasing when setting a formatted cell value * table: Increase table columns when needed * test(table): Fix test_table_should_grow_columns_automatically_when_setting_formatted_cell_value * table: Fix code formatting * test(table): Add test for cell ctrl * table: Refactor draw_main low hanging fruits * lv_table: Initial refactor of get_row_height Mostly early breaks on loops and reducing variable scope where possible * lv_table: Initial refactor of refr_size Adding const wherever is possible * lv_table: Further cleanup get_row_height * lv_table: Cleanup loop in draw_main * lv_table: Fix -Werror=shadow compilation error * test(table): Tests for cell ctrl clearance * lv_table: Rename index to idx * lv_table: Use helper to know if cell is empty * test(table): Comment assumptions to column grow test * test(table): Row height with multi line cell value * test(table): Wrap on long texts and increase row height * add rendering test * fix warnings * fix out of bounds indexig * fix rendering test Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
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.
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
srcSource files of the teststest_casesThe written tests,test_runnersGenerated automatically from the files intest_cases.- other miscellaneous files and folders
ref_imgs- Reference images for screenshot comparereport- Coverage report. Generated if thereportflag was passed to./main.pyunitySource 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_imgsfolder. If the compare failslvgl/test_screenshot_error.his created with the content of the frame buffer as an image. To see the that image#include "test_screenshot_error.h"and calltest_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_MONITORandLV_USE_MEM_MONITORdisabled- use the default theme, with the default color (don't set a theme manually)