From 3eaf01fcd4fef7f37d75e2fc5b42be88186b3cbf Mon Sep 17 00:00:00 2001 From: Zheng Qiu Date: Tue, 18 Oct 2022 16:48:51 -0400 Subject: jq: improve ptest and disable valgrind by default Improve ptest result formatting. In run-ptest, setting a flag to disable valgrind image unless enabled by "valgrind" PACKAGECONFIG. Requested jq for seprating make check, so in the future it can be changed to utilize Makefile and reduce redudancy. Signed-off-by: Zheng Qiu Signed-off-by: Randy MacLeod Signed-off-by: Khem Raj --- meta-oe/recipes-devtools/jq/jq/run-ptest | 28 +++++++++++++++++++++++++++- meta-oe/recipes-devtools/jq/jq_git.bb | 11 +++++++---- 2 files changed, 34 insertions(+), 5 deletions(-) mode change 100644 => 100755 meta-oe/recipes-devtools/jq/jq/run-ptest (limited to 'meta-oe/recipes-devtools') diff --git a/meta-oe/recipes-devtools/jq/jq/run-ptest b/meta-oe/recipes-devtools/jq/jq/run-ptest old mode 100644 new mode 100755 index 0e4c707e96..a813958b5a --- a/meta-oe/recipes-devtools/jq/jq/run-ptest +++ b/meta-oe/recipes-devtools/jq/jq/run-ptest @@ -1,11 +1,37 @@ #!/bin/sh +JQ_LIB=@libdir@/jq +LOG="${JQ_LIB}/ptest/jq_ptest_$(date +%Y%m%d-%H%M%S).log" + +# clean up the log file to avoid a file has the same name and has existing content +echo "" > ${LOG} + +# The purpose of ptest is doing intergration test, so disable valgrind by default +# change PACKAGECOFIG to enable valgrind. +#export NO_VALGRIND=1 +# The --enable-valgrind configure option for jq only can be used within Makefiles, +# and it cannot be utilized here since it also checks compile, which cannot be avoid +# Requested enhancement to jq: https://github.com/stedolan/jq/issues/2493 + for test in optionaltest mantest jqtest onigtest shtest utf8test base64test; do - ./tests/${test} + ./tests/${test} >> ${LOG} 2>> ${LOG} if [ $? -eq 0 ]; then echo "PASS: ${test}" + echo "PASS: ${test}" >> ${LOG} else echo "FAIL: ${test}" + echo "FAIL: ${test}" >> ${LOG} fi done +passed=`grep PASS: ${LOG}|wc -l` +failed=`grep FAIL: ${LOG}|wc -l` +skipped=`grep SKIP: ${LOG}|wc -l` +all=$((passed + failed + skipped)) + +( echo "=== Test Summary ===" + echo "TOTAL: ${all}" + echo "PASSED: ${passed}" + echo "FAILED: ${failed}" + echo "SKIPPED: ${skipped}" +) | tee -a /${LOG} diff --git a/meta-oe/recipes-devtools/jq/jq_git.bb b/meta-oe/recipes-devtools/jq/jq_git.bb index c6634cd300..4fa98aa44f 100644 --- a/meta-oe/recipes-devtools/jq/jq_git.bb +++ b/meta-oe/recipes-devtools/jq/jq_git.bb @@ -24,10 +24,8 @@ PACKAGECONFIG ?= "oniguruma" PACKAGECONFIG[docs] = "--enable-docs,--disable-docs,ruby-native" PACKAGECONFIG[maintainer-mode] = "--enable-maintainer-mode,--disable-maintainer-mode,flex-native bison-native" PACKAGECONFIG[oniguruma] = "--with-oniguruma,--without-oniguruma,onig" - -EXTRA_OECONF += " \ - --disable-valgrind \ -" +# enable if you want ptest running under valgrind +PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,valgrind" do_install_ptest() { cp -rf ${B}/tests ${D}${PTEST_PATH} @@ -35,6 +33,11 @@ do_install_ptest() { # libjq.so.* is packaged in the main jq component, so remove it from ptest rm -f ${D}${PTEST_PATH}/.libs/libjq.so.* ln -sf ${bindir}/jq ${D}${PTEST_PATH} + if [ "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'true', 'false', d)}" = "false" ]; then + sed -i 's:#export NO_VALGRIND=1:export NO_VALGRIND=1:g' ${D}${PTEST_PATH}/run-ptest + fi + # handle multilib + sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest } BBCLASSEXTEND = "native" -- cgit v1.2.3-54-g00ecf