1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-07-01 00:25:06 +02:00

Suppress Valgrind errors on a per-VM basis.

There are a number of Valgrind errors on Ubuntu 12.04 which do not happen on newer distro versions. However, suppressions for these errors have masked legitimate issues in subsequent code.

Instead, make suppressions VM specific so errors in other VMs are not masked.
This commit is contained in:
David Steele
2020-05-06 18:24:48 -04:00
parent 28967951ab
commit 6be5ea3388
2 changed files with 6 additions and 1 deletions

View File

@ -252,6 +252,9 @@ sub run
if ($self->{oTest}->{&TEST_C})
{
# Build filename for valgrind suppressions
my $strValgrindSuppress = $self->{strGCovPath} . '/test/valgrind.suppress.' . $self->{oTest}->{&TEST_VM};
$strCommand =
($self->{oTest}->{&TEST_VM} ne VM_NONE ? 'docker exec -i -u ' . TEST_USER . " ${strImage} " : '') .
"bash -l -c '" .
@ -259,9 +262,11 @@ sub run
# Remove coverage data from last run
"rm -f test.gcda && " .
"make -j $self->{iBuildMax} -s 2>&1 &&" .
# Test with valgrind when requested
($self->{oTest}->{&TEST_VM} ne VM_CO6 && $self->{bValgrindUnit} &&
$self->{oTest}->{&TEST_TYPE} ne TESTDEF_PERFORMANCE ?
" valgrind -q --gen-suppressions=all --suppressions=$self->{strGCovPath}/test/valgrind.suppress" .
' valgrind -q --gen-suppressions=all ' .
($self->{oStorageTest}->exists($strValgrindSuppress) ? " --suppressions=${strValgrindSuppress}" : '') .
" --leak-check=full --leak-resolution=high --error-exitcode=25" : '') .
" ./test.bin 2>&1'";
}