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

This adds hooks for use with Labgrid. The only existing hook that really does anything now 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.
Simon Glass (2): Create a common file for test scripts Provide some basic scripts for Labgrid integration
README.md | 33 ++++++++++++++++++++++++++++ bin/console.labgrid | 42 ++++++++++++++++++++++++++++++++++++ bin/ellesmere/common-labgrid | 31 ++++++++++++++++++++++++++ bin/ellesmere/conf.all | 24 +++++++++++++++++++++ bin/getrole.labgrid | 25 +++++++++++++++++++++ bin/release.labgrid | 22 +++++++++++++++++++ bin/release.none | 22 +++++++++++++++++++ bin/u-boot-test-common | 35 ++++++++++++++++++++++++++++++ bin/u-boot-test-console | 7 +----- bin/u-boot-test-flash | 7 +----- bin/u-boot-test-getrole | 39 +++++++++++++++++++++++++++++++++ bin/u-boot-test-power-off | 7 +----- bin/u-boot-test-power-on | 7 +----- bin/u-boot-test-release | 27 +++++++++++++++++++++++ bin/u-boot-test-reset | 7 +----- 15 files changed, 305 insertions(+), 30 deletions(-) create mode 100644 bin/console.labgrid create mode 100755 bin/ellesmere/common-labgrid create mode 100644 bin/ellesmere/conf.all create mode 100644 bin/getrole.labgrid create mode 100644 bin/release.labgrid 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 integration.
Signed-off-by: Simon Glass sjg@chromium.org ---
bin/u-boot-test-common | 31 +++++++++++++++++++++++++++++++ bin/u-boot-test-console | 7 +------ bin/u-boot-test-flash | 7 +------ bin/u-boot-test-power-off | 7 +------ bin/u-boot-test-power-on | 7 +------ bin/u-boot-test-reset | 7 +------ 6 files changed, 36 insertions(+), 30 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..fa3ad88 --- /dev/null +++ b/bin/u-boot-test-common @@ -0,0 +1,31 @@ +#!/bin/bash + +# Copyright 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`" + +. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" diff --git a/bin/u-boot-test-console b/bin/u-boot-test-console index 0b6b4ac..ad90040 100755 --- a/bin/u-boot-test-console +++ b/bin/u-boot-test-console @@ -20,12 +20,7 @@ # 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}" +. "${bin_dir}/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..2e7d5b5 100755 --- a/bin/u-boot-test-flash +++ b/bin/u-boot-test-flash @@ -20,12 +20,7 @@ # 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}" +. "${bin_dir}/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..eff0370 100755 --- a/bin/u-boot-test-power-off +++ b/bin/u-boot-test-power-off @@ -20,12 +20,7 @@ # 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}" +. "${bin_dir}/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..5c6b99f 100755 --- a/bin/u-boot-test-power-on +++ b/bin/u-boot-test-power-on @@ -20,12 +20,7 @@ # 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}" +. "${bin_dir}/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..9d31a12 100755 --- a/bin/u-boot-test-reset +++ b/bin/u-boot-test-reset @@ -20,12 +20,7 @@ # 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}" +. "${bin_dir}/u-boot-test-common"
. "${bin_dir}/reset.${reset_impl}"

On Mon, Jun 10, 2024 at 04:27:42PM -0600, Simon Glass wrote:
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 integration.
Signed-off-by: Simon Glass sjg@chromium.org
[snip]
+++ b/bin/u-boot-test-common
[snip]
+bin_dir="`dirname $0`"
So we always set bin_dir here...
+board_type="$1" +board_ident="$2" +hostname="`hostname`"
+. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" diff --git a/bin/u-boot-test-console b/bin/u-boot-test-console index 0b6b4ac..ad90040 100755 --- a/bin/u-boot-test-console +++ b/bin/u-boot-test-console @@ -20,12 +20,7 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE.
-set -e
bin_dir="`dirname $0`"
But never remove it from the other files.

Hi Tom,
On Tue, 11 Jun 2024 at 10:07, Tom Rini trini@konsulko.com wrote:
On Mon, Jun 10, 2024 at 04:27:42PM -0600, Simon Glass wrote:
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 integration.
Signed-off-by: Simon Glass sjg@chromium.org
[snip]
+++ b/bin/u-boot-test-common
[snip]
+bin_dir="`dirname $0`"
So we always set bin_dir here...
+board_type="$1" +board_ident="$2" +hostname="`hostname`"
+. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" diff --git a/bin/u-boot-test-console b/bin/u-boot-test-console index 0b6b4ac..ad90040 100755 --- a/bin/u-boot-test-console +++ b/bin/u-boot-test-console @@ -20,12 +20,7 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE.
-set -e
bin_dir="`dirname $0`"
But never remove it from the other files.
Yes that was my intent, but then I realised that it is used in u-boot-test-console, then wasn't sure it was a win...
Perhaps I could do this in each script?
. "$(dirname $0)/u-boot-test-common"
and that would allow removing bin_dir. The above is pretty clear.
Regards, Simon

On Tue, Jun 11, 2024 at 02:07:26PM -0600, Simon Glass wrote:
Hi Tom,
On Tue, 11 Jun 2024 at 10:07, Tom Rini trini@konsulko.com wrote:
On Mon, Jun 10, 2024 at 04:27:42PM -0600, Simon Glass wrote:
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 integration.
Signed-off-by: Simon Glass sjg@chromium.org
[snip]
+++ b/bin/u-boot-test-common
[snip]
+bin_dir="`dirname $0`"
So we always set bin_dir here...
+board_type="$1" +board_ident="$2" +hostname="`hostname`"
+. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" diff --git a/bin/u-boot-test-console b/bin/u-boot-test-console index 0b6b4ac..ad90040 100755 --- a/bin/u-boot-test-console +++ b/bin/u-boot-test-console @@ -20,12 +20,7 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE.
-set -e
bin_dir="`dirname $0`"
But never remove it from the other files.
Yes that was my intent, but then I realised that it is used in u-boot-test-console, then wasn't sure it was a win...
Perhaps I could do this in each script?
. "$(dirname $0)/u-boot-test-common"
and that would allow removing bin_dir. The above is pretty clear.
If that works, yes, otherwise just drop it from the common file.

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.
Signed-off-by: Simon Glass sjg@chromium.org ---
README.md | 33 ++++++++++++++++++++++++++++ bin/console.labgrid | 42 ++++++++++++++++++++++++++++++++++++ bin/ellesmere/common-labgrid | 31 ++++++++++++++++++++++++++ bin/ellesmere/conf.all | 24 +++++++++++++++++++++ bin/getrole.labgrid | 25 +++++++++++++++++++++ bin/release.labgrid | 22 +++++++++++++++++++ bin/release.none | 22 +++++++++++++++++++ bin/u-boot-test-common | 6 +++++- bin/u-boot-test-getrole | 39 +++++++++++++++++++++++++++++++++ bin/u-boot-test-release | 27 +++++++++++++++++++++++ 10 files changed, 270 insertions(+), 1 deletion(-) create mode 100644 bin/console.labgrid create mode 100755 bin/ellesmere/common-labgrid create mode 100644 bin/ellesmere/conf.all create mode 100644 bin/getrole.labgrid create mode 100644 bin/release.labgrid 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..660ffe2 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,39 @@ 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 `common-labgrid` and set your crossbar + and environment information, for example: + + export LG_CROSSBAR="ws://kea:20408/ws" + export LG_ENV="/vid/software/devel/ubtest/lab/env_rpi_try.cfg" + + flash_impl=none + reset_impl=none + console_impl=labgrid + release_impl=labgrid + getrole_impl=labgrid + +The last five 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 and +reset of boards is handled by entirely by Labgrid. + +Then create another file (in the same directory) called 'conf.all', containing:: + + .. code-block:: bash + + . "${bin_dir}/${hostname}/common-labgrid" + +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 b/bin/console.labgrid new file mode 100644 index 0000000..9ce586f --- /dev/null +++ b/bin/console.labgrid @@ -0,0 +1,42 @@ +# Copyright (c) 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 b/bin/ellesmere/common-labgrid new file mode 100755 index 0000000..d94cd9e --- /dev/null +++ b/bin/ellesmere/common-labgrid @@ -0,0 +1,31 @@ +# Copyright (c) 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. + +export LG_CROSSBAR="ws://kea:20408/ws" +export LG_ENV="/vid/software/devel/ubtest/lab/env_rpi_try.cfg" +export BUILDMAN_PROCESS_LIMIT=1 +export LG_CONSOLE="internal" + +flash_impl=none +reset_impl=none +console_impl=labgrid +release_impl=labgrid +getrole_impl=labgrid diff --git a/bin/ellesmere/conf.all b/bin/ellesmere/conf.all new file mode 100644 index 0000000..af7a7a6 --- /dev/null +++ b/bin/ellesmere/conf.all @@ -0,0 +1,24 @@ +#!/bin/bash + +# Copyright 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" diff --git a/bin/getrole.labgrid b/bin/getrole.labgrid new file mode 100644 index 0000000..cc0a85e --- /dev/null +++ b/bin/getrole.labgrid @@ -0,0 +1,25 @@ +# Copyright (c) 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 \ + UBootProviderDriver:board,source_dir,build_dir${config_arg} diff --git a/bin/release.labgrid b/bin/release.labgrid new file mode 100644 index 0000000..399a515 --- /dev/null +++ b/bin/release.labgrid @@ -0,0 +1,22 @@ +# Copyright (c) 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..0f85790 --- /dev/null +++ b/bin/release.none @@ -0,0 +1,22 @@ +# Copyright 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-common b/bin/u-boot-test-common index fa3ad88..858cdc0 100755 --- a/bin/u-boot-test-common +++ b/bin/u-boot-test-common @@ -28,4 +28,8 @@ board_type="$1" board_ident="$2" hostname="`hostname`"
-. "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" +if [ -f "${bin_dir}/${hostname}/conf.all" ]; then + . "${bin_dir}/${hostname}/conf.all" +else + . "${bin_dir}/${hostname}/conf.${board_type}_${board_ident}" +fi diff --git a/bin/u-boot-test-getrole b/bin/u-boot-test-getrole new file mode 100755 index 0000000..e97123d --- /dev/null +++ b/bin/u-boot-test-getrole @@ -0,0 +1,39 @@ +#!/bin/bash + +# Copyright 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 path +# - serial txdelay +# - number of times SPL banner appears +# - filename of .config file + +bin_dir="`dirname $0`" +. "${bin_dir}/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..d4aa70d --- /dev/null +++ b/bin/u-boot-test-release @@ -0,0 +1,27 @@ +#!/bin/bash + +# Copyright 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="`dirname $0`" +. "${bin_dir}/u-boot-test-common" + +. "${bin_dir}/release.${release_impl:-none}"

On Mon, Jun 10, 2024 at 04:27:41PM -0600, Simon Glass wrote:
This adds hooks for use with Labgrid. The only existing hook that really does anything now 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.
Overall this is pretty neat and I'm happy to see it posted. Would you mind linking to the Labgrid PR(s) and sample .gitlab-ci.yml changes you have as well?

Hi Tom,
On Tue, 11 Jun 2024 at 10:28, Tom Rini trini@konsulko.com wrote:
On Mon, Jun 10, 2024 at 04:27:41PM -0600, Simon Glass wrote:
This adds hooks for use with Labgrid. The only existing hook that really does anything now 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.
Overall this is pretty neat and I'm happy to see it posted. Would you mind linking to the Labgrid PR(s) and sample .gitlab-ci.yml changes you have as well?
Thanks! Yes I will send the U-Boot series with that (PR linked in cover letter).
Regards, Simon
participants (2)
-
Simon Glass
-
Tom Rini