valgrind: enable ~500 more ptests

Add valgrind's top level config.h to the ptest package since
it is used by several scripts to determine which tests to run.

Drop the removal of:
   none/tests/shell,
the content was already moved to:
   none/tests/scripts/shell
so the filter useless and the files no longer cause a problem.

Add a few more test directories that had been omitted.
Add perf/bigcode for test: none/tests/bigcode

Leave .c, .h, .S files in the ptest image since several of them are
needed to run the tests. The overhead is ~13 MB which is high but
keeping all test code is easier than figuring out which source files
are needed and the entire valgrind-ptest package is ~115 MB so in
this context it's an acceptable trade-off.

Add bash dependency for ptest for none/tests/scripts/shell

With core-image-minimal on qemux86-64/kvm:
Recipe         | Passed      | Failed   | Skipped   | Time(s)
before         | 149         | 1        | 9         | 663
after          | 648         | 12       | 60        | 1541

(From OE-Core rev: 083a5dd27d305ecd12214f2665460dbe06b96c2a)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Randy MacLeod
2019-09-10 17:41:33 -04:00
committed by Richard Purdie
parent fb5556a4b6
commit ecb8b17efc

View File

@@ -109,7 +109,7 @@ RDEPENDS_${PN} += "perl"
# redirect functions like strlen.
RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
RDEPENDS_${PN}-ptest += " file perl perl-module-file-glob sed ${PN}-dbg"
RDEPENDS_${PN}-ptest += " bash file perl perl-module-file-glob procps sed ${PN}-dbg"
RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-utils"
# One of the tests contains a bogus interpreter path on purpose.
@@ -134,40 +134,45 @@ do_install_ptest() {
for parent_dir in ${S} ${B} ; do
cd $parent_dir
# exclude shell or the package won't install
rm -rf none/tests/shell* 2>/dev/null
subdirs=" \
cachegrind/tests \
callgrind/tests \
dhat/tests \
drd/tests \
exp-bbv/tests \
exp-dhat/tests \
gdbserver_tests \
helgrind/tests \
lackey/tests \
massif/tests \
memcheck/tests \
none/tests \
tests \
"
# Get the vg test scripts, filters, and expected files
for dir in $subdirs ; do
find $dir | cpio -pvdu ${D}${PTEST_PATH}
done
cd $saved_dir
done
cp ${B}/config.h ${D}${PTEST_PATH}
mkdir ${D}${PTEST_PATH}/perf
cp ${B}/perf/bigcode ${D}${PTEST_PATH}/perf
# Hide then restore a.c that is used by ann[12].vgtest in call/cachegrind
mv ${D}${PTEST_PATH}/cachegrind/tests/a.c ${D}${PTEST_PATH}/cachegrind/tests/a_c
# clean out build artifacts before building the rpm
# clean out build artifacts before building the package. Keep config.h for ptests.
mv ${D}${PTEST_PATH}/config.h ${D}${PTEST_PATH}/config_h
find ${D}${PTEST_PATH} \
\( -name "Makefile*" \
\( \
-name "Makefile*" \
-o -name "*.o" \
-o -name "*.c" \
-o -name "*.S" \
-o -name "*.h" \) \
\) \
-exec rm {} \;
mv ${D}${PTEST_PATH}/cachegrind/tests/a_c ${D}${PTEST_PATH}/cachegrind/tests/a.c
touch ${D}${PTEST_PATH}/cachegrind/tests/a.c -r ${D}${PTEST_PATH}/cachegrind/tests/cgout-test
mv ${D}${PTEST_PATH}/config_h ${D}${PTEST_PATH}/config.h
# find *_annotate in ${bindir} for yocto build
sed -i s:\.\./\.\./cachegrind/cg_annotate:${bindir}/cg_annotate: ${D}${PTEST_PATH}/cachegrind/tests/ann1.vgtest