]> code.ossystems Code Review - openembedded-core.git/commitdiff
go.bbclass: separate the ptest logic to go-ptest class
authorMingli Yu <mingli.yu@windriver.com>
Fri, 5 Jul 2019 09:00:23 +0000 (02:00 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 9 Jul 2019 22:27:38 +0000 (23:27 +0100)
The current go class includes ptest logic by default
and will make the recipe which inherits go class
to support ptest automatically though maybe the
recipe which inherits go class doesn't plan to
support the ptest.

So separate the ptest logic to another specified
class go-ptest to make the recipe which needs to
inherit go class more flexible with regards to
ptest support.

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/go-ptest.bbclass [new file with mode: 0644]
meta/classes/go.bbclass

diff --git a/meta/classes/go-ptest.bbclass b/meta/classes/go-ptest.bbclass
new file mode 100644 (file)
index 0000000..e230a80
--- /dev/null
@@ -0,0 +1,54 @@
+inherit go ptest
+
+do_compile_ptest_base() {
+       export TMPDIR="${GOTMPDIR}"
+       rm -f ${B}/.go_compiled_tests.list
+       go_list_package_tests | while read pkg; do
+               cd ${B}/src/$pkg
+               ${GO} test ${GOPTESTBUILDFLAGS} $pkg
+               find . -mindepth 1 -maxdepth 1 -type f -name '*.test' -exec echo $pkg/{} \; | \
+                       sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list
+       done
+       do_compile_ptest
+}
+
+do_compile_ptest_base[dirs] =+ "${GOTMPDIR}"
+
+go_make_ptest_wrapper() {
+       cat >${D}${PTEST_PATH}/run-ptest <<EOF
+#!/bin/sh
+RC=0
+run_test() (
+    cd "\$1"
+    ((((./\$2 ${GOPTESTFLAGS}; echo \$? >&3) | sed -r -e"s,^(PASS|SKIP|FAIL)\$,\\1: \$1/\$2," >&4) 3>&1) | (read rc; exit \$rc)) 4>&1
+    exit \$?)
+EOF
+
+}
+
+do_install_ptest_base() {
+       test -f "${B}/.go_compiled_tests.list" || exit 0
+       install -d ${D}${PTEST_PATH}
+       go_stage_testdata
+       go_make_ptest_wrapper
+       havetests=""
+       while read test; do
+               testdir=`dirname $test`
+               testprog=`basename $test`
+               install -d ${D}${PTEST_PATH}/$testdir
+               install -m 0755 ${B}/src/$test ${D}${PTEST_PATH}/$test
+       echo "run_test $testdir $testprog || RC=1" >> ${D}${PTEST_PATH}/run-ptest
+               havetests="yes"
+       done < ${B}/.go_compiled_tests.list
+       if [ -n "$havetests" ]; then
+               echo "exit \$RC" >> ${D}${PTEST_PATH}/run-ptest
+               chmod +x ${D}${PTEST_PATH}/run-ptest
+       else
+               rm -rf ${D}${PTEST_PATH}
+       fi
+       do_install_ptest
+       chown -R root:root ${D}${PTEST_PATH}
+}
+
+INSANE_SKIP_${PN}-ptest += "ldflags"
+
index e05a5c641c8498e88ad0a260458d356909ae100a..f303a15eaf3441f16283abe5c99e12dfe09921e7 100644 (file)
@@ -1,4 +1,4 @@
-inherit goarch ptest
+inherit goarch
 
 GO_PARALLEL_BUILD ?= "${@oe.utils.parallel_make_argument(d, '-p %d')}"
 
@@ -114,19 +114,6 @@ go_do_compile() {
 do_compile[dirs] =+ "${GOTMPDIR}"
 do_compile[cleandirs] = "${B}/bin ${B}/pkg"
 
-do_compile_ptest_base() {
-       export TMPDIR="${GOTMPDIR}"
-       rm -f ${B}/.go_compiled_tests.list
-       go_list_package_tests | while read pkg; do
-               cd ${B}/src/$pkg
-               ${GO} test ${GOPTESTBUILDFLAGS} $pkg
-               find . -mindepth 1 -maxdepth 1 -type f -name '*.test' -exec echo $pkg/{} \; | \
-                       sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list
-       done
-       do_compile_ptest
-}
-do_compile_ptest_base[dirs] =+ "${GOTMPDIR}"
-
 go_do_install() {
        install -d ${D}${libdir}/go/src/${GO_IMPORT}
        tar -C ${S}/src/${GO_IMPORT} -cf - --exclude-vcs --exclude '*.test' --exclude 'testdata' . | \
@@ -139,18 +126,6 @@ go_do_install() {
        fi
 }
 
-go_make_ptest_wrapper() {
-       cat >${D}${PTEST_PATH}/run-ptest <<EOF
-#!/bin/sh
-RC=0
-run_test() (
-    cd "\$1"
-    ((((./\$2 ${GOPTESTFLAGS}; echo \$? >&3) | sed -r -e"s,^(PASS|SKIP|FAIL)\$,\\1: \$1/\$2," >&4) 3>&1) | (read rc; exit \$rc)) 4>&1
-    exit \$?)
-EOF
-
-}
-
 go_stage_testdata() {
        oldwd="$PWD"
        cd ${S}/src
@@ -165,37 +140,12 @@ go_stage_testdata() {
        cd "$oldwd"
 }
 
-do_install_ptest_base() {
-       test -f "${B}/.go_compiled_tests.list" || exit 0
-       install -d ${D}${PTEST_PATH}
-       go_stage_testdata
-       go_make_ptest_wrapper
-       havetests=""
-       while read test; do
-               testdir=`dirname $test`
-               testprog=`basename $test`
-               install -d ${D}${PTEST_PATH}/$testdir
-               install -m 0755 ${B}/src/$test ${D}${PTEST_PATH}/$test
-       echo "run_test $testdir $testprog || RC=1" >> ${D}${PTEST_PATH}/run-ptest
-               havetests="yes"
-       done < ${B}/.go_compiled_tests.list
-       if [ -n "$havetests" ]; then
-               echo "exit \$RC" >> ${D}${PTEST_PATH}/run-ptest
-               chmod +x ${D}${PTEST_PATH}/run-ptest
-       else
-               rm -rf ${D}${PTEST_PATH}
-       fi
-       do_install_ptest
-       chown -R root:root ${D}${PTEST_PATH}
-}
-
 EXPORT_FUNCTIONS do_unpack do_configure do_compile do_install
 
 FILES_${PN}-dev = "${libdir}/go/src"
 FILES_${PN}-staticdev = "${libdir}/go/pkg"
 
 INSANE_SKIP_${PN} += "ldflags"
-INSANE_SKIP_${PN}-ptest += "ldflags"
 
 # Add -buildmode=pie to GOBUILDFLAGS to satisfy "textrel" QA checking, but mips
 # doesn't support -buildmode=pie, so skip the QA checking for mips and its