Commit 7baf24a0 authored by Sergei Golubchik's avatar Sergei Golubchik

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
parent 43173ef2
......@@ -2,14 +2,7 @@ To be able to see the level of coverage with the current test suite,
do the following:
- Make sure gcov is installed
- Compile the MySQL distribution with BUILD/compile-pentium64-gcov (if your
machine does not have a pentium CPU, hack this script, or just live with
the pentium-specific stuff)
- In the mysql-test directory, run this command: ./mysql-test-run -gcov
- To see the level of coverage for a given source file:
grep -1 source_file_name ../mysql-test-gcov.msg
- To see which lines are not yet covered, look at source_file_name.gcov in
the source tree. You can find this by doing something like:
find source-directory -name "mysqld.cc.gcov"
Then think hard about a test case that will cover those lines, and write
one!
- Compile the MariaDB distribution with -DENABLE_GCOV=1
- In the mysql-test directory, run this command: `./mysql-test-run --gcov`
- see var/last_changes.dgcov for the coverage of uncommitted code
- see `./dgcov -h` for more options
......@@ -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}}){
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment