summaryrefslogtreecommitdiff
path: root/test
AgeCommit message (Collapse)Author
2025-02-11test: Drop the function for running bootstd testsSimon Glass
Use the new suite-runner to run these tests instead. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Update bootstd to do init from testsSimon Glass
Rather than having an init function and then running the tests, create a test-init function to do it. This will allow us to get rid of the command function. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Drop the function for running fdt_overlay testsSimon Glass
Use the new suite-runner to run these tests instead. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Update fdt_overlay to do init from testsSimon Glass
Rather than having an init function and then running the tests, create a test-init function to do it. This will allow us to get rid of the command function. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Update fdt_overlay test to use fdtdec functionsSimon Glass
Use the helpers provided for this purpose, rather than different ones in this particular test. Leave fdt_getprop_str() alone as it seems to have more value. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Move fdt_overlay init into a functionSimon Glass
Move the init code into a separate function since it is quite large. Adjust it to use unit-test functions which have become available since the test was written. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Make all tests depend on UNIT_TESTSimon Glass
Rather than having this condition defined separately for each suite, bracket all options with 'if UNIT_TEST'. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Move fdt-overlay-test rule into test/Simon Glass
The Makefile rules for tests should be within test/Makefile so move the 'fdt-overlay' rule over. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Move optee-test rule into test/Simon Glass
The Makefile rules for tests should be within test/Makefile so move the 'optee' rule over. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Move env-test rule into test/Simon Glass
The Makefile rules for tests should be within test/Makefile so move the 'env' rule over. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Tweak FDT-overlay testsSimon Glass
Use fdt_overlay consistently in the identifiers and file/dir names. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Support an init/uninit functions for test suitesSimon Glass
Some suites need things to be set up before they can run. Add a way to declare an init function using the UNIT_TEST_INIT() macro. The init function is just like any other test, but is always placed first so that it runs before all the other test functions in the suite. Add an uninit function as well, to clean up after the test. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Leave out the prefix when printing test namesSimon Glass
When tests are all in the same suite it is annoying to have to read all the common text after each name. Skip this to help the user. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Show the average time per testSimon Glass
Show the average duration of a test, so we can keep track of how it is trending. Report the suite with the longest average test to encourage people to improve it. Add a function to update the stats based on the results from a single suite and another to show the summary information. Make this optional, since sandbox's SPL tests do not have a timer driver and people may want to print results without times. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Keep track of suite durationSimon Glass
Show the time taken by each test suite with 'ut all' and the total time for all suites. Take care to remove any sandbox time-offset from the values. Fix the comment-format on timer_test_add_offset() while we are here. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Add up the number of tests manuallySimon Glass
All tests should belong to a suite, but if there is a suite we don't know about (e.g. not added to cmd_ut.c) then the totals will not add up. Add a check for this. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Fix a stray asterisk in ut_run_list()Simon Glass
Drop the unwanted asterisk in the comment. Signed-off-by: Simon Glass <[email protected]>
2025-02-11test: Drop sandbox_set_enable_memio() from mux-cmd testSimon Glass
This test does not appear to use sandbox's memory-mapped I/O so there is no need to enable it. Even if there were a need, it should be disabled at the end of the test, so as not to affect other tests. Drop these lines from the test. Signed-off-by: Simon Glass <[email protected]>
2025-02-10test/py: usb: Fix format string for fstype commandAndrew Goodbody
USB tests on ext partitions can fail with the following output test/py/tests/test_usb.py:245: in test_usb_part 'fstype usb %d:%d' % i, part_id E TypeError: not enough arguments for format string So add brackets around the format string arguments to prevent the error. Fixes: a730947974e3 ("test/py: usb: Distinguish b/w ext2/ext4 partitions") Signed-off-by: Andrew Goodbody <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Reviewed-by: Love Kumar <[email protected]>
2025-02-07Merge patch series "cmd/setexpr: support concatenation of direct strings"Tom Rini
Heinrich Schuchardt <[email protected]> says: The setexpr.s command allows to concatenate two strings. According to the description in doc/usage/cmd/setexpr.rst the parameters value1 and value2 can be either direct values or pointers to a memory location holding the values. Unfortunately `setexpr.s <value1> + <value2>` fails if any of the values is a direct value. $? is set to false. * Add support for direct values in setexpr.s. * Correct the unit test for "setexpr.s fred 0". * Add a new unit test for "setexpr.s fred '1' + '3'" giving '13'. * Remove invalid memory leak tests Link: https://lore.kernel.org/r/[email protected]
2025-02-07cmd/setexpr: support concatenation of direct stringsHeinrich Schuchardt
The setexpr.s command allows to concatenate two strings. According to the description in doc/usage/cmd/setexpr.rst the parameters value1 and value2 can be either direct values or pointers to a memory location holding the values. Unfortunately `setexpr.s <value1> + <value2>` fails if any of the values is a direct value. $? is set to false. * Add support for direct values in setexpr.s. * Correct the unit test for "setexpr.s fred 0". * Add a new unit test for "setexpr.s fred '1' + '3'" giving '13'. Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-02-07test: remove available memory check in setexpr_test_str_oper()Heinrich Schuchardt
env_set() frees the previous value after allocating the new value. As the free() may merge memory chunks the available memory is not expected to stay constant. Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-02-07test: remove available memory check in setexpr_test_str()Heinrich Schuchardt
env_set() frees the previous value after allocating the new value. As the free() may merge memory chunks the available memory is not expected to stay constant. Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-02-07test: clean up setexpr_test_str()Heinrich Schuchardt
Assign variable buf in the sub-test where it is used. Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-02-07Merge patch series "led: add function naming option from linux"Tom Rini
Heiko Schocher <[email protected]> says: In linux we have the option to create the name of a led optionally through the following properties: - function - color - function-enumerator This series adds support for parsing this properties if there is no label property. Link: https://lore.kernel.org/r/[email protected] [trini: Document name parameter in led.h]
2025-02-07led: add function naming option from linuxHeiko Schocher
in linux we have the option to create the name of a led optionally through the following properties: - function - color - function-enumerator This patch adds support for parsing this properties if there is no label property. The led name is created in led_post_bind() and we need some storage place for it. Currently this patch prevents to use malloc() instead it stores the name in new member : char name[LED_MAX_NAME_SIZE]; of struct led_uc_plat. While at it append led tests for the new feature. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-01-30test/py: Add a report show test durationsSimon Glass
Execution time varies widely with the existing tests. Provides a way to produce a summary of the time taken for each test, along with a histogram. This is enabled with the --timing flag. Enable it for sandbox in CI. Example: Duration : Number of tests ======== : ======================================== <1ms : 1 <8ms : 1 <20ms : # 20 <30ms : ######## 127 <50ms : ######################################## 582 <75ms : ####### 102 <100ms : ## 39 <200ms : ##### 86 <300ms : # 29 <500ms : ## 42 <750ms : # 16 <1.0s : # 15 <2.0s : # 23 <3.0s : 13 <5.0s : 9 <7.5s : 1 <10.0s : 6 <20.0s : 12 Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-01-28bloblist: add api to get blob with sizeRaymond Mao
bloblist_find function only returns the pointer of blob data, which is fine for those self-describing data like FDT. But as a common scenario, an interface is needed to retrieve both the pointer and the size of the blob data. Add a few ut test cases for the new api. Signed-off-by: Raymond Mao <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Signed-off-by: Ilias Apalodimas <[email protected]>
2025-01-27test/cmd/wget.c: Fix loadaddr rewriteMarek Vasut
The $loadaddr variable is a hexadecimal value, not a string, it must be assigned using env_set_hex(). This may break follow up tests, like the dm_test_cmd_hash_md5 in CI. To avoid any interference with other tests, set $wgetaddr variable which is specific to this test and use it in the test. Fixes: 20f641987f83 ("test/cmd/wget.c: move net_test_wget() to the cmd test suite") Signed-off-by: Marek Vasut <[email protected]> Acked-by: Jerome Forissier <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2025-01-26test/log: test function filtersHeinrich Schuchardt
Add unit tests for function filters. Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-01-26log: enable filtering on functionsHeinrich Schuchardt
Up to now we could only use log level, category, and file for filtering. Allow filtering on a list of functions. Signed-off-by: Heinrich Schuchardt <[email protected]>
2025-01-25test/py: Handle u-boot-test-getrole failureSimon Glass
This script can fail if there is no toolchain available for the board. At present this is not handled very nicely, in that only the error output is reported. It is much more useful to see everything, so combine stdout and stderr and report them both. Signed-off-by: Simon Glass <[email protected]>
2025-01-25test/py: Provide the correct U_BOOT_SOURCE_DIR to getroleSimon Glass
The u-boot-test-getrole script runs before the normal environment variables have been set up. This is unavoidable since the script is providing necessary information to test.py This means that U_BOOT_SOURCE_DIR is not set in the environment. As a result, Labgrid uses its default source path, configured in its environment variable. While this may happen to work, it is not correct. Also, it causes problems when running from Gitlab, where the runner may not have access to that source path. Provide the required source path in U_BOOT_SOURCE_DIR so that Labgrid does the right thing. Signed-off-by: Simon Glass <[email protected]> Fixes: bf89a8f1fc2 ("test: Introduce the concept of a role") [1] https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/
2025-01-24Merge patch series "test: Improvements to ut command and test-suite running"Tom Rini
Simon Glass <[email protected]> says: The current method of running unit tests relies on subcommands of the ut command. Only the code in each subcommand knows how to find the tests related to that subcomand. This is not ideal and we now have quite a few subcommands which do nothing but locate the relevant tests in a linker list, then call a common function to run them. This series adds a list of test suites, so that these subcommands can be removed. An issue with 'ut all' is that it doesn't record how many tests failed overall, so it is necessary to examine copious amounts of output to look for failures. This series adds a new 'total' feature allow recording the total number of failed tests. To help with 'ut all' a new pytest is created which runs it (as well as 'ut info') and makes sure that all is well. Due to the 'ut all' failures this does not pass, so the test is disabled for now. It is here because it provides security against misnaming a test suite and causing it not to run. Future work may: - get 'ut all' passing - enable test_suite() in CL, to ensure that 'ut all' keeps passing - record duration of each suite - allow running the tests in random order to tease out dependencies - tweak the output to remove common prefixes - getting rid of bootstd, optee and seame 'ut' subcommands Link: https://lore.kernel.org/r/[email protected]
2025-01-24test: Move help into the suite declarationSimon Glass
Rather than having the help in the longhelp, put it in the suite info so 'ut info -s' can show it. This is tidier, particular due to the removal of #ifdefs This means that the help text is present in the image (although not displayed with 'ut info -s') so the image-size increases. But with UNIT_TEST enabled, we expect large images so this doesn't seem important. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Disable test_suiteSimon Glass
This fails at present, so disable it until it can pass. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Sort the test suitesSimon Glass
Put the suites in order by name, for easier code-maintenance. This also helps find test results for a particular swuit in the 'ut all' output. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Record and show the totals for all test runsSimon Glass
With 'ut all' multiple test suites are run. Add a way to collect totals and show them at the end. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Move stat-printing into its own functionSimon Glass
Add a function to show the stats, so we can decide when to print it. This slightly adjusts the output, so that any 'test not found' message appears on its own line after all other output. The 'failures' message now appears in lower case so update pytest accordingly. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Keep a track of the numbers of tests runSimon Glass
This is useful information and is not always the same as the 'count' arg to ut_run_list() so add it as a separate stat. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Move stats into a structSimon Glass
Use a struct to hold the stats, since we also want to have the same stats for all runs as we have for each suite. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Pass the test state to cmd_ut_category()Simon Glass
Update this function to access a unit-test state, so that the caller can collect results from running multiple suites. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Drop conditional compilation for suitesSimon Glass
This is not needed anymore. If a test suite is not built, then it will have no linker-list entries. So we can just check for that and know that the suite is not present. This allows removal of the #ifdefs and the need to keep them in sync with the associated Makefile rules, which has actually failed, since the help does not match what commands are actually present. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Drop the info test from the listSimon Glass
The 'info' test is not a real test. With the new suite array we can drop this and the associated special-case code. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Drop the function for running upl testsSimon Glass
Use the new suite-runner to run these tests instead. It is not clear that these actually work, since they are not enabled on sandbox for some reason. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Drop the function for running seama testsSimon Glass
Use the new suite-runner to run these tests instead. It is not clear that these actually work, since they are not enabled on sandbox for some reason. Signed-off-by: Simon Glass <[email protected]> Acked-by: Linus Walleij <[email protected]>
2025-01-24test: Drop the function for running pci_mps testsSimon Glass
Use the new suite-runner to run these tests instead. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Drop the function for running loadm testsSimon Glass
Use the new suite-runner to run these tests instead. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Drop the function for running hush testsSimon Glass
Use the new suite-runner to run these tests instead. Signed-off-by: Simon Glass <[email protected]>
2025-01-24test: Drop the function for running addrmap testsSimon Glass
Use the new suite-runner to run these tests instead. Signed-off-by: Simon Glass <[email protected]>