mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-23 13:56:20 +00:00
test: describe naming conventions for macro UNIT_TEST
Strict naming conventions have to be followed for Python function generate_ut_subtest() to collect C unit tests to be executed via command 'ut'. Describe the requirements both on the C as well on the Python side. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
6d3524c2ad
commit
d0ba026bd2
2 changed files with 39 additions and 2 deletions
|
@ -41,7 +41,29 @@ struct unit_test {
|
||||||
int flags;
|
int flags;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Declare a new unit test */
|
/**
|
||||||
|
* UNIT_TEST() - create linker generated list entry for unit a unit test
|
||||||
|
*
|
||||||
|
* The macro UNIT_TEST() is used to create a linker generated list entry. These
|
||||||
|
* list entries are enumerate tests that can be execute using the ut command.
|
||||||
|
* The list entries are used both by the implementation of the ut command as
|
||||||
|
* well as in a related Python test.
|
||||||
|
*
|
||||||
|
* For Python testing the subtests are collected in Python function
|
||||||
|
* generate_ut_subtest() by applying a regular expression to the lines of file
|
||||||
|
* u-boot.sym. The list entries have to follow strict naming conventions to be
|
||||||
|
* matched by the expression.
|
||||||
|
*
|
||||||
|
* Use UNIT_TEST(foo_test_bar, _flags, foo_test) for a test bar in test suite
|
||||||
|
* foo that can be executed via command 'ut foo bar' and is implemented in
|
||||||
|
* function foo_test_bar().
|
||||||
|
*
|
||||||
|
* @_name: concatenation of name of the test suite, "_test_", and the name
|
||||||
|
* of the test
|
||||||
|
* @_flags: an integer field that can be evaluated by the test suite
|
||||||
|
* implementation
|
||||||
|
* @_suite: name of the test suite concatenated with "_test"
|
||||||
|
*/
|
||||||
#define UNIT_TEST(_name, _flags, _suite) \
|
#define UNIT_TEST(_name, _flags, _suite) \
|
||||||
ll_entry_declare(struct unit_test, _name, _suite) = { \
|
ll_entry_declare(struct unit_test, _name, _suite) = { \
|
||||||
.file = __FILE__, \
|
.file = __FILE__, \
|
||||||
|
|
|
@ -22,7 +22,22 @@ def test_ut_dm_init(u_boot_console):
|
||||||
fh.write(data)
|
fh.write(data)
|
||||||
|
|
||||||
def test_ut(u_boot_console, ut_subtest):
|
def test_ut(u_boot_console, ut_subtest):
|
||||||
"""Execute a "ut" subtest."""
|
"""Execute a "ut" subtest.
|
||||||
|
|
||||||
|
The subtests are collected in function generate_ut_subtest() from linker
|
||||||
|
generated lists by applying a regular expression to the lines of file
|
||||||
|
u-boot.sym. The list entries are created using the C macro UNIT_TEST().
|
||||||
|
|
||||||
|
Strict naming conventions have to be followed to match the regular
|
||||||
|
expression. Use UNIT_TEST(foo_test_bar, _flags, foo_test) for a test bar in
|
||||||
|
test suite foo that can be executed via command 'ut foo bar' and is
|
||||||
|
implemented in C function foo_test_bar().
|
||||||
|
|
||||||
|
Args:
|
||||||
|
u_boot_console (ConsoleBase): U-Boot console
|
||||||
|
ut_subtest (str): test to be executed via command ut, e.g 'foo bar' to
|
||||||
|
execute command 'ut foo bar'
|
||||||
|
"""
|
||||||
|
|
||||||
output = u_boot_console.run_command('ut ' + ut_subtest)
|
output = u_boot_console.run_command('ut ' + ut_subtest)
|
||||||
assert output.endswith('Failures: 0')
|
assert output.endswith('Failures: 0')
|
||||||
|
|
Loading…
Add table
Reference in a new issue