summaryrefslogtreecommitdiff
path: root/test/valgrind.awk
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2016-11-07 21:22:47 +0200
committerArnold D. Robbins <arnold@skeeve.com>2016-11-07 21:22:47 +0200
commite331f49edafc56bf8f32cc82adacd6c109666ad1 (patch)
treef345bd919a0e36e4342e547c06e05ef1a3ecf530 /test/valgrind.awk
parente886bf34a4e42095824a2b14c40cb19efa80390f (diff)
downloadgawk-e331f49edafc56bf8f32cc82adacd6c109666ad1.tar.gz
Improve valgrind scan.
Diffstat (limited to 'test/valgrind.awk')
-rw-r--r--test/valgrind.awk43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/valgrind.awk b/test/valgrind.awk
new file mode 100644
index 00000000..95699da1
--- /dev/null
+++ b/test/valgrind.awk
@@ -0,0 +1,43 @@
+function show()
+{
+ error_count++
+ if (cmd) {
+ printf "%s: %s\n", FILENAME, cmd
+ cmd = ""
+ }
+ printf "\t%s\n",$0
+}
+
+FNR == 1 {
+ error_count = 0
+}
+
+{ $1 = "" }
+
+$2 == "Command:" {
+ incmd = 1
+ $2 = ""
+ cmd = $0
+ next
+}
+
+incmd {
+ if (/Parent PID:/)
+ incmd = 0
+ else {
+ cmd = (cmd $0)
+ next
+ }
+}
+
+/ERROR SUMMARY:/ && !/: 0 errors from 0 contexts/ && error_count > 0 {
+ show()
+}
+
+/definitely lost:/ && !/: 0 bytes in 0 blocks/ { show() }
+
+# /possibly lost:/ && !/: 0 bytes in 0 blocks/ { show() }
+
+# / suppressed:/ && !/: 0 bytes in 0 blocks/ { show() }
+
+/[Ii]nvalid (read|write)/ { show() }