[OE-core] [v2 1/4] valgrind: enable ~500 more ptests

Randy MacLeod Randy.MacLeod at windriver.com
Tue Sep 10 21:41:33 UTC 2019


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

Signed-off-by: Randy MacLeod <Randy.MacLeod at windriver.com>
---
 .../valgrind/valgrind_3.15.0.bb               | 25 +++++++++++--------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
index 4e89c604d6..7bb6001d90 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
@@ -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
-- 
2.22.0



More information about the Openembedded-core mailing list