From 720660b936b5523ec48a7c04712d10c88198e12c Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 5 Jul 2021 18:04:21 +0100 Subject: util-linux: rewrite the ptest integration Instead of duplicating logic, we can use the run.sh that the test suite installs. Unless told otherwise, the util-linux test suite assumes that it is running in a build tree and looks for binaries to run, but we're on target so pass --use-system-commands (drops ~180 skips to tens). Add --show-diff so that debugging can be done from the logs alone. Remove redundant path manipulation that is now done upstream. If PAM is disabled, delete the chfn test: it will run the chfn from shadow which has different output, and the test will fail. [ YOCTO #14244 ] Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/recipes-core/util-linux/util-linux/run-ptest | 23 ++------------------- meta/recipes-core/util-linux/util-linux_2.37.bb | 25 +++++------------------ 2 files changed, 7 insertions(+), 41 deletions(-) (limited to 'meta') diff --git a/meta/recipes-core/util-linux/util-linux/run-ptest b/meta/recipes-core/util-linux/util-linux/run-ptest index e135ee583b..3a910be121 100644 --- a/meta/recipes-core/util-linux/util-linux/run-ptest +++ b/meta/recipes-core/util-linux/util-linux/run-ptest @@ -13,31 +13,12 @@ current_path=$(readlink -f $0) export bindir=$(dirname $current_path) export PATH=$bindir/bin:$PATH -cd tests || exit 1 - -comps=$(find ts/ -type f -perm -111 -regex ".*/[^\.~]*" | sort) - - -echo -echo "-------------------- util-linux regression tests --------------------" -echo -echo " For development purpose only. " -echo " Don't execute on production system! " -echo - -res=0 -count=0 -for ts in $comps; -do - $ts | sed -u '{ +./tests/run.sh --use-system-commands --parsable --show-diff | sed -u '{ s/^\(.*\):\(.*\) \.\.\. OK$/PASS: \1:\2/ s/^\(.*\):\(.*\) \.\.\. FAILED \(.*\)$/FAIL: \1:\2 \3/ s/^\(.*\):\(.*\) \.\.\. SKIPPED \(.*\)$/SKIP: \1:\2 \3/ - }' -done - + }' if [ "x$UDEV_PID" != "x" ]; then /etc/init.d/udev start fi - diff --git a/meta/recipes-core/util-linux/util-linux_2.37.bb b/meta/recipes-core/util-linux/util-linux_2.37.bb index 48b6208612..399f66d6a0 100644 --- a/meta/recipes-core/util-linux/util-linux_2.37.bb +++ b/meta/recipes-core/util-linux/util-linux_2.37.bb @@ -280,25 +280,10 @@ do_install_ptest() { cp -pR ${S}/tests/ts ${D}${PTEST_PATH}/tests/ cp ${WORKDIR}/build/config.h ${D}${PTEST_PATH} - # The original paths of executables to be tested point to a local folder containing - # the executables. We want to test the installed executables, not the local copies. - # So strip the paths, the executables will be located via "which" - sed -i \ - -e '/^TS_CMD/ s|$top_builddir/||g' \ - -e '/^TS_HELPER/ s|$top_builddir|${PTEST_PATH}|g' \ - ${D}${PTEST_PATH}/tests/commands.sh - - # Change 'if [ ! -x "$1" ]' to 'if [ ! -x "`which $1 2>/dev/null`"]' - sed -i -e \ - '/^\tif[[:space:]]\[[[:space:]]![[:space:]]-x[[:space:]]"$1"/s|$1|`which $1 2>/dev/null`|g' \ - ${D}${PTEST_PATH}/tests/functions.sh - - # Running "kill" without the the complete path would use the shell's built-in kill - sed -i -e \ - '/^TS_CMD_KILL/ s|kill|${PTEST_PATH}/bin/kill|g' \ - ${D}${PTEST_PATH}/tests/commands.sh - - - sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest + sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest + # chfn needs PAM + if ! ${@bb.utils.contains('PACKAGECONFIG', 'pam', 'true', 'false', d)}; then + rm -rf ${D}${PTEST_PATH}/tests/ts/chfn + fi } -- cgit 1.2.3-korg