forked from enlightenment/efl
e0cf299ae5
Summary: Depends on D11788 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11789 |
||
---|---|---|
.. | ||
README | ||
efl_test_basics.c | ||
efl_test_clickable.c | ||
efl_test_container.c | ||
efl_test_content.c | ||
efl_test_format.c | ||
efl_test_gfx_arrangement.c | ||
efl_test_gfx_view.c | ||
efl_test_multi_selectable.c | ||
efl_test_pack.c | ||
efl_test_pack_linear.c | ||
efl_test_range_display.c | ||
efl_test_range_interactive.c | ||
efl_test_selectable.c | ||
efl_test_single_selectable.c | ||
efl_test_ui_view.c | ||
efl_ui_spec_suite.c | ||
efl_ui_spec_suite.h | ||
generator.py | ||
meson.build |
README
== What is this spec test suite for ? == The spec test suite tests code purely against interfaces. There is no specific widget code in the tests; only interface calls are tested. This is useful for testing the same interface on different implementations. == Test metadata == The test framework is driven by some metadata found at the top of every test file. There is a C comment at the top of every test file that starts with "spec-meta-start", followed by a json snippet. For instance: /* spec-meta-start {"test-interface":"Efl.Pack_Linear", "test-widgets": ["Efl.Ui.Box", "Efl.Ui.Grid"], "custom-mapping" : { "Efl.Ui.Grid" : "EFL_UI_GRID_DEFAULT_ITEM_CLASS" } } spec-meta-end */ The "test-interface" key specifies the interface being tested. The "test-widgets" key specifies the widgets where this interface will be tested. "custom-mapping" is an optional key. Some interface methods might require that an object of a specific type is passed as parameter. With "custom-mapping" you can specify the types of these objects for each widget. The above example instructs the test framework to inject objects of type EFL_UI_GRID_DEFAULT_ITEM_CLASS when testing methods of the Efl.Ui.Grid widget that require an object. == Adding a widget to a test == Just add your widget name to the "test-widgets" array and recompile. Next run of the spec test suite will check if your widget follows the spec of this interface. == Adding a new test == To add a new test you need to create the .c file and include the metadata comment at the top. Remember to add the new .c file to the meson.build file.