From 6f0a3cd7bcdd4ce25b5ad253a6ebad88d4b94fbe Mon Sep 17 00:00:00 2001 From: Rasmus Villemoes Date: Wed, 7 May 2025 12:58:21 +0200 Subject: cyclic: document new guarantees for cyclic_(un)register Signed-off-by: Rasmus Villemoes Reviewed-by: Stefan Roese --- doc/develop/cyclic.rst | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'doc/develop') diff --git a/doc/develop/cyclic.rst b/doc/develop/cyclic.rst index 6f1da6f0d9b..a99b17052f5 100644 --- a/doc/develop/cyclic.rst +++ b/doc/develop/cyclic.rst @@ -54,3 +54,16 @@ responsible for calling all registered cyclic functions, into the common schedule() function. This guarantees that cyclic_run() is executed very often, which is necessary for the cyclic functions to get scheduled and executed at their configured periods. + +Idempotence +----------- + +Both the cyclic_register() and cyclic_unregister() functions are safe +to call on any struct cyclic_info, regardless of whether that instance +is already registered or not. + +More specifically, calling cyclic_unregister() with a cyclic_info +which is not currently registered is a no-op, while calling +cyclic_register() with a cyclic_info which is currently registered +results in it being automatically unregistered, and then registered +with the new callback function and timeout parameters. -- cgit v1.3.1 From 4fde49c317e1dc396b3dbf8e74757f5c18f60f1a Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Mon, 12 May 2025 15:54:24 -0600 Subject: doc: pytest: Use globing for test files After the original series was merged, Quentin noted that we could handle adding additional tests more easily by using the glob feature. Do so. Suggested-by: Quentin Schulz Signed-off-by: Tom Rini Reviewed-by: Quentin Schulz --- doc/develop/pytest/index.rst | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'doc/develop') diff --git a/doc/develop/pytest/index.rst b/doc/develop/pytest/index.rst index 0a7c1b21a24..dce8a96370f 100644 --- a/doc/develop/pytest/index.rst +++ b/doc/develop/pytest/index.rst @@ -16,12 +16,6 @@ Individual tests .. toctree:: :maxdepth: 1 + :glob: - test_000_version - test_bind - test_bootmenu - test_bootstage - test_button - test_efi_loader - test_net - test_net_boot + test_* -- cgit v1.3.1 From 2bac578c5abae233cc855f79791a2846c9a99518 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Sat, 3 May 2025 15:31:54 +0200 Subject: test: allow multiple config options in buildconfigspec In some cases we have alternative configuration options that supply the same functionality, e.g CONFIG_NET and CONFIG_NET_LWIP. Allow to specify all of them as arguments for buildconfigspec() and execute the text if any of these is fulfilled, e.g. @pytest.mark.buildconfigspec('net', 'net_lwip') Update the documentation. Signed-off-by: Heinrich Schuchardt Acked-by: Jerome Forissier Reviewed-by: Simon Glass --- doc/develop/pytest/usage.rst | 24 ++++++++++++++++++++++++ test/py/conftest.py | 10 +++++++--- 2 files changed, 31 insertions(+), 3 deletions(-) (limited to 'doc/develop') diff --git a/doc/develop/pytest/usage.rst b/doc/develop/pytest/usage.rst index 49d269d66a7..779b2dbe24b 100644 --- a/doc/develop/pytest/usage.rst +++ b/doc/develop/pytest/usage.rst @@ -522,3 +522,27 @@ of the `ubman.config` object, for example Build configuration values (from `.config`) may be accessed via the dictionary `ubman.config.buildconfig`, with keys equal to the Kconfig variable names. + +A required configuration setting can be defined via a buildconfigspec() +annotation. The name of the configuration option is specified in lower case. The +following annotation for a test requires CONFIG_EFI_LOADER=y: + +.. code-block:: python + + @pytest.mark.buildconfigspec('efi_loader') + +Sometimes multiple configuration option supply the same functionality. If +multiple arguments are passed to buildconfigspec(), only one of the +configuration options needs to be set. The following annotation requires that +either of CONFIG_NET or CONFIG_NET_LWIP is set: + +.. code-block:: python + + @pytest.mark.buildconfigspec('net', 'net lwip') + +The notbuildconfigspec() annotation can be used to require a configuration +option not to be set. The following annotation requires CONFIG_RISCV=n: + +.. code-block:: python + + @pytest.mark.notbuildconfigspec('riscv') diff --git a/test/py/conftest.py b/test/py/conftest.py index 5aea85647af..6c3ac67979a 100644 --- a/test/py/conftest.py +++ b/test/py/conftest.py @@ -711,9 +711,13 @@ def setup_buildconfigspec(item): """ for options in item.iter_markers('buildconfigspec'): - option = options.args[0] - if not ubconfig.buildconfig.get('config_' + option.lower(), None): - pytest.skip('.config feature "%s" not enabled' % option.lower()) + nomatch = True + for arg in options.args: + if ubconfig.buildconfig.get('config_' + arg.lower(), None): + nomatch = False + if nomatch: + argsString = ', '.join(options.args) + pytest.skip(f'.config features "{argsString}" not enabled') for options in item.iter_markers('notbuildconfigspec'): option = options.args[0] if ubconfig.buildconfig.get('config_' + option.lower(), None): -- cgit v1.3.1 From 2ca1398a5ece8d33d8feb6b410e6e38588b5d2bc Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Mon, 26 May 2025 16:02:19 -0600 Subject: Prepare v2025.07-rc3 Signed-off-by: Tom Rini --- Makefile | 2 +- doc/develop/release_cycle.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'doc/develop') diff --git a/Makefile b/Makefile index f3278e3b013..f88684947ee 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ VERSION = 2025 PATCHLEVEL = 07 SUBLEVEL = -EXTRAVERSION = -rc2 +EXTRAVERSION = -rc3 NAME = # *DOCUMENTATION* diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst index b68b462257d..36bb9055e6a 100644 --- a/doc/develop/release_cycle.rst +++ b/doc/develop/release_cycle.rst @@ -75,7 +75,7 @@ For the next scheduled release, release candidates were made on:: * U-Boot |next_ver|-rc2 was released on Mon 12 May 2025. -.. * U-Boot |next_ver|-rc3 was released on Mon 26 May 2025. +* U-Boot |next_ver|-rc3 was released on Mon 26 May 2025. .. * U-Boot |next_ver|-rc4 was released on Mon 09 June 2025. -- cgit v1.3.1