tests: add function for valgrind installation
authorEvgeny Vereshchagin <evvers@ya.ru>
Thu, 14 Jan 2016 08:09:09 +0000 (08:09 +0000)
committerEvgeny Vereshchagin <evvers@ya.ru>
Thu, 14 Jan 2016 08:11:17 +0000 (08:11 +0000)
I used it for d9814c76ec35e53a6b6448c0
Very handy:)

test/test-functions

index cf8755a..80d048c 100644 (file)
@@ -119,6 +119,25 @@ setup_basic_environment() {
     generate_module_dependencies
 }
 
+install_valgrind() {
+    if ! type -p valgrind; then
+        dfatal "Failed to install valgrind"
+        exit 1
+    fi
+
+    local _valgrind_bins=$(strace -e execve valgrind /bin/true 2>&1 >/dev/null | perl -lne 'print $1 if /^execve\("([^"]+)"/')
+    dracut_install $_valgrind_bins
+
+    local _valgrind_libs=$(LD_DEBUG=files valgrind /bin/true 2>&1 >/dev/null | perl -lne 'print $1 if m{calling init: (/.*vgpreload_.*)}')
+    dracut_install $_valgrind_libs
+
+    local _valgrind_dbg_and_supp=$(
+        strace -e open valgrind /bin/true 2>&1 >/dev/null |
+        perl -lne 'if (my ($fname) = /^open\("([^"]+).*= (?!-)\d+/) { print $fname if $fname =~ /debug|\.supp$/ }'
+    )
+    dracut_install $_valgrind_dbg_and_supp
+}
+
 install_dmevent() {
     instmods dm_crypt =crypto
     type -P dmeventd >/dev/null && dracut_install dmeventd