* perf(draw) reimplement circle drawing algorithms Imporve the speed of circle drawing Add circle draw caching Various other speed improvements * docs describe how to use masks * fix(draw) add missing GC root usage
Tests for LVGL
The tests in the folder can be run locally and automatically by GitHub CI.
Running locally
Requirements (Linux)
- Be sure GCC and Python3 is installed.
- Install gcovr with
pip install gcovr - Install Ruby with
sudo apt-get install ruby-full
Run test
- Enter
lvgl/tests/ - Run the tests with
./main.py [OPTIONS]. The options are
reportCreate a html page in thereportfolder with the coverage report.testBuild and run only test. Without this option LVGL will be built with various configurations.nocleanDo not clean the project before building. Useful while writing test to save some times.
For example:
./main.pyRun all the test as they run in the CI../main.py report test nocleanRun only the test, should be sued when writing tests.
Running automatically
TODO
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 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)