* test(arc): Add test for valid creation
* test(arc): Add test for max value truncation
* test(arc): Add test for min value truncation
* test(arc): Add test for value adjustment after updating range
* test(arc): Update test for min value truncation
* test(arc): Add test for angle updating after changing to symmetrical mode
* test(arc): Add test for angle updating after changing to symmetrical mode and value is greater than middle range
* test(arc): Use unity setUp function
* remove API comments from lv_arc.c
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
* test(checkbox): Add initial test for checkbox
* test(checkbox): Add test_checkbox_should_have_default_text_when_created
* test(checkbox): Add test_checkbox_should_return_dinamically_allocated_text
* test(checkbox): Add initial tests for static text
Tests are failing tho
* test(arc): Rename bugfix test to arc
Also adds reference to issue in a comment
* test(checkbox): Tests for static text passes
* test(checkbox): Remove test for memory freeing when static text is refreshed
NULL isn't a valid parameter in lv_checkbox_set_text_static
Create one GitHub workflow job for each build option build
or test execution. This allows each of the five builds to
be executed in parallel as well as making it easier to
navigate to the test output as it now resides in its own
job.
This change **does** change the command-line arguments to
the test execution script. This is required to allow the
build options name to be passed in.
New `tests/main.py` command-line help:
```
usage: main.py [-h] [--build-options BUILD_OPTIONS] [--clean]
[--report]
[{build,test} [{build,test} ...]]
Build and/or run LVGL tests.
positional arguments:
{build,test} build: compile build tests, test:
compile/run executable tests.
optional arguments:
-h, --help show this help message and exit
--build-options BUILD_OPTIONS
the build option name to build or run.
When omitted all build configurations
are used.
--clean clean existing build artifacts before
operation.
--report generate code coverage report for
tests.
This program builds and optionally runs the LVGL test programs.
There are two types of LVGL tests: "build", and "test". The
build-only tests, as their name suggests, only verify that the
program successfully compiles and links (with various build
options). There are also a set of tests that execute to verify
correct LVGL library behavior.
```
Simplifies `tests/main.py` as it no longer needs to invoke
tests individually or keep track of and report their pass/fail
status.
Also enables the ability to run tests in parallel, support timeouts,
and re-run flaky tests.
https://cmake.org/cmake/help/latest/manual/ctest.1.html
Simplified workflow and documentation, by moving the
development package prerequisites into a new build script
`scripts/install-prerequisites.sh`.
Also, moved prerequisite installation into its own CI step and
removed explicit working directory change as it is no longer
needed (`main.py` does it).
* Convert tests/Makefile to a cmake project file.
This change switches the building of LVGL tests to use cmake
which is more portable than make. Additionally, whenever
cmake can be used, instead of the Python script (`main.py`),
the former is preferred.
The interface to `main.py` is unchanged, and tests are built
and executated the same as before.
This closes https://github.com/lvgl/lvgl/issues/2474.
* Installing `gcovr` in GitHub workflow.
* Documented steps to install libpng-dev.
* Added missing stdout flush when running tests.
* Grammar tweak in README.
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
* Refactor unit test scripts.
Does the following:
1. Remove as many dependencies on the operating system shell as possible.
For example, use of shutil.rmtree(...) instead of os.system('rm -r ...').
This brings this script a bit closer to being able to run on Windows.
2. Switch from os.system() to subprocess.check_call().
* This is a bit more secure as check_call() directly invokes the subprocess
without evaluation the arguments on a command-line.
* Removes the need to evaluate the return code as check_call() does this.
* Can directly set environment variables (e.g. env=cmd_env) instead of
including with subprocess invocation (e.g. BIN=test.bin).
3. Minor cleanup to main.py sys.argv parsing.
4. PEP8 formatting.
* Ignore FileNotFoundError for rmtree('report').
* Back to os.system for gcovr.
* Removed unused shutil import.
* 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
Add lv_<widget>_draw_part_type_t to widgets to precisly describe the hooked drawings.
Also add class_p element to lv_obj_draw_part_dsc_t to show what widgets lv_<widget>_draw_part_type_t needs to be used.
Related to: https://forum.lvgl.io/t/how-to-add-minor-division-lines-to-a-chart/5366/