Files
poky/meta/classes/go-ptest.bbclass
Richard Purdie ff525695f2 classes: Add SPDX license identifiers
As stated in our top level license files, the license is MIT unless
otherwise stated. Add SPDX identifers accordingly. Replace older
license statementa with the standardised syntax. Also drop "All
Rights Reserved" expression as it isn't used now, doesn't mean anything
and is confusing.

(From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12 11:58:01 +01:00

61 lines
1.4 KiB
Plaintext

#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
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"