summaryrefslogtreecommitdiff
path: root/doc/develop
diff options
context:
space:
mode:
Diffstat (limited to 'doc/develop')
-rw-r--r--doc/develop/py_testing.rst33
-rw-r--r--doc/develop/release_cycle.rst4
-rw-r--r--doc/develop/tests_writing.rst52
3 files changed, 64 insertions, 25 deletions
diff --git a/doc/develop/py_testing.rst b/doc/develop/py_testing.rst
index 6ff78103409..b50473039be 100644
--- a/doc/develop/py_testing.rst
+++ b/doc/develop/py_testing.rst
@@ -246,6 +246,39 @@ Command-line options
sets the directory used to store persistent test data. This is test data that
may be re-used across test runs, such as file-system images.
+--timing
+ shows a histogram of test duration, at the end of the run. The columns are:
+
+ Duration
+ the duration-bucket that this test was in
+
+ Total
+ total time of all tests in this bucket
+
+ Number of tests
+ graph showing the number of tests in this bucket, with the actual number
+ shown at the end
+
+ Example::
+
+ Duration : Total | Number of tests
+ ======== : ======= |========================================
+ <20ms : 418ms |## 23
+ <30ms : 9.1s |######################################## 347
+ <40ms : 10.0s |################################# 294
+ <50ms : 3.1s |####### 69
+ <75ms : 2.6s |#### 43
+ <100ms : 1.7s |## 19
+ <200ms : 3.0s |## 22
+ <300ms : 1.7s | 7
+ <400ms : 675ms | 2
+ <500ms : 2.2s | 5
+ <750ms : 8.3s |# 13
+ <1.0s : 1.6s | 2
+ <2.0s : 9.4s | 7
+ <3.0s : 2.4s | 1
+ <7.5s : 6.1s | 1
+
`pytest` also implements a number of its own command-line options. Commonly used
options are mentioned below. Please see `pytest` documentation for complete
details. Execute `py.test --version` for a brief summary. Note that U-Boot's
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index 9ecd6b6ab87..03deea2af1a 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -55,7 +55,7 @@ Current Status
* The Merge Window for the next release (v2025.04) is **closed**.
-* The next branch is now **closed** until the -rc2 release on Mon 10 February
+* The next branch is now **open** with the -rc2 release on Mon 10 February
2025.
* Release "v2025.04" is scheduled for 07 April 2025.
@@ -70,7 +70,7 @@ For the next scheduled release, release candidates were made on::
* U-Boot v2025.04-rc1 was released on Mon 27 January 2025.
-.. * U-Boot v2025.04-rc2 was released on Mon 10 February 2025.
+* U-Boot v2025.04-rc2 was released on Mon 10 February 2025.
.. * U-Boot v2025.04-rc3 was released on Mon 24 February 2025.
diff --git a/doc/develop/tests_writing.rst b/doc/develop/tests_writing.rst
index 54efb7e1b04..5f3c43d5da2 100644
--- a/doc/develop/tests_writing.rst
+++ b/doc/develop/tests_writing.rst
@@ -261,7 +261,7 @@ with the suite. For example, to add a new mem_search test::
/* Test 'ms' command with 32-bit values */
static int mem_test_ms_new_thing(struct unit_test_state *uts)
{
- /* test code here*/
+ /* test code here */
return 0;
}
@@ -291,32 +291,20 @@ suite. For example::
/* Declare a new wibble test */
#define WIBBLE_TEST(_name, _flags) UNIT_TEST(_name, _flags, wibble_test)
- /* Tetss go here */
-
- /* At the bottom of the file: */
-
- int do_ut_wibble(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
- {
- struct unit_test *tests = UNIT_TEST_SUITE_START(wibble_test);
- const int n_ents = UNIT_TEST_SUITE_COUNT(wibble_test);
-
- return cmd_ut_category("cmd_wibble", "wibble_test_", tests, n_ents, argc, argv);
- }
+ /* Tests go here */
Then add new tests to it as above.
Register this new suite in test/cmd_ut.c by adding to cmd_ut_sub[]::
- /* Within cmd_ut_sub[]... */
-
- U_BOOT_CMD_MKENT(wibble, CONFIG_SYS_MAXARGS, 1, do_ut_wibble, "", ""),
+ /* with the other SUITE_DECL() declarations */
+ SUITE_DECL(wibble);
-and adding new help to ut_help_text[]::
+ /* Within suites[]... */
+ SUITE(wibble, "my test of wibbles");
- "ut wibble - Test the wibble feature\n"
-
-If your feature is conditional on a particular Kconfig, then you can use #ifdef
-to control that.
+If your feature is conditional on a particular Kconfig, you do not need to add
+an #ifdef since the suite will automatically be compiled out in that case.
Finally, add the test to the build by adding to the Makefile in the same
directory::
@@ -326,17 +314,35 @@ directory::
Note that CMDLINE is never enabled in SPL, so this test will only be present in
U-Boot proper. See below for how to do SPL tests.
-As before, you can add an extra Kconfig check if needed::
+You can add an extra Kconfig check if needed::
ifneq ($(CONFIG_$(XPL_)WIBBLE),)
obj-$(CONFIG_$(XPL_)CMDLINE) += wibble.o
endif
+Each suite can have an optional init and uninit function. These are run before
+and after any suite tests, respectively::
+
+ #define WIBBLE_TEST_INIT(_name, _flags) UNIT_TEST_INIT(_name, _flags, wibble_test)
+ #define WIBBLE_TEST_UNINIT(_name, _flags) UNIT_TEST_UNINIT(_name, _flags, wibble_test)
-Example commit: 919e7a8fb64 ("test: Add a simple test for bloblist") [1]
+ static int wibble_test_init(struct unit_test_state *uts)
+ {
+ /* init code here */
+
+ return 0;
+ }
+ WIBBLE_TEST_INIT(wibble_test_init, 0);
-[1] https://gitlab.denx.de/u-boot/u-boot/-/commit/919e7a8fb64
+ static int wibble_test_uninit(struct unit_test_state *uts)
+ {
+ /* uninit code here */
+
+ return 0;
+ }
+ WIBBLE_TEST_INIT(wibble_test_uninit, 0);
+Both functions are included in the totals for each suite.
Making the test run from pytest
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~