Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] utils/test-pkg: Generate package config if it is not specified
@ 2019-03-01 12:33 Vadim Kochan
  2019-03-04  7:34 ` Arnout Vandecappelle
  2019-03-17  9:27 ` Thomas Petazzoni
  0 siblings, 2 replies; 4+ messages in thread
From: Vadim Kochan @ 2019-03-01 12:33 UTC (permalink / raw)
  To: buildroot

From: Vadim Kochan <vadim4j@gmail.com>

It is possible to generate one-line config for the package just by
normalize it to the form:

    BR2_PACKAGE_${pkg_replaced-to_and_uppercase}

it simplifes a bit of testing package where no additional config options
are needed.

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
 utils/test-pkg | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/utils/test-pkg b/utils/test-pkg
index 1995fa8..cce4679 100755
--- a/utils/test-pkg
+++ b/utils/test-pkg
@@ -2,12 +2,20 @@
 set -e
 
 TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv'
+TEMP_CONF=""
+
+do_clean() {
+    if [ ! -z "${TEMP_CONF}" ]; then
+        rm -f "${TEMP_CONF}"
+    fi
+}
 
 main() {
     local o O opts
     local cfg dir pkg random toolchains_dir toolchain all number mode
     local ret nb nb_skip nb_fail nb_legal nb_tc build_dir
     local -a toolchains
+    local pkg_br_name
 
     o='hac:d:n:p:r:t:'
     O='help,config-snippet:build-dir:package:,random:,toolchains-dir:'
@@ -50,8 +58,15 @@ main() {
             ;;
         esac
     done
+
+    trap do_clean INT TERM HUP EXIT
+
     if [ -z "${cfg}" ]; then
-        printf "error: no config snippet specified\n" >&2; exit 1
+        pkg_br_name="${pkg//-/_}"
+        pkg_br_name="BR2_PACKAGE_${pkg_br_name^^}"
+        TEMP_CONF=$(mktemp /tmp/test-${pkg}-config.XXXXXX)
+        echo "${pkg_br_name}=y" > ${TEMP_CONF}
+        cfg="${TEMP_CONF}"
     fi
     if [ ! -e "${cfg}" ]; then
         printf "error: %s: no such file\n" "${cfg}" >&2; exit 1
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] utils/test-pkg: Generate package config if it is not specified
  2019-03-01 12:33 [Buildroot] [PATCH 1/1] utils/test-pkg: Generate package config if it is not specified Vadim Kochan
@ 2019-03-04  7:34 ` Arnout Vandecappelle
  2019-03-17  9:27 ` Thomas Petazzoni
  1 sibling, 0 replies; 4+ messages in thread
From: Arnout Vandecappelle @ 2019-03-04  7:34 UTC (permalink / raw)
  To: buildroot



On 01/03/2019 13:33, Vadim Kochan wrote:
> From: Vadim Kochan <vadim4j@gmail.com>
> 
> It is possible to generate one-line config for the package just by
> normalize it to the form:
> 
>     BR2_PACKAGE_${pkg_replaced-to_and_uppercase}
> 
> it simplifes a bit of testing package where no additional config options
> are needed.
> 
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

> ---
>  utils/test-pkg | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/utils/test-pkg b/utils/test-pkg
> index 1995fa8..cce4679 100755
> --- a/utils/test-pkg
> +++ b/utils/test-pkg
> @@ -2,12 +2,20 @@
>  set -e
>  
>  TOOLCHAINS_CSV='support/config-fragments/autobuild/toolchain-configs.csv'
> +TEMP_CONF=""
> +
> +do_clean() {
> +    if [ ! -z "${TEMP_CONF}" ]; then
> +        rm -f "${TEMP_CONF}"

 A race-free way of cleaning up! Excellent!

> +    fi
> +}
>  
>  main() {
>      local o O opts
>      local cfg dir pkg random toolchains_dir toolchain all number mode
>      local ret nb nb_skip nb_fail nb_legal nb_tc build_dir
>      local -a toolchains
> +    local pkg_br_name
>  
>      o='hac:d:n:p:r:t:'
>      O='help,config-snippet:build-dir:package:,random:,toolchains-dir:'
> @@ -50,8 +58,15 @@ main() {
>              ;;
>          esac
>      done
> +
> +    trap do_clean INT TERM HUP EXIT
> +
>      if [ -z "${cfg}" ]; then
> -        printf "error: no config snippet specified\n" >&2; exit 1
> +        pkg_br_name="${pkg//-/_}"

 The script is already using bash, so this is OK.

 However, the UPPERCASE macro also converts . to _. Still, since we don't have
any package with . in it, it should be fine.

 Regards,
 Arnout

> +        pkg_br_name="BR2_PACKAGE_${pkg_br_name^^}"
> +        TEMP_CONF=$(mktemp /tmp/test-${pkg}-config.XXXXXX)
> +        echo "${pkg_br_name}=y" > ${TEMP_CONF}
> +        cfg="${TEMP_CONF}"
>      fi
>      if [ ! -e "${cfg}" ]; then
>          printf "error: %s: no such file\n" "${cfg}" >&2; exit 1
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] utils/test-pkg: Generate package config if it is not specified
  2019-03-01 12:33 [Buildroot] [PATCH 1/1] utils/test-pkg: Generate package config if it is not specified Vadim Kochan
  2019-03-04  7:34 ` Arnout Vandecappelle
@ 2019-03-17  9:27 ` Thomas Petazzoni
  2019-03-27  9:43   ` Peter Korsgaard
  1 sibling, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2019-03-17  9:27 UTC (permalink / raw)
  To: buildroot

Hello Vadim,

On Fri,  1 Mar 2019 14:33:42 +0200
Vadim Kochan <vadim4j@gmail.com> wrote:

> From: Vadim Kochan <vadim4j@gmail.com>
> 
> It is possible to generate one-line config for the package just by
> normalize it to the form:
> 
>     BR2_PACKAGE_${pkg_replaced-to_and_uppercase}
> 
> it simplifes a bit of testing package where no additional config options
> are needed.
> 
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
> ---
>  utils/test-pkg | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)

Applied to master, thanks. I was initially a bit skeptical because if
the package has a dependency, your solution does not work very well,
and users could believe that the package is going to be tested while it
won't. But in fact in that case all tests are going to be "SKIPPED"
because the BR2_PACKAGE_FOO=y line is not in the final .config. This
will clearly tell the user that much not testing has happened. So I'm
fine with this, and therefore I applied.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH 1/1] utils/test-pkg: Generate package config if it is not specified
  2019-03-17  9:27 ` Thomas Petazzoni
@ 2019-03-27  9:43   ` Peter Korsgaard
  0 siblings, 0 replies; 4+ messages in thread
From: Peter Korsgaard @ 2019-03-27  9:43 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:

 > Hello Vadim,
 > On Fri,  1 Mar 2019 14:33:42 +0200
 > Vadim Kochan <vadim4j@gmail.com> wrote:

 >> From: Vadim Kochan <vadim4j@gmail.com>
 >> 
 >> It is possible to generate one-line config for the package just by
 >> normalize it to the form:
 >> 
 >> BR2_PACKAGE_${pkg_replaced-to_and_uppercase}
 >> 
 >> it simplifes a bit of testing package where no additional config options
 >> are needed.
 >> 
 >> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
 >> ---
 >> utils/test-pkg | 17 ++++++++++++++++-
 >> 1 file changed, 16 insertions(+), 1 deletion(-)

 > Applied to master, thanks. I was initially a bit skeptical because if
 > the package has a dependency, your solution does not work very well,
 > and users could believe that the package is going to be tested while it
 > won't. But in fact in that case all tests are going to be "SKIPPED"
 > because the BR2_PACKAGE_FOO=y line is not in the final .config. This
 > will clearly tell the user that much not testing has happened. So I'm
 > fine with this, and therefore I applied.

While this isn't a bugfix, it seems quite safe and can be useful for
users - So I've committed it to 2019.02.x as well, thanks.

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-03-27  9:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-03-01 12:33 [Buildroot] [PATCH 1/1] utils/test-pkg: Generate package config if it is not specified Vadim Kochan
2019-03-04  7:34 ` Arnout Vandecappelle
2019-03-17  9:27 ` Thomas Petazzoni
2019-03-27  9:43   ` Peter Korsgaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox