55 lines
1.4 KiB
Plaintext
55 lines
1.4 KiB
Plaintext
|
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"
|
||
|
|