From: Mauro Carvalho Chehab <mauro.chehab@linux.intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [PATCH i-g-t 08/12] code_cov_parse_info: allow specifying the source directory
Date: Tue, 17 Jan 2023 15:06:03 +0100 [thread overview]
Message-ID: <20230117140607.2759816-9-mauro.chehab@linux.intel.com> (raw)
In-Reply-To: <20230117140607.2759816-1-mauro.chehab@linux.intel.com>
From: Mauro Carvalho Chehab <mchehab@kernel.org>
Some options may require parsing the source files. Currently,
only --check-branches use it, but other functions will be added
on other patches.
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
scripts/code_cov_parse_info | 32 ++++++++++++++++++++------------
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/scripts/code_cov_parse_info b/scripts/code_cov_parse_info
index d38ee9ee6a69..c2a8020f461b 100755
--- a/scripts/code_cov_parse_info
+++ b/scripts/code_cov_parse_info
@@ -1200,13 +1200,19 @@ sub generate_report($)
close OUT;
}
-sub check_source_branches()
+sub check_source_branches($)
{
+ my $source_dir = shift;
+ my $cached = "";
+
foreach my $source (sort keys(%all_branch)) {
next if (!$used_source{$source});
next if (is_file_excluded($source));
- my @lines;
+ open IN, "$source_dir/$source" || die "File $source_dir/$source not found. Can't check branches\n";
+ my @lines = <IN>;
+ close IN;
+
foreach my $where (sort keys %{$all_branch{$source}}) {
my $taken = $all_branch{$source}{$where}{count};
next if ($taken > 0);
@@ -1218,13 +1224,7 @@ sub check_source_branches()
$block = $2;
$branch = $3;
- if (!@lines) {
- open IN, "$source" || die "File $source not found. Can't check branches\n";
- @lines = <IN>;
- close IN;
- }
-
- if ($ln >= $#lines) {
+ if ($ln > $#lines) {
die "$source:$ln line is bigger than the number of lines at the file ($#lines lines)\n";
return;
}
@@ -1288,12 +1288,14 @@ my $show_lines;
my $only_i915;
my $only_drm;
my $check_branches;
+my $source_dir = ".";
GetOptions(
"print-coverage|print_coverage|print|p" => \$print_used,
"print-unused|u" => \$print_unused,
"stat|statistics" => \$stat,
"output|o=s" => \$output_file,
+ "source-dir|source_dir=s" => \$source_dir,
"verbose|v" => \$verbose,
"ignore-unused|ignore_unused" => \$ignore_unused,
"only-i915|only_i915" => \$only_i915,
@@ -1307,7 +1309,7 @@ GetOptions(
"show-files|show_files" => \$show_files,
"show-lines|show_lines" => \$show_lines,
"report|r=s" => \$gen_report,
- "check-branches" => \$check_branches,
+ "check-branches|check_branches" => \$check_branches,
"css-file|css|c=s" => \$css_file,
"title|t=s" => \$title,
"html-prolog|prolog=s" => \$html_prolog,
@@ -1412,7 +1414,7 @@ gen_stats();
if ($check_branches) {
- check_source_branches();
+ check_source_branches($source_dir);
}
die "Nothing counted. Wrong input files?" if (!$stats{"all_files"});
@@ -1541,6 +1543,12 @@ Produce an output file merging all input files.
The generated output file is affected by the applied filters.
+=item B<--source-dir> or B<--source_dir>
+
+Sets the source directory baseline. This is used together with other
+options that require to parse the source files (currently, only
+B<--check-branches).
+
=item B<--only-drm> or B<--only_drm>
Filters out includes outside the DRM subsystem, plus trace files.
@@ -1676,7 +1684,7 @@ This option is automaticaly enabled when B<--func-filters> is used.
Shows the list of files that were used to produce the code coverage
results.
-=item B<--check-branches>
+=item B<--check-branches> or B<--check_branches>
Checks at the Linux Kernel source files what's the contents of the
branches that weren't taken. The directory should match what's
--
2.39.0
next prev parent reply other threads:[~2023-01-17 14:06 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-17 14:05 [igt-dev] [PATCH i-g-t 00/12] Improve code coverage tool Mauro Carvalho Chehab
2023-01-17 14:05 ` [igt-dev] [PATCH i-g-t 01/12] code_cov_parse_info: silent some messages by default Mauro Carvalho Chehab
2023-01-17 14:05 ` [igt-dev] [PATCH i-g-t 02/12] code_cov_parse_info: do some renames to make it more coherent Mauro Carvalho Chehab
2023-01-17 14:05 ` [igt-dev] [PATCH i-g-t 03/12] code_cov_parse_info: use numberic sort for line numbers Mauro Carvalho Chehab
2023-01-17 14:05 ` [igt-dev] [PATCH i-g-t 04/12] code_cov_parse_info: better handle include regexes Mauro Carvalho Chehab
2023-01-17 14:06 ` [igt-dev] [PATCH i-g-t 05/12] code_cov_parse_info: add a tool to analyze branch coverage Mauro Carvalho Chehab
2023-01-17 14:06 ` [igt-dev] [PATCH i-g-t 06/12] code_cov_parse_info: add support for parsing JSON files Mauro Carvalho Chehab
2023-01-25 14:18 ` Kamil Konieczny
2023-01-17 14:06 ` [igt-dev] [PATCH i-g-t 07/12] code_cov_parse_info: add support for compressed files Mauro Carvalho Chehab
2023-01-17 14:06 ` Mauro Carvalho Chehab [this message]
2023-01-17 14:06 ` [igt-dev] [PATCH i-g-t 09/12] code_cov_parse_info: better handle branch filtering Mauro Carvalho Chehab
2023-01-17 14:06 ` [igt-dev] [PATCH i-g-t 10/12] code_cov_parse_info: filter out branches from headers by default Mauro Carvalho Chehab
2023-01-17 14:06 ` [igt-dev] [PATCH i-g-t 11/12] code_cov_parse_info: add support for filtering branches Mauro Carvalho Chehab
2023-01-17 14:06 ` [igt-dev] [PATCH i-g-t 12/12] code_cov_parse_info: add support for filtering Xe driver data Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230117140607.2759816-9-mauro.chehab@linux.intel.com \
--to=mauro.chehab@linux.intel.com \
--cc=igt-dev@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox