Browse Source

[trac614] Add a cleaner of the valgrind output

Michal 'vorner' Vaner 14 years ago
parent
commit
6458b98ea4
1 changed files with 45 additions and 0 deletions
  1. 45 0
      tools/valgrind_test_cleaner.pl

+ 45 - 0
tools/valgrind_test_cleaner.pl

@@ -0,0 +1,45 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+my ($block, $blockOK);
+
+sub endBlock(_) {
+	return unless $block;
+	if ($blockOK) {
+		print @$block;
+	}
+	undef $block;
+	undef $blockOK;
+}
+
+sub startBlock(_) {
+	$block = [@_];
+}
+
+sub addToBlock(_) {
+	my ($line) = @_;
+	push @$block, $line;
+	return unless $line =~ /^==\d+==\s+(at|by) 0x[0-9A-F]+: (.*) \(.+:\d+\)$/;
+	$_ = $2;
+	return $blockOK = 1 if /^isc::/;
+	return $blockOK = 1 if /^asiolink:/;
+	return if /^main \(/;
+	return if /^testing::/;
+	return if /^\(anonymous namespace\)::/;
+	$blockOK = 1;
+}
+
+while(<>) {
+	if (/^==\d+==\s*$/) {
+		print;
+		endBlock;
+	} elsif (/^==\d+==\s+\d+bytes.*lost in loss record/) {
+		startBlock;
+	} elsif ($block) {
+		addToBlock;
+	} else {
+		print;
+	}
+}
+endBlock;