| 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" |
| |