From: "Yu, Mingli" <mingli.yu@windriver.com>
To: Matt Madison <matt@madison.systems>,
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH v5 06/13] go.bbclass: ptest cleanup and improvements
Date: Fri, 21 Jun 2019 17:12:43 +0800 [thread overview]
Message-ID: <5D0C9F8B.8060109@windriver.com> (raw)
In-Reply-To: <20180304210937.29727-7-matt@madison.systems>
Hi Matt,
I noticed your commit is the latest update for go-dep ptest. But the
go-dep ptest doesn't work in my environment. I'm trying to figure out
what's wrong is here though I didn't know much about go.
BTW, Could you help to check?
root@qemux86-64:~# cd /usr/lib64/go-dep/ptest/
root@qemux86-64:/usr/lib64/go-dep/ptest# cat run-ptest
#!/bin/sh
RC=0
run_test() (
cd "$1"
((((./$2 ; echo $? >&3) | sed -r -e"s,^(PASS|SKIP|FAIL)$,\1:
$1/$2," >&4) 3>&1) | (read rc; exit $rc)) 4>&1
exit $?)
run_test github.com/golang/dep/cmd/dep dep.test || RC=1
exit $RC
root@qemux86-64:/usr/lib64/go-dep/ptest# ./run-ptest
building testdep failed: exit status 1
can't load package: package .: no Go files in
/usr/lib64/go-dep/ptest/github.com/golang/dep/cmd/dep
root@qemux86-64:/usr/lib64/go-dep/ptest#
Thanks,
On 2018年03月05日 05:09, Matt Madison wrote:
> * Don't enable verbose test output (-test.v)
> by default, as it generates too much noise
> for automated results parsing
>
> * Override do_install_ptest_base in the bbclass,
> so recipes can provide their own modifications
> with do_install_ptest.
>
> * Improve the generated run-ptest script to better
> handle large numbers of tests, and to generate
> 'status: test name' output similar to Automake
> tests.
>
> * Install all non-vendored 'testdata' directories
> from the source into the ptest package, as some
> packages share test data among multiple tests.
>
> Signed-off-by: Matt Madison <matt@madison.systems>
> ---
> meta/classes/go.bbclass | 87 +++++++++++++++++++++++++++++--------------------
> 1 file changed, 51 insertions(+), 36 deletions(-)
>
> diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass
> index afd68b5951..a51ba3e9f0 100644
> --- a/meta/classes/go.bbclass
> +++ b/meta/classes/go.bbclass
> @@ -26,7 +26,7 @@ GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} -extldflags '${GO_EXTLDFLAGS
> export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS}"
> export GOPATH_OMIT_IN_ACTIONID ?= "1"
> export GOPTESTBUILDFLAGS ?= "${GOBUILDFLAGS} -c"
> -export GOPTESTFLAGS ?= "-test.v"
> +export GOPTESTFLAGS ?= ""
> GOBUILDFLAGS_prepend_task-compile = "${GO_PARALLEL_BUILD} "
>
> export GO = "${HOST_PREFIX}go"
> @@ -76,7 +76,7 @@ go_list_packages() {
> }
>
> go_list_package_tests() {
> - ${GO} list -f '{{.ImportPath}} {{.TestGoFiles}}' ${GOBUILDFLAGS} ${GO_INSTALL} | \
> + ${GO} list -f '{{.ImportPath}} {{.TestGoFiles}}' ${GOBUILDFLAGS} ${GO_INSTALL} | \
> grep -v '\[\]$' | \
> egrep -v '${GO_INSTALL_FILTEROUT}' | \
> awk '{ print $1 }'
> @@ -100,15 +100,16 @@ go_do_compile() {
> do_compile[dirs] =+ "${GOTMPDIR}"
> do_compile[cleandirs] = "${B}/bin ${B}/pkg"
>
> -do_compile_ptest() {
> +do_compile_ptest_base() {
> export TMPDIR="${GOTMPDIR}"
> - rm -f ${B}/.go_compiled_tests.list
> + 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}"
>
> @@ -124,40 +125,54 @@ go_do_install() {
> fi
> }
>
> -do_install_ptest_base() {
> - test -f "${B}/.go_compiled_tests.list" || exit 0
> - tests=""
> - while read test; do
> - tests="$tests${tests:+ }${test%.test}"
> - testdir=`dirname $test`
> - install -d ${D}${PTEST_PATH}/$testdir
> - install -m 0755 ${B}/src/$test ${D}${PTEST_PATH}/$test
> - if [ -d "${B}/src/$testdir/testdata" ]; then
> - cp --preserve=mode,timestamps -R "${B}/src/$testdir/testdata" ${D}${PTEST_PATH}/$testdir
> - fi
> - done < ${B}/.go_compiled_tests.list
> - if [ -n "$tests" ]; then
> - install -d ${D}${PTEST_PATH}
> - cat >${D}${PTEST_PATH}/run-ptest <<EOF
> +go_make_ptest_wrapper() {
> + cat >${D}${PTEST_PATH}/run-ptest <<EOF
> #!/bin/sh
> -ANYFAILED=0
> -for t in $tests; do
> - testdir=\`dirname \$t.test\`
> - if ( cd "${PTEST_PATH}/\$testdir"; "${PTEST_PATH}/\$t.test" ${GOPTESTFLAGS} | tee /dev/fd/9 | grep -q "^FAIL" ) 9>&1; then
> - ANYFAILED=1
> - fi
> -done
> -if [ \$ANYFAILED -ne 0 ]; then
> - echo "FAIL: ${PN}"
> - exit 1
> -fi
> -echo "PASS: ${PN}"
> -exit 0
> +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
> - chmod +x ${D}${PTEST_PATH}/run-ptest
> - else
> - rm -rf ${D}${PTEST_PATH}
> - fi
> +
> +}
> +
> +go_stage_testdata() {
> + oldwd="$PWD"
> + cd ${S}/src
> + find ${GO_IMPORT} -depth -type d -name testdata | while read d; do
> + if echo "$d" | grep -q '/vendor/'; then
> + continue
> + fi
> + parent=`dirname $d`
> + install -d ${D}${PTEST_PATH}/$parent
> + cp --preserve=mode,timestamps -R $d ${D}${PTEST_PATH}/$parent/
> + done
> + 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
>
next prev parent reply other threads:[~2019-06-21 9:07 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-04 21:09 [PATCH v5 00/13] go1.10 update and misc improvements Matt Madison
2018-03-04 21:09 ` [PATCH v5 01/13] go: update go 1.9 -> go 1.10 Matt Madison
2018-03-04 21:09 ` [PATCH v5 02/13] go: set GOMIPS envrionment variable Matt Madison
2018-03-04 21:09 ` [PATCH v5 03/13] go.bbclass: rename GO_TMPDIR -> GOTMPDIR Matt Madison
2018-03-04 21:09 ` [PATCH v5 04/13] go.bbclass: remove debug-related commands Matt Madison
2018-03-04 21:09 ` [PATCH v5 05/13] go.bbclass: don't stage test data with sources Matt Madison
2018-03-04 21:09 ` [PATCH v5 06/13] go.bbclass: ptest cleanup and improvements Matt Madison
2019-06-21 9:12 ` Yu, Mingli [this message]
2019-06-25 12:23 ` Matt Madison
2019-06-26 9:06 ` Yu, Mingli
2019-06-26 14:00 ` Matt Madison
2019-06-27 6:43 ` Yu, Mingli
2019-06-27 11:34 ` Matt Madison
2019-06-28 7:12 ` Yu, Mingli
2018-03-04 21:09 ` [PATCH v5 07/13] goarch.bbclass: disable shared runtime for nativesdk builds Matt Madison
2018-03-04 21:09 ` [PATCH v5 08/13] go: move common settings to go-common.inc Matt Madison
2018-03-04 21:09 ` [PATCH v5 09/13] go.bbclass, goarch.bbclass: update SECURITY_CFLAGS Matt Madison
2018-03-04 21:09 ` [PATCH v5 10/13] go: disable PIE CFLAGS for nativesdk and cross-canadian builds Matt Madison
2018-03-04 21:09 ` [PATCH v5 11/13] packagegroup-go-sdk-target: add go-runtime-staticdev Matt Madison
2018-03-04 21:09 ` [PATCH v5 12/13] go-runtime: remove unneeded nativesdk override, rename variable Matt Madison
2018-03-04 21:09 ` [PATCH v5 13/13] tcmode-default.inc: add settings for go Matt Madison
2018-03-04 21:34 ` ✗ patchtest: failure for go1.10 update and misc improvements (rev5) Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5D0C9F8B.8060109@windriver.com \
--to=mingli.yu@windriver.com \
--cc=matt@madison.systems \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.