summaryrefslogtreecommitdiff
path: root/mysql-test/dgcov.pl
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2022-12-01 20:24:12 +0100
committerSergei Golubchik <serg@mariadb.org>2022-12-02 16:19:13 +0100
commit7baf24a0f8e9491a55e47734d5242821a360f1bc (patch)
tree46495a68967af14a2ce5082e6789ffa74910098b /mysql-test/dgcov.pl
parent43173ef2614030afbf0d393a93932e7e8bab1d3e (diff)
downloadmariadb-git-7baf24a0f8e9491a55e47734d5242821a360f1bc.tar.gz
MDEV-26102 followup
* update README * fix version regex to support versions with two digits * die if the version cannot be parsed * support gcc versions 11+ * require JSON::PP not use, to avoid introducing new rpm dependency into MariaDB-test
Diffstat (limited to 'mysql-test/dgcov.pl')
-rwxr-xr-xmysql-test/dgcov.pl9
1 files changed, 5 insertions, 4 deletions
diff --git a/mysql-test/dgcov.pl b/mysql-test/dgcov.pl
index 7ef0a918a96..4adafd552fa 100755
--- a/mysql-test/dgcov.pl
+++ b/mysql-test/dgcov.pl
@@ -63,14 +63,14 @@ my $cmd;
if ($opt_purge)
{
$cmd= "find . -name '*.da' -o -name '*.gcda*' -o -name '*.gcov' -o ".
- "-name '*.dgcov' | grep -v 'README\.gcov' | xargs rm -f ''";
+ "-name '*.dgcov' | xargs rm -f ''";
logv "Running: $cmd";
system($cmd)==0 or die "system($cmd): $? $!";
exit 0;
}
my $gcc_version= `gcc -dumpversion`;
-$gcc_version=~ s/(\d).*$/$1/;
+$gcc_version=~ s/^(\d+)\..*$/$1/ or die "Cannot parse gcc -dumpversion: $gcc_version";
find(\&gcov_one_file, $root);
find(\&write_coverage, $root) if $opt_generate;
@@ -189,11 +189,12 @@ sub gcov_one_file {
}
} else {
use IO::Uncompress::Gunzip qw(gunzip $GunzipError);
- use JSON::PP;
+ require JSON::PP;
my $gcov_file_json;
my $fname;
+ s/\.gcda$// if $gcc_version >= 11;
gunzip "$_.gcov.json.gz" => \$gcov_file_json or die "gunzip($_.gcov.json.gz): $GunzipError";
- my $obj= decode_json $gcov_file_json;
+ my $obj= JSON::PP::decode_json $gcov_file_json;
for my $file (@{$obj->{files}}) {
$fname= $file->{file};
for my $line (@{$file->{lines}}){