mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
2b6cc3bc9c
* slider: Refactor LV_SLIDER_KNOB_COORD and draw_knob The `hor` parameter of this macro was always true, ending up always using the left side of the ternary operator, with this refactor we eliminate the `hor` parameter and remove the ternary operator it was used for. This macro is only used in the `draw_knob` event handler, so it helps with its initial cleanup. * test(slider): Test documented default properties * test(slider): Tests for LV_EVENT_KEY with valid and invalid keys * feat(slider): Add helper to know if slider is horizontal * chore(slider): Cleanup LV_EVENT_PRESSING handler Reduce scope of variables where possible and use LV_CLAMP * chore(slider): Cleanup draw_knob * test(slider): Add tests for LV_EVENT_RELEASED * test(slider): Add note about left_knob_focus * test(slider): Initial test for hit test * test(slider): Add tests for different slider modes * chore(slider): cleanup draw_knob * chore(slider): Cleanup position_knob * test(slider): Move group configuration to setUp * test(slider): Refactor tests with feedback * add test_ranged_mode_adjust_with_encoder * code formatting * tests(slider): Remove direct usages of left_knob_focus * test(slider): Remove unused variable * Revert "test(slider): Refactor tests with feedback" This reverts commit b274f829ecd83c894569b6f0535c7edebce5cbc9. * test(slider): Add missing variable 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
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 compare failslvgl/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 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_MONITOR
andLV_USE_MEM_MONITOR
disabled- use the default theme, with the default color (don't set a theme manually)