[u-boot-test-hooks PATCH v5 0/3] Add support for Labgrid

This adds hooks for use with my integration for Labgrid (called Labgrid-sjg). The only existing hook that really does anything with the target, with this integration, is the 'console' one. There is also a new 'getrole' hook which looks up a role to find various things about it, such as the U-Boot board name.
Changes in v5: - Use Labgrid-sjg instead of Labgrid - Use LABGRID_SJG to indicates the 'Labgrid-sjg' integration is running - Update commit message and cover letter for Labgrid-sjg
Changes in v4: - Use an environment variable to select the Labgrid hooks - Add new patch to add .none scripts for power off/on - Support pytest fully with dual-build boards like Beagleplay
Changes in v3: - Fall back to conf.${board_type}_${board_ident} if conf.all missing - Update scripts for latest version of Labgrid integration - Add poweroff.none and poweron.none - Provide -n flag when querying board info - Target the grpc version of Labgrid which is now in -master - Update README to cover the changes
Changes in v2: - Make use of the common script (only) to set bin_dir - Make use of the common script (only) to set bin_dir
Simon Glass (3): Create a common file for test scripts Add .none scripts for power off/on Provide some basic scripts for Labgrid integration
README.md | 51 ++++++++++++++++++++++++++++++++ bin/console.labgrid-sjg | 42 ++++++++++++++++++++++++++ bin/ellesmere/common-labgrid-sjg | 46 ++++++++++++++++++++++++++++ bin/ellesmere/conf.all | 24 +++++++++++++++ bin/getrole.labgrid-sjg | 25 ++++++++++++++++ bin/poweroff.none | 22 ++++++++++++++ bin/poweron.none | 22 ++++++++++++++ bin/release.labgrid-sjg | 22 ++++++++++++++ bin/release.none | 22 ++++++++++++++ bin/u-boot-test-common | 36 ++++++++++++++++++++++ bin/u-boot-test-console | 8 +---- bin/u-boot-test-flash | 8 +---- bin/u-boot-test-getrole | 38 ++++++++++++++++++++++++ bin/u-boot-test-power-off | 8 +---- bin/u-boot-test-power-on | 8 +---- bin/u-boot-test-release | 26 ++++++++++++++++ bin/u-boot-test-reset | 8 +---- 17 files changed, 381 insertions(+), 35 deletions(-) create mode 100644 bin/console.labgrid-sjg create mode 100755 bin/ellesmere/common-labgrid-sjg create mode 100644 bin/ellesmere/conf.all create mode 100644 bin/getrole.labgrid-sjg create mode 100755 bin/poweroff.none create mode 100755 bin/poweron.none create mode 100644 bin/release.labgrid-sjg create mode 100644 bin/release.none create mode 100755 bin/u-boot-test-common create mode 100755 bin/u-boot-test-getrole create mode 100755 bin/u-boot-test-release

The top part of each of the u-boot-test-* files is common. Put it in a common script file to avoid duplication and to allow it to be replaced for the Labgrid-sjg integration.
Signed-off-by: Simon Glass sjg@chromium.org Reviewed-by: Tom Rini trini@konsulko.com ---
Changes in v5: - Use Labgrid-sjg instead of Labgrid - Use LABGRID_SJG to indicates the 'Labgrid-sjg' integration is running
Changes in v4: - Use an environment variable to select the Labgrid hooks
Changes in v3: - Fall back to conf.${board_type}_${board_ident} if conf.all missing
Changes in v2: - Make use of the common script (only) to set bin_dir
bin/u-boot-test-common | 36 ++++++++++++++++++++++++++++++++++++ bin/u-boot-test-console | 8 +------- bin/u-boot-test-flash | 8 +------- bin/u-boot-test-power-off | 8 +------- bin/u-boot-test-power-on | 8 +------- bin/u-boot-test-reset | 8 +------- 6 files changed, 41 insertions(+), 35 deletions(-) create mode 100755 bin/u-boot-test-common
diff --git a/bin/u-boot-test-common b/bin/u-boot-test-common new file mode 100755 index 0000000..2c3b476 --- /dev/null +++ b/bin/u-boot-test-common @@ -0,0 +1,36 @@ +#!/bin/bash + +# Copyright 2024 Google LLC +# Written by Simon Glass sjg@chromium.org +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +set -e + +bin_dir="`dirname $0`" +board_type="$1" +board_ident="$2" +hostname="`hostname`" + +# Use either the Labgrid integration or the traditional hooks +if [ -n "${USE_LABGRID_SJG}" ]; then + . "${bin_dir}/${hostname}/conf.all" +else + . "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" +fi diff --git a/bin/u-boot-test-console b/bin/u-boot-test-console index 0b6b4ac..8b7377a 100755 --- a/bin/u-boot-test-console +++ b/bin/u-boot-test-console @@ -20,12 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE.
-set -e - -bin_dir="`dirname $0`" -board_type="$1" -board_ident="$2" -hostname="`hostname`" -. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" +. "$(dirname $0)/u-boot-test-common"
. "${bin_dir}/console.${console_impl:-picocom}" diff --git a/bin/u-boot-test-flash b/bin/u-boot-test-flash index 8dcf198..bd89a50 100755 --- a/bin/u-boot-test-flash +++ b/bin/u-boot-test-flash @@ -20,12 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE.
-set -e - -bin_dir="`dirname $0`" -board_type="$1" -board_ident="$2" -hostname="`hostname`" -. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" +. "$(dirname $0)/u-boot-test-common"
. "${bin_dir}/flash.${flash_impl}" diff --git a/bin/u-boot-test-power-off b/bin/u-boot-test-power-off index b59436a..83b69c0 100755 --- a/bin/u-boot-test-power-off +++ b/bin/u-boot-test-power-off @@ -20,12 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE.
-set -e - -bin_dir="`dirname $0`" -board_type="$1" -board_ident="$2" -hostname="`hostname`" -. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" +. "$(dirname $0)/u-boot-test-common"
. "${bin_dir}/poweroff.${power_impl}" diff --git a/bin/u-boot-test-power-on b/bin/u-boot-test-power-on index ca87477..5a41c3e 100755 --- a/bin/u-boot-test-power-on +++ b/bin/u-boot-test-power-on @@ -20,12 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE.
-set -e - -bin_dir="`dirname $0`" -board_type="$1" -board_ident="$2" -hostname="`hostname`" -. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" +. "$(dirname $0)/u-boot-test-common"
. "${bin_dir}/poweron.${power_impl}" diff --git a/bin/u-boot-test-reset b/bin/u-boot-test-reset index a160e0c..77e3f40 100755 --- a/bin/u-boot-test-reset +++ b/bin/u-boot-test-reset @@ -20,12 +20,6 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE.
-set -e - -bin_dir="`dirname $0`" -board_type="$1" -board_ident="$2" -hostname="`hostname`" -. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" +. "$(dirname $0)/u-boot-test-common"
. "${bin_dir}/reset.${reset_impl}"

These methods don't have a 'none' method right now, but it will be needed for Labgrid. Add these scripts.
Note that these are not used by the existing integration, which requires that boards can be powered off and on.
Signed-off-by: Simon Glass sjg@chromium.org ---
(no changes since v4)
Changes in v4: - Add new patch to add .none scripts for power off/on
bin/poweroff.none | 22 ++++++++++++++++++++++ bin/poweron.none | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100755 bin/poweroff.none create mode 100755 bin/poweron.none
diff --git a/bin/poweroff.none b/bin/poweroff.none new file mode 100755 index 0000000..cd9733e --- /dev/null +++ b/bin/poweroff.none @@ -0,0 +1,22 @@ +# Copyright 2024 Google LLC +# Written by Simon Glass sjg@chromium.org +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# No power-control needed diff --git a/bin/poweron.none b/bin/poweron.none new file mode 100755 index 0000000..cd9733e --- /dev/null +++ b/bin/poweron.none @@ -0,0 +1,22 @@ +# Copyright 2024 Google LLC +# Written by Simon Glass sjg@chromium.org +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# No power-control needed

With Labgrid we don't need to specify the various methods, except for the console, which simply calls labgrid-client.
This allows supporting any boards in your lab, without adding per-board configuration to these hooks.
Provide ellesmere files as an example lab-configuration.
Signed-off-by: Simon Glass sjg@chromium.org ---
Changes in v5: - Update commit message and cover letter for Labgrid-sjg
Changes in v4: - Support pytest fully with dual-build boards like Beagleplay
Changes in v3: - Update scripts for latest version of Labgrid integration - Add poweroff.none and poweron.none - Provide -n flag when querying board info - Target the grpc version of Labgrid which is now in -master - Update README to cover the changes
Changes in v2: - Make use of the common script (only) to set bin_dir
README.md | 51 ++++++++++++++++++++++++++++++++ bin/console.labgrid-sjg | 42 ++++++++++++++++++++++++++ bin/ellesmere/common-labgrid-sjg | 46 ++++++++++++++++++++++++++++ bin/ellesmere/conf.all | 24 +++++++++++++++ bin/getrole.labgrid-sjg | 25 ++++++++++++++++ bin/release.labgrid-sjg | 22 ++++++++++++++ bin/release.none | 22 ++++++++++++++ bin/u-boot-test-getrole | 38 ++++++++++++++++++++++++ bin/u-boot-test-release | 26 ++++++++++++++++ 9 files changed, 296 insertions(+) create mode 100644 bin/console.labgrid-sjg create mode 100755 bin/ellesmere/common-labgrid-sjg create mode 100644 bin/ellesmere/conf.all create mode 100644 bin/getrole.labgrid-sjg create mode 100644 bin/release.labgrid-sjg create mode 100644 bin/release.none create mode 100755 bin/u-boot-test-getrole create mode 100755 bin/u-boot-test-release
diff --git a/README.md b/README.md index 290e4d0..7abcff7 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,57 @@ scripts must be replicated once per board instance, or their actions somehow serialized, since they copy files into their own directories when executing, and hence parallel execution would cause incorrect operation.
+## Labgrid Integration + +Labgrid is a python library for embedded-board-control. It includes a client +program which is used to integrate with the U-Boot pytests. + +Since Labgrid has all the information necessary to build and boot on a lab, +there is no per-board configuration required. The various flash.xxx and +recovery.xxx scripts are not used. To set it up: + +- In your bin/$hostname directory, create an executable file + `common-labgrid-sjg` and set your crossbar and environment information, for + example: + + # Hostname and port for the gRPC coordinator + export LG_COORDINATOR=kea:20408 + + # Environment file for the lab + export LG_ENV="/path/to/kea_env.cfg" + + # Location of the U-Boot test hooks + export UB_TEST_HOOKS=/path/to/u-boot-test-hooks + + # Make sure only one buildman can run at a time, since it uses all CPUs + export BUILDMAN_PROCESS_LIMIT=1 + + # Use the internal console since microcom can miss serial input at boot + export LG_CONSOLE="internal" + + # Tell u-boot-test-hooks to use the Labgrid-sjg integration + export USE_LABGRID_SJG=1 + + flash_impl=none + reset_impl=none + console_impl=labgrid-sjg + release_impl=labgrid-sjg + getrole_impl=labgrid-sjg + power_impl=none + +The last 6 lines tell the hooks to use Labgrid for console and board release +as well as a new 'getrole' hook which is only used by Labgrid. The flash, reset +and power features of boards are all handled by entirely by Labgrid. + +Then create another executable file (in the same directory) called 'conf.all', +containing:: + + .. code-block:: bash + + . "${bin_dir}/${hostname}/common-labgrid-sjg" + +That should be all that is needed. + ## Dependencies
The example scripts depend on various external tools, the installation location diff --git a/bin/console.labgrid-sjg b/bin/console.labgrid-sjg new file mode 100644 index 0000000..85e7da5 --- /dev/null +++ b/bin/console.labgrid-sjg @@ -0,0 +1,42 @@ +# Copyright 2024 Google LLC +# Written by Simon Glass +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# The variables here can come from one of two places: +# +# 1. When using the ub-xxx scripts (e.g. ub-int) they come from those scripts, +# set by the get_args.sh script +# +# 2. When running from gitlab, the variables are all empty and so take the +# default values below, except for ${strategy} which is set in the gitlab +# script + +# On input: +# strategy: Strategy arguments to use, e.g. "-s start". Normally this is +# "-s uboot -e off" but it can be "-s start -e off" or even empty +# verbose: Verbose argument to use, e.g. "-v" +# +# These variables are set by .gitlab-ci.yml or by + +exec labgrid-client -V do-bootstrap ${bootstrap:-1} -V do-build ${build:-1} \ + -V do-send ${send:-0} -V do-clean ${clean:-0} \ + -V process-limit ${BUILDMAN_PROCESS_LIMIT:-0} \ + -r "${U_BOOT_BOARD_IDENTITY}" ${strategy} ${verbose} -a console \ + ${console_log} diff --git a/bin/ellesmere/common-labgrid-sjg b/bin/ellesmere/common-labgrid-sjg new file mode 100755 index 0000000..6b3eff5 --- /dev/null +++ b/bin/ellesmere/common-labgrid-sjg @@ -0,0 +1,46 @@ +# Copyright 2024 Google LLC +# Written by Simon Glass +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# Hostname and port for the gRPC coordinator +export LG_COORDINATOR=kea:20408 + +# Environment file for the lab +export LG_ENV=/vid/software/devel/ubtest/lab/cfg/kea_env.cfg + +# Make sure only one buildman can run at a time, since it uses all CPUs +export BUILDMAN_PROCESS_LIMIT=1 + +# Location of the U-Boot test hooks +export UB_TEST_HOOKS=/vid/software/devel/ubtest/u-boot-test-hooks + +# Use the internal console since microcom can miss serial input at boot +export LG_CONSOLE=internal + +# Tell u-boot-test-hooks to use the Labgrid integration +export USE_LABGRID_SJG=1 + + +flash_impl=none +reset_impl=none +console_impl=labgrid-sjg +release_impl=labgrid-sjg +getrole_impl=labgrid-sjg +power_impl=none diff --git a/bin/ellesmere/conf.all b/bin/ellesmere/conf.all new file mode 100644 index 0000000..4a82ee7 --- /dev/null +++ b/bin/ellesmere/conf.all @@ -0,0 +1,24 @@ +#!/bin/bash + +# Copyright 2024 Google LLC +# Written by Simon Glass sjg@chromium.org +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +. "${bin_dir}/${hostname}/common-labgrid-sjg" diff --git a/bin/getrole.labgrid-sjg b/bin/getrole.labgrid-sjg new file mode 100644 index 0000000..52fc3ce --- /dev/null +++ b/bin/getrole.labgrid-sjg @@ -0,0 +1,25 @@ +# Copyright 2024 Google LLC +# Written by Simon Glass +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +[ -n "${do_configure}" ] && config_arg=",config_file" + +exec labgrid-client -r "${target}" -a query -n \ + UBootProviderDriver:board,board_extra,source_dir,build_dir,build_dir_extra${config_arg} diff --git a/bin/release.labgrid-sjg b/bin/release.labgrid-sjg new file mode 100644 index 0000000..54e7895 --- /dev/null +++ b/bin/release.labgrid-sjg @@ -0,0 +1,22 @@ +# Copyright 2024 Google LLC +# Written by Simon Glass +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +exec labgrid-client -r "${U_BOOT_BOARD_IDENTITY}" release -a diff --git a/bin/release.none b/bin/release.none new file mode 100644 index 0000000..284d1b1 --- /dev/null +++ b/bin/release.none @@ -0,0 +1,22 @@ +# Copyright 2024 Google LLC +# Written by Simon Glass sjg@chromium.org +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# No releasing needed diff --git a/bin/u-boot-test-getrole b/bin/u-boot-test-getrole new file mode 100755 index 0000000..ac8e02a --- /dev/null +++ b/bin/u-boot-test-getrole @@ -0,0 +1,38 @@ +#!/bin/bash + +# Copyright 2024 Google LLC +# Written by Simon Glass sjg@chromium.org +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# Prints the following pieces of information, each on a separate line +# +# - U-Boot board name +# - source path +# - build dir +# - filename of .config file +# +# For example + +. "$(dirname $0)/u-boot-test-common" + +target="$1" +[ -n "$2" ] && do_configure=1 + +. "${bin_dir}/getrole.${getrole_impl:-none}" diff --git a/bin/u-boot-test-release b/bin/u-boot-test-release new file mode 100755 index 0000000..5a3a849 --- /dev/null +++ b/bin/u-boot-test-release @@ -0,0 +1,26 @@ +#!/bin/bash + +# Copyright 2024 Google LLC +# Written by Simon Glass sjg@chromium.org +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +. "$(dirname $0)/u-boot-test-common" + +. "${bin_dir}/release.${release_impl:-none}"

On Mon, 04 Nov 2024 11:36:40 -0700, Simon Glass wrote:
This adds hooks for use with my integration for Labgrid (called Labgrid-sjg). The only existing hook that really does anything with the target, with this integration, is the 'console' one. There is also a new 'getrole' hook which looks up a role to find various things about it, such as the U-Boot board name.
Changes in v5:
- Use Labgrid-sjg instead of Labgrid
- Use LABGRID_SJG to indicates the 'Labgrid-sjg' integration is running
- Update commit message and cover letter for Labgrid-sjg
[...]
Applied to u-boot/u-boot-test-hooks.git/master, thanks!
participants (2)
-
Simon Glass
-
Tom Rini