1*4882a593Smuzhiyuninherit go ptest 2*4882a593Smuzhiyun 3*4882a593Smuzhiyundo_compile_ptest_base() { 4*4882a593Smuzhiyun export TMPDIR="${GOTMPDIR}" 5*4882a593Smuzhiyun rm -f ${B}/.go_compiled_tests.list 6*4882a593Smuzhiyun go_list_package_tests | while read pkg; do 7*4882a593Smuzhiyun cd ${B}/src/$pkg 8*4882a593Smuzhiyun ${GO} test ${GOPTESTBUILDFLAGS} $pkg 9*4882a593Smuzhiyun find . -mindepth 1 -maxdepth 1 -type f -name '*.test' -exec echo $pkg/{} \; | \ 10*4882a593Smuzhiyun sed -e's,/\./,/,'>> ${B}/.go_compiled_tests.list 11*4882a593Smuzhiyun done 12*4882a593Smuzhiyun do_compile_ptest 13*4882a593Smuzhiyun} 14*4882a593Smuzhiyun 15*4882a593Smuzhiyundo_compile_ptest_base[dirs] =+ "${GOTMPDIR}" 16*4882a593Smuzhiyun 17*4882a593Smuzhiyungo_make_ptest_wrapper() { 18*4882a593Smuzhiyun cat >${D}${PTEST_PATH}/run-ptest <<EOF 19*4882a593Smuzhiyun#!/bin/sh 20*4882a593SmuzhiyunRC=0 21*4882a593Smuzhiyunrun_test() ( 22*4882a593Smuzhiyun cd "\$1" 23*4882a593Smuzhiyun ((((./\$2 ${GOPTESTFLAGS}; echo \$? >&3) | sed -r -e"s,^(PASS|SKIP|FAIL)\$,\\1: \$1/\$2," >&4) 3>&1) | (read rc; exit \$rc)) 4>&1 24*4882a593Smuzhiyun exit \$?) 25*4882a593SmuzhiyunEOF 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun} 28*4882a593Smuzhiyun 29*4882a593Smuzhiyundo_install_ptest_base() { 30*4882a593Smuzhiyun test -f "${B}/.go_compiled_tests.list" || exit 0 31*4882a593Smuzhiyun install -d ${D}${PTEST_PATH} 32*4882a593Smuzhiyun go_stage_testdata 33*4882a593Smuzhiyun go_make_ptest_wrapper 34*4882a593Smuzhiyun havetests="" 35*4882a593Smuzhiyun while read test; do 36*4882a593Smuzhiyun testdir=`dirname $test` 37*4882a593Smuzhiyun testprog=`basename $test` 38*4882a593Smuzhiyun install -d ${D}${PTEST_PATH}/$testdir 39*4882a593Smuzhiyun install -m 0755 ${B}/src/$test ${D}${PTEST_PATH}/$test 40*4882a593Smuzhiyun echo "run_test $testdir $testprog || RC=1" >> ${D}${PTEST_PATH}/run-ptest 41*4882a593Smuzhiyun havetests="yes" 42*4882a593Smuzhiyun done < ${B}/.go_compiled_tests.list 43*4882a593Smuzhiyun if [ -n "$havetests" ]; then 44*4882a593Smuzhiyun echo "exit \$RC" >> ${D}${PTEST_PATH}/run-ptest 45*4882a593Smuzhiyun chmod +x ${D}${PTEST_PATH}/run-ptest 46*4882a593Smuzhiyun else 47*4882a593Smuzhiyun rm -rf ${D}${PTEST_PATH} 48*4882a593Smuzhiyun fi 49*4882a593Smuzhiyun do_install_ptest 50*4882a593Smuzhiyun chown -R root:root ${D}${PTEST_PATH} 51*4882a593Smuzhiyun} 52*4882a593Smuzhiyun 53*4882a593SmuzhiyunINSANE_SKIP:${PN}-ptest += "ldflags" 54*4882a593Smuzhiyun 55