diff --git a/meta-oe/recipes-devtools/jemalloc/files/run-ptest b/meta-oe/recipes-devtools/jemalloc/files/run-ptest index b351f947e8..5c826a1766 100644 --- a/meta-oe/recipes-devtools/jemalloc/files/run-ptest +++ b/meta-oe/recipes-devtools/jemalloc/files/run-ptest @@ -1,9 +1,37 @@ #!/bin/sh +export MALLOC_CONF_ALL=${MALLOC_CONF} +# Concatenate the individual test's MALLOC_CONF and MALLOC_CONF_ALL. +export_malloc_conf() { + if [ "x${MALLOC_CONF}" != "x" -a "x${MALLOC_CONF_ALL}" != "x" ] ; then + export MALLOC_CONF="${MALLOC_CONF},${MALLOC_CONF_ALL}" + else + export MALLOC_CONF="${MALLOC_CONF}${MALLOC_CONF_ALL}" + fi +} + + + saved_dir=$PWD for dir in tests/* ; do cd $dir for atest in * ; do + if [[ "${atest##*.}" == "sh" ]]; then + continue + fi + if [ -e "${atest}.sh" ] ; then + # Source the shell script corresponding to the test in a subshell and + # execute the test. This allows the shell script to set MALLOC_CONF, which + # is then used to set MALLOC_CONF (thus allowing the + # per test shell script to ignore the detail). + enable_fill=1 \ + enable_prof=1 \ + . $(pwd)/${atest}.sh && \ + export_malloc_conf + else + export MALLOC_CONF= && \ + export_malloc_conf + fi if [ \( -x $atest \) -a \( -f $atest \) ] ; then rm -rf tests.log ./$atest > tests.log 2>&1 @@ -18,4 +46,3 @@ for dir in tests/* ; do done cd $saved_dir done - diff --git a/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb b/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb index 950b64ee9b..9ad83261ef 100644 --- a/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb +++ b/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb @@ -42,10 +42,13 @@ do_compile_ptest() { do_install_ptest() { install -d ${D}${PTEST_PATH}/tests - subdirs="test/unit test/integration test/stress " + subdirs="unit integration stress " for tooltest in ${subdirs} do - cp -r ${B}/${tooltest} ${D}${PTEST_PATH}/tests + cp -r ${B}/test/${tooltest} ${D}${PTEST_PATH}/tests + if find ${S}/test/${tooltest}/ -name '*.sh' -print -quit | grep -q .; then + cp ${S}/test/${tooltest}/*.sh ${D}${PTEST_PATH}/tests/${tooltest} + fi done find ${D}${PTEST_PATH}/tests \( -name "*.d" -o -name "*.o" \) -exec rm -f {} \; }