diff mbox series

kbuild: teach kselftest-merge to find nested config files

Message ID 20190520151614.19188-1-dan.rue@linaro.org (mailing list archive)
State Mainlined
Commit 6d3db46c8e331908775b0135dc7d2e5920bf6d90
Headers show
Series kbuild: teach kselftest-merge to find nested config files | expand

Commit Message

Dan Rue May 20, 2019, 3:16 p.m. UTC
Current implementation of kselftest-merge only finds config files that
are one level deep using `$(srctree)/tools/testing/selftests/*/config`.

Often, config files are added in nested directories, and do not get
picked up by kselftest-merge.

Use `find` to catch all config files under
`$(srctree)/tools/testing/selftests` instead.

Signed-off-by: Dan Rue <dan.rue@linaro.org>
---
 Makefile | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Greg Kroah-Hartman May 20, 2019, 5:56 p.m. UTC | #1
On Mon, May 20, 2019 at 10:16:14AM -0500, Dan Rue wrote:
> Current implementation of kselftest-merge only finds config files that
> are one level deep using `$(srctree)/tools/testing/selftests/*/config`.
> 
> Often, config files are added in nested directories, and do not get
> picked up by kselftest-merge.
> 
> Use `find` to catch all config files under
> `$(srctree)/tools/testing/selftests` instead.
> 
> Signed-off-by: Dan Rue <dan.rue@linaro.org>
> ---
>  Makefile | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)

To be more specific here, the binderfs test is not catching the config
entry, so it would be nice to get this into the stable trees as well :)

> diff --git a/Makefile b/Makefile
> index a45f84a7e811..e99e7f9484af 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1228,9 +1228,8 @@ kselftest-clean:
>  PHONY += kselftest-merge
>  kselftest-merge:
>  	$(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))
> -	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
> -		-m $(objtree)/.config \
> -		$(srctree)/tools/testing/selftests/*/config
> +	$(Q)find $(srctree)/tools/testing/selftests -name config | \
> +		xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config
>  	+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
>  
>  # ---------------------------------------------------------------------------

is find run with $(Q)?  It isn't with other instances in the Makefile.

thanks,

greg k-h
Dan Rue May 30, 2019, 7 p.m. UTC | #2
On Mon, May 20, 2019 at 07:56:41PM +0200, Greg KH wrote:
> On Mon, May 20, 2019 at 10:16:14AM -0500, Dan Rue wrote:
> > Current implementation of kselftest-merge only finds config files that
> > are one level deep using `$(srctree)/tools/testing/selftests/*/config`.
> > 
> > Often, config files are added in nested directories, and do not get
> > picked up by kselftest-merge.
> > 
> > Use `find` to catch all config files under
> > `$(srctree)/tools/testing/selftests` instead.
> > 
> > Signed-off-by: Dan Rue <dan.rue@linaro.org>
> > ---
> >  Makefile | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> To be more specific here, the binderfs test is not catching the config
> entry, so it would be nice to get this into the stable trees as well :)
> 
> > diff --git a/Makefile b/Makefile
> > index a45f84a7e811..e99e7f9484af 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -1228,9 +1228,8 @@ kselftest-clean:
> >  PHONY += kselftest-merge
> >  kselftest-merge:
> >  	$(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))
> > -	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
> > -		-m $(objtree)/.config \
> > -		$(srctree)/tools/testing/selftests/*/config
> > +	$(Q)find $(srctree)/tools/testing/selftests -name config | \
> > +		xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config
> >  	+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
> >  
> >  # ---------------------------------------------------------------------------
> 
> is find run with $(Q)?  It isn't with other instances in the Makefile.

I'm not entirely sure all the ways that $(Q) is used (it looks like it
just gets set to @), but if i run 'KBUILD_VERBOSE=1 make
kselftest-merge' I do see the find command printed before running:

    find ./tools/testing/selftests -name config | \
          xargs ./scripts/kconfig/merge_config.sh -m ./.config

I noticed find used inconsistently (sometimes with @, sometimes with
$(Q), sometimes with neither), so I picked the usage that seemed most
correct to me.

Dan

> 
> thanks,
> 
> greg k-h
Masahiro Yamada May 31, 2019, 1:52 a.m. UTC | #3
On Fri, May 31, 2019 at 4:00 AM Dan Rue <dan.rue@linaro.org> wrote:
>
> On Mon, May 20, 2019 at 07:56:41PM +0200, Greg KH wrote:
> > On Mon, May 20, 2019 at 10:16:14AM -0500, Dan Rue wrote:
> > > Current implementation of kselftest-merge only finds config files that
> > > are one level deep using `$(srctree)/tools/testing/selftests/*/config`.
> > >
> > > Often, config files are added in nested directories, and do not get
> > > picked up by kselftest-merge.
> > >
> > > Use `find` to catch all config files under
> > > `$(srctree)/tools/testing/selftests` instead.
> > >
> > > Signed-off-by: Dan Rue <dan.rue@linaro.org>
> > > ---
> > >  Makefile | 5 ++---
> > >  1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > To be more specific here, the binderfs test is not catching the config
> > entry, so it would be nice to get this into the stable trees as well :)
> >
> > > diff --git a/Makefile b/Makefile
> > > index a45f84a7e811..e99e7f9484af 100644
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -1228,9 +1228,8 @@ kselftest-clean:
> > >  PHONY += kselftest-merge
> > >  kselftest-merge:
> > >     $(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))
> > > -   $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
> > > -           -m $(objtree)/.config \
> > > -           $(srctree)/tools/testing/selftests/*/config
> > > +   $(Q)find $(srctree)/tools/testing/selftests -name config | \
> > > +           xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config
> > >     +$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
> > >
> > >  # ---------------------------------------------------------------------------
> >
> > is find run with $(Q)?  It isn't with other instances in the Makefile.
>
> I'm not entirely sure all the ways that $(Q) is used (it looks like it
> just gets set to @), but if i run 'KBUILD_VERBOSE=1 make
> kselftest-merge' I do see the find command printed before running:
>
>     find ./tools/testing/selftests -name config | \
>           xargs ./scripts/kconfig/merge_config.sh -m ./.config
>
> I noticed find used inconsistently (sometimes with @, sometimes with
> $(Q), sometimes with neither), so I picked the usage that seemed most
> correct to me.


I agree. Using $(Q) looks correct to me.



> Dan
>
> >
> > thanks,
> >
> > greg k-h
>
> --
> Linaro - Kernel Validation
Masahiro Yamada June 4, 2019, 5:30 p.m. UTC | #4
On Tue, May 21, 2019 at 12:19 AM Dan Rue <dan.rue@linaro.org> wrote:
>
> Current implementation of kselftest-merge only finds config files that
> are one level deep using `$(srctree)/tools/testing/selftests/*/config`.
>
> Often, config files are added in nested directories, and do not get
> picked up by kselftest-merge.
>
> Use `find` to catch all config files under
> `$(srctree)/tools/testing/selftests` instead.
>
> Signed-off-by: Dan Rue <dan.rue@linaro.org>
> ---
>  Makefile | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index a45f84a7e811..e99e7f9484af 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1228,9 +1228,8 @@ kselftest-clean:
>  PHONY += kselftest-merge
>  kselftest-merge:
>         $(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))
> -       $(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
> -               -m $(objtree)/.config \
> -               $(srctree)/tools/testing/selftests/*/config
> +       $(Q)find $(srctree)/tools/testing/selftests -name config | \
> +               xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config
>         +$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
>
>  # ---------------------------------------------------------------------------
> --
> 2.21.0
>


Applied to linux-kbuild/fixes. Thanks.
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index a45f84a7e811..e99e7f9484af 100644
--- a/Makefile
+++ b/Makefile
@@ -1228,9 +1228,8 @@  kselftest-clean:
 PHONY += kselftest-merge
 kselftest-merge:
 	$(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))
-	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh \
-		-m $(objtree)/.config \
-		$(srctree)/tools/testing/selftests/*/config
+	$(Q)find $(srctree)/tools/testing/selftests -name config | \
+		xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config
 	+$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
 
 # ---------------------------------------------------------------------------