ptest.bbclass: fix error on ubuntu host
authorChen Qi <Qi.Chen@windriver.com>
Thu, 5 Sep 2013 13:58:25 +0000 (13:58 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 10 Sep 2013 14:57:19 +0000 (15:57 +0100)
The do_install_ptest_base function uses 'type -t' command to check
whether do_install_ptest is a function and acts correspondingly.

However, the 'type' command is a shell builtin and its behavior is
not all the same across Linux distros. On ubuntu, if we use #!/bin/sh
as the interpreter for the scripts, as in the case of our intermediate
scripts, the '-t' option for the 'type' command is not supported. So
the check always fails and the do_install_ptest function, even if defined,
is not run.

The same problem also applies to the do_configure_ptest_base and the
do_compile_ptest_base functions.

This patch fixes this problem by avoiding using the 'type' builtin command.

[YOCTO #5128]

(From OE-Core rev: d5a4f031b460437e9501e4e65194ce94d3641130)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/ptest.bbclass

index 37357e8..15a42d6 100644 (file)
@@ -16,22 +16,30 @@ RDEPENDS_${PN}-ptest_virtclass-nativesdk = ""
 
 PACKAGES =+ "${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}"
 
+do_configure_ptest() {
+    :
+}
+
 do_configure_ptest_base() {
     if [ ${PTEST_ENABLED} = 1 ]; then
-        if [ a$(type -t do_configure_ptest) = afunction ]; then
-            do_configure_ptest
-        fi
+        do_configure_ptest
     fi
 }
 
+do_compile_ptest() {
+    :
+}
+
 do_compile_ptest_base() {
     if [ ${PTEST_ENABLED} = 1 ]; then
-        if [ a$(type -t do_compile_ptest) = afunction ]; then
-            do_compile_ptest
-        fi
+        do_compile_ptest
     fi
 }
 
+do_install_ptest() {
+    :
+}
+
 do_install_ptest_base() {
     if [ ${PTEST_ENABLED} = 1 ]; then
         if [ -f ${WORKDIR}/run-ptest ]; then
@@ -39,9 +47,7 @@ do_install_ptest_base() {
             if grep -q install-ptest: Makefile; then
                 oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest
             fi
-            if [ a$(type -t do_install_ptest) = afunction ]; then
-                do_install_ptest
-            fi
+            do_install_ptest
         fi
     fi
 }