From d5f1ba9300f61e598a010495bffed1faf2d7541c Mon Sep 17 00:00:00 2001 From: Wentao Zhang Date: Fri, 17 Oct 2025 19:31:07 +0200 Subject: [PATCH] jemalloc: include the missing shell scripts and source the corresponds shell scripts for some test cases. The test cases in jemalloc require the appropriate value to be exported to MALLOC_CONF, which is stored in shell scripts. The privious script just ran the test cases without exporting value, causing the tests to fail. Include the missing shell scripts, and source them before running the test cases now. Signed-off-by: Wentao Zhang Signed-off-by: Khem Raj (cherry picked from commit b3274b4e90fad106e2e76b48afb866d81170bd6f) Signed-off-by: Gyorgy Sarvari --- .../recipes-devtools/jemalloc/files/run-ptest | 29 ++++++++++++++++++- .../jemalloc/jemalloc_5.2.1.bb | 7 +++-- 2 files changed, 33 insertions(+), 3 deletions(-) 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.2.1.bb b/meta-oe/recipes-devtools/jemalloc/jemalloc_5.2.1.bb index 8618c8c6a7..f3f2a32889 100644 --- a/meta-oe/recipes-devtools/jemalloc/jemalloc_5.2.1.bb +++ b/meta-oe/recipes-devtools/jemalloc/jemalloc_5.2.1.bb @@ -43,10 +43,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 {} \; }