Patchwork kmod: ptest fixes

login
register
mail settings
Submitter Tudor Florea
Date Sept. 29, 2013, 9:31 p.m.
Message ID <1380490304-58258-1-git-send-email-tudor.florea@enea.com>
Download mbox | patch
Permalink /patch/59125/
State New
Headers show

Comments

Tudor Florea - Sept. 29, 2013, 9:31 p.m.
Make kmod-ptest able to compile with separated source and
 build dir. Add exception to insane.bbclass allowing any
 type of binaries in ptest packages. Since kmod test files
 contain kernel modules for many different architectures,
 strip gets confused and throws an error.

Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Signed-off-by: Björn Stenberg <bjst@enea.com>
Signed-off-by: Maxin B. John <maxin.john@enea.com>
---
 meta/classes/insane.bbclass               |    4 ++++
 meta/recipes-kernel/kmod/kmod/ptest.patch |    8 ++++----
 meta/recipes-kernel/kmod/kmod/run-ptest   |    4 +---
 meta/recipes-kernel/kmod/kmod_git.bb      |    5 +++--
 4 files changed, 12 insertions(+), 9 deletions(-)
Saul Wold - Sept. 30, 2013, 5:39 p.m.
On 09/29/2013 02:31 PM, Tudor Florea wrote:
>   Make kmod-ptest able to compile with separated source and
>   build dir. Add exception to insane.bbclass allowing any
>   type of binaries in ptest packages. Since kmod test files
>   contain kernel modules for many different architectures,
>   strip gets confused and throws an error.
>
> Signed-off-by: Tudor Florea <tudor.florea@enea.com>
> Signed-off-by: Björn Stenberg <bjst@enea.com>
> Signed-off-by: Maxin B. John <maxin.john@enea.com>
> ---
>   meta/classes/insane.bbclass               |    4 ++++
>   meta/recipes-kernel/kmod/kmod/ptest.patch |    8 ++++----
>   meta/recipes-kernel/kmod/kmod/run-ptest   |    4 +---
>   meta/recipes-kernel/kmod/kmod_git.bb      |    5 +++--
>   4 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index a784aff..898d2ca 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -434,6 +434,10 @@ def package_qa_check_arch(path,name,d, elf, messages):
>       if os.path.islink(path):
>           return
>
> +    # ptest packages can contain any file types whatsoever
> +    if name.endswith("-ptest"):
> +        return
> +
I think that this is too board an approach, if kmod provides binaries 
for multiple architectures, then that particular package should be 
skipped using the INSANE_SKIP_kmod-ptest = "arch" setting in 
kmod_git.bb.  How many other ptest packages have this issue?

Sau!


>       #if this will throw an exception, then fix the dict above
>       (machine, osabi, abiversion, littleendian, bits) \
>           = package_qa_get_machine_dict()[target_os][target_arch]
> diff --git a/meta/recipes-kernel/kmod/kmod/ptest.patch b/meta/recipes-kernel/kmod/kmod/ptest.patch
> index c6479b2..831dbcb 100644
> --- a/meta/recipes-kernel/kmod/kmod/ptest.patch
> +++ b/meta/recipes-kernel/kmod/kmod/ptest.patch
> @@ -15,10 +15,10 @@ diff -ruN a/Makefile.am b/Makefile.am
>   +	@for file in $(TESTSUITE); do \
>   +		install $$file $(DESTDIR)/testsuite; \
>   +	done;
> -+	@cp Makefile $(DESTDIR)
> -+	@sed -i 's/^Makefile/_Makefile/'  ${DESTDIR}/Makefile
> -+	@tar -czf $(DESTDIR)/tools.tgz $(noinst_SCRIPTS) $(noinst_PROGRAMS)
> -+	@tar -C testsuite -czf $(DESTDIR)/testsuite.tgz rootfs-pristine .libs
> ++	@sed -e 's/^Makefile/_Makefile/' < Makefile > $(DESTDIR)/Makefile
> ++	@$(MKDIR_P) $(DESTDIR)/tools
> ++	@cp $(noinst_SCRIPTS) $(noinst_PROGRAMS) $(DESTDIR)/tools
> ++	@cp -r testsuite/rootfs testsuite/.libs $(DESTDIR)/testsuite
>   +
>    # ------------------------------------------------------------------------------
>    # custom release helpers
> diff --git a/meta/recipes-kernel/kmod/kmod/run-ptest b/meta/recipes-kernel/kmod/kmod/run-ptest
> index fac24fd..37adec3 100755
> --- a/meta/recipes-kernel/kmod/kmod/run-ptest
> +++ b/meta/recipes-kernel/kmod/kmod/run-ptest
> @@ -1,5 +1,3 @@
>   #!/bin/sh
> -tar -xzf tools.tgz
> -tar -C testsuite -xzf testsuite.tgz
> -make rootfs
> +touch testsuite/stamp-rootfs
>   make -k runtest-TESTS 2>/dev/null| grep -e ^PASS -e ^FAIL
> diff --git a/meta/recipes-kernel/kmod/kmod_git.bb b/meta/recipes-kernel/kmod/kmod_git.bb
> index b07c06e..0a8af7b 100644
> --- a/meta/recipes-kernel/kmod/kmod_git.bb
> +++ b/meta/recipes-kernel/kmod/kmod_git.bb
> @@ -41,10 +41,11 @@ do_compile_prepend() {
>   }
>
>   do_compile_ptest () {
> -        oe_runmake buildtest-TESTS
> -        oe_runmake rootfs
> +        oe_runmake buildtest-TESTS rootfs
>   }
>
> +INHIBIT_PACKAGE_STRIP = "${@base_contains("DISTRO_FEATURES", "ptest", "1", "0", d)}"
> +
>   inherit update-alternatives
>
>   ALTERNATIVE_PRIORITY = "60"
>

Patch

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index a784aff..898d2ca 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -434,6 +434,10 @@  def package_qa_check_arch(path,name,d, elf, messages):
     if os.path.islink(path):
         return
 
+    # ptest packages can contain any file types whatsoever
+    if name.endswith("-ptest"):
+        return
+
     #if this will throw an exception, then fix the dict above
     (machine, osabi, abiversion, littleendian, bits) \
         = package_qa_get_machine_dict()[target_os][target_arch]
diff --git a/meta/recipes-kernel/kmod/kmod/ptest.patch b/meta/recipes-kernel/kmod/kmod/ptest.patch
index c6479b2..831dbcb 100644
--- a/meta/recipes-kernel/kmod/kmod/ptest.patch
+++ b/meta/recipes-kernel/kmod/kmod/ptest.patch
@@ -15,10 +15,10 @@  diff -ruN a/Makefile.am b/Makefile.am
 +	@for file in $(TESTSUITE); do \
 +		install $$file $(DESTDIR)/testsuite; \
 +	done;
-+	@cp Makefile $(DESTDIR)
-+	@sed -i 's/^Makefile/_Makefile/'  ${DESTDIR}/Makefile
-+	@tar -czf $(DESTDIR)/tools.tgz $(noinst_SCRIPTS) $(noinst_PROGRAMS)
-+	@tar -C testsuite -czf $(DESTDIR)/testsuite.tgz rootfs-pristine .libs
++	@sed -e 's/^Makefile/_Makefile/' < Makefile > $(DESTDIR)/Makefile
++	@$(MKDIR_P) $(DESTDIR)/tools
++	@cp $(noinst_SCRIPTS) $(noinst_PROGRAMS) $(DESTDIR)/tools
++	@cp -r testsuite/rootfs testsuite/.libs $(DESTDIR)/testsuite
 +
  # ------------------------------------------------------------------------------
  # custom release helpers
diff --git a/meta/recipes-kernel/kmod/kmod/run-ptest b/meta/recipes-kernel/kmod/kmod/run-ptest
index fac24fd..37adec3 100755
--- a/meta/recipes-kernel/kmod/kmod/run-ptest
+++ b/meta/recipes-kernel/kmod/kmod/run-ptest
@@ -1,5 +1,3 @@ 
 #!/bin/sh
-tar -xzf tools.tgz
-tar -C testsuite -xzf testsuite.tgz
-make rootfs
+touch testsuite/stamp-rootfs
 make -k runtest-TESTS 2>/dev/null| grep -e ^PASS -e ^FAIL
diff --git a/meta/recipes-kernel/kmod/kmod_git.bb b/meta/recipes-kernel/kmod/kmod_git.bb
index b07c06e..0a8af7b 100644
--- a/meta/recipes-kernel/kmod/kmod_git.bb
+++ b/meta/recipes-kernel/kmod/kmod_git.bb
@@ -41,10 +41,11 @@  do_compile_prepend() {
 }
 
 do_compile_ptest () {
-        oe_runmake buildtest-TESTS
-        oe_runmake rootfs
+        oe_runmake buildtest-TESTS rootfs
 }
 
+INHIBIT_PACKAGE_STRIP = "${@base_contains("DISTRO_FEATURES", "ptest", "1", "0", d)}"
+
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "60"