[OE-core] [PATCH 1/1] coreutils: add ptest

Khem Raj raj.khem at gmail.com
Fri Nov 22 01:06:31 UTC 2019


On Thu, Nov 21, 2019 at 9:43 AM Trevor Gamblin
<Trevor.Gamblin at windriver.com> wrote:
>
> From: Trevor Gamblin <trevor.gamblin at windriver.com>
>
> coreutils has a large number of tests, (and potential RDEPENDS
> to support them), including tests added with the flags
> RUN_EXPENSIVE_TESTS and RUN_VERY_EXPENSIVE_TESTS that add
> significant run time for their coverage. The RUN_VERY_EXPENSIVE_TESTS
> option has been omitted from the run-ptest script to reduce
> some of this run time, even though this increases the SKIP count
> in the results. Also, the ptest directory for coreutils is given
> blanket permissions at runtime with chmod -R 777 to ensure that
> the user created for the tests will be able to run the test
> scripts and create the necessary files in the process.
>
> There is still room to improve the results of this ptest without
> the aforementioned additions. Of the tests marked SKIP, there
> are 30 tests that are currently counted as SKIP because they
> require root permissions, and another 21 that require membership
> in multiple user groups. It is important to know that coreutils
> has tests for both root and non-root users. Testing showed that
> 42 tests are skipped when running as root versus 30 when running
> as a non-root user, so the decision was made to run the suite as
> the latter.
>
> Finally, note that the ptest suite for coreutils has a short
> runtime on x86-64/kvm of approximately 4.5 minutes, in contrast
> to the arm64 runtime of ~70 minutes.
>
> Signed-off-by: Trevor Gamblin <trevor.gamblin at windriver.com>
> ---
>  .../coreutils/coreutils/run-ptest             | 17 +++++++++
>  meta/recipes-core/coreutils/coreutils_8.31.bb | 38 +++++++++++++++++++
>  2 files changed, 55 insertions(+)
>  create mode 100755 meta/recipes-core/coreutils/coreutils/run-ptest
>
> diff --git a/meta/recipes-core/coreutils/coreutils/run-ptest b/meta/recipes-core/coreutils/coreutils/run-ptest
> new file mode 100755
> index 0000000000..683fedee7a
> --- /dev/null
> +++ b/meta/recipes-core/coreutils/coreutils/run-ptest
> @@ -0,0 +1,17 @@
> +#!/bin/bash
> +
> +COREUTILSLIB=/usr/lib/coreutils

does this need to consider lib|lib64 care for libdir ?

> +LOG="${COREUTILSLIB}/ptest/coreutils_ptest_$(date +%Y%m%d-%H%M%S).log"
> +
> +addgroup usergroup1
> +adduser --ingroup usergroup1 tester
> +
> +su tester -c "make check-TESTS RUN_EXPENSIVE_TESTS=yes top_srcdir=. srcdir=." | tee -a ${LOG}
> +deluser tester
> +delgroup usergroup1
> +
> +passed=`grep PASS ${LOG}|wc -l`
> +failed=`grep FAIL ${LOG}|wc -l`
> +skipped=`grep -E SKIP ${LOG}|wc -l`
> +all=$((passed + failed + skipped))
> +
> diff --git a/meta/recipes-core/coreutils/coreutils_8.31.bb b/meta/recipes-core/coreutils/coreutils_8.31.bb
> index 57b2c1bdba..5ce2730048 100644
> --- a/meta/recipes-core/coreutils/coreutils_8.31.bb
> +++ b/meta/recipes-core/coreutils/coreutils_8.31.bb
> @@ -143,3 +143,41 @@ python __anonymous() {
>  }
>
>  BBCLASSEXTEND = "native nativesdk"
> +
> +inherit ptest
> +
> +FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
> +
> +SRC_URI +=     "file://run-ptest"
> +RDEPENDS_${PN}-ptest += "bash findutils gawk gdb glibc libconvert-asn1-perl liberror-perl libmodule-build-perl libtimedate-perl liburi-perl make perl perl-module-file-stat python strace"
> +
> +do_install_ptest () {
> +       install -d ${D}${PTEST_PATH}/tests
> +       cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests
> +       sed -i 's/ginstall/install/g'  `grep -R ginstall ${D}${PTEST_PATH}/tests | awk -F: '{print $1}' | uniq`
> +       install -d ${D}${PTEST_PATH}/build-aux
> +       install ${S}/build-aux/test-driver ${D}${PTEST_PATH}/build-aux/
> +       cp ${B}/Makefile ${D}${PTEST_PATH}/
> +       cp ${S}/init.cfg ${D}${PTEST_PATH}/
> +       cp -r ${B}/src ${D}${PTEST_PATH}/
> +       cp -r ${S}/src/*.c ${D}${PTEST_PATH}/src
> +       cd ${D}${PTEST_PATH}
> +       tar -czvf ${D}${PTEST_PATH}/src.tar.gz ./src
> +       cd -
> +       sed -i '/^VPATH/s/= .*$/= ./g' ${D}${PTEST_PATH}/Makefile
> +       sed -i '/^PROGRAMS/s/^/#/g' ${D}${PTEST_PATH}/Makefile
> +       sed -i '/^Makefile: /s/^.*$/Makefile:/g' ${D}${PTEST_PATH}/Makefile
> +       sed -i '/^abs_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
> +       sed -i '/^abs_top_builddir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
> +       sed -i '/^abs_top_srcdir/s/= .*$/= \$\{PWD\}/g' ${D}${PTEST_PATH}/Makefile
> +       sed -i '/^built_programs/s/ginstall/install/g' ${D}${PTEST_PATH}/Makefile
> +   chmod -R 777 ${D}${PTEST_PATH}
> +       # Disable subcase stty-pairs.sh, it will cause test framework hang
> +       sed -i '/stty-pairs.sh/d' ${D}${PTEST_PATH}/Makefile
> +       install ${B}/src/getlimits ${D}/${bindir}
> +}
> +
> +FILES_${PN}-ptest += "${bindir}/getlimits"
> +
> +INSANE_SKIP_${PN}-ptest += "ldflags"
> +INSANE_SKIP_${PN}-ptest += "rpaths"
> --
> 2.23.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list