[PATCH 16/17] scripts/code_cov_parse_info: fix files statistics
Kamil Konieczny
kamil.konieczny at linux.intel.com
Thu Feb 15 17:26:00 UTC 2024
Hi Mauro,
On 2024-02-15 at 11:27:25 +0100, Mauro Carvalho Chehab wrote:
> From: Mauro Carvalho Chehab <mchehab at kernel.org>
>
> With fields rename at %record, the number of filtered files
> is not reflecting what it was actually there. Also, the was_used
> logic for json format was not parsing the same way as it used to
> be with info format.
>
> Fix those.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>
Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> scripts/code_cov_parse_info | 17 ++++++++++-------
> 1 file changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/scripts/code_cov_parse_info b/scripts/code_cov_parse_info
> index 3ce26e545aee..9d043a987f44 100755
> --- a/scripts/code_cov_parse_info
> +++ b/scripts/code_cov_parse_info
> @@ -126,7 +126,6 @@ sub parse_json_gcov_v1($$)
> my $file = shift;
> my $json = shift;
>
> - my $was_used = 0;
> my $has_func = 0;
> my $ignore = 0;
>
> @@ -149,6 +148,7 @@ sub parse_json_gcov_v1($$)
> my %cached;
> for my $file_ref (@{$json->{'files'}}) {
> my $source = $file_ref->{'file'};
> + my $was_used = 0;
>
> $files{$source} = 1;
> next if is_file_excluded($source);
> @@ -181,8 +181,6 @@ sub parse_json_gcov_v1($$)
> $was_used = 1;
> }
> }
> - next if ($ignore_unused && !$was_used);
> - $used_source{$source} = 1;
>
> # Parse lines and branches
> for my $line_ref (@{$file_ref->{'lines'}}) {
> @@ -267,6 +265,7 @@ sub parse_json_gcov_v1($$)
> }
>
> $all_branch{$source}{$where}{count} += $branch_ref->{'count'};
> + $was_used = 1 if ($branch_ref->{'count'} > 0);
>
> $i++;
> }
> @@ -274,6 +273,8 @@ sub parse_json_gcov_v1($$)
> @{$record{files}{$source}{line}{$ln}{branches}} = ();
> }
> }
> + next if ($ignore_unused && !$was_used);
> + $used_source{$source} = 1;
> }
>
> # As the record was changed, we need to use a different format name
> @@ -285,7 +286,6 @@ sub parse_json_internal_format_v1($$)
> my $file = shift;
> my $json = shift;
>
> - my $was_used = 0;
> my $has_func = 0;
> my $ignore = 0;
> my %cached;
> @@ -305,6 +305,8 @@ sub parse_json_internal_format_v1($$)
>
> for my $source (keys %{$json->{'files'}}) {
> $files{$source} = 1;
> + my $was_used = 0;
> +
> next if is_file_excluded($source);
>
> my $file_ref = \%{$json->{'files'}{$source}};
> @@ -332,8 +334,6 @@ sub parse_json_internal_format_v1($$)
> $was_used = 1;
> }
> }
> - next if ($ignore_unused && !$was_used);
> - $used_source{$source} = 1;
>
> # Parse lines and branches
> for my $ln (keys %{$file_ref->{line}}) {
> @@ -400,12 +400,15 @@ sub parse_json_internal_format_v1($$)
> }
>
> $all_branch{$source}{$where}{count} += $taken;
> + $was_used = 1 if ($taken > 0);
> $i++;
> }
> if (!defined($record{files}{$source}{line}{$ln}{branches})) {
> @{$record{files}{$source}{line}{$ln}{branches}} = ();
> }
> }
> + next if ($ignore_unused && !$was_used);
> + $used_source{$source} = 1;
> }
> }
>
> @@ -876,7 +879,7 @@ sub gen_stats()
>
> # per-file coverage stats
> $stats{"all_files"} = scalar keys(%files);
> - $stats{"filtered_files"} = scalar keys(%record);
> + $stats{"filtered_files"} = scalar keys(%{$record{files}});
> $stats{"used_files"} = scalar keys(%used_source);
> }
>
> --
> 2.43.0
>
More information about the igt-dev
mailing list