Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(459)

Side by Side Diff: third_party/lcov-1.9/bin/gendesc

Issue 23189008: Upgrades lcov to 1.10, removes lcov-1.9 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Re-adds UNKNOWN suppression Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/lcov-1.9/README.chromium ('k') | third_party/lcov-1.9/bin/genhtml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/perl -w
2 #
3 # Copyright (c) International Business Machines Corp., 2002
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or (at
8 # your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 #
19 #
20 # gendesc
21 #
22 # This script creates a description file as understood by genhtml.
23 # Input file format:
24 #
25 # For each test case:
26 # <test name><optional whitespace>
27 # <at least one whitespace character (blank/tab)><test description>
28 #
29 # Actual description may consist of several lines. By default, output is
30 # written to stdout. Test names consist of alphanumeric characters
31 # including _ and -.
32 #
33 #
34 # History:
35 # 2002-09-02: created by Peter Oberparleiter <Peter.Oberparleiter@de.ibm.com>
36 #
37
38 use strict;
39 use File::Basename;
40 use Getopt::Long;
41
42
43 # Constants
44 our $lcov_version = 'LCOV version 1.9';
45 our $lcov_url = "http://ltp.sourceforge.net/coverage/lcov.php";
46 our $tool_name = basename($0);
47
48
49 # Prototypes
50 sub print_usage(*);
51 sub gen_desc();
52 sub warn_handler($);
53 sub die_handler($);
54
55
56 # Global variables
57 our $help;
58 our $version;
59 our $output_filename;
60 our $input_filename;
61
62
63 #
64 # Code entry point
65 #
66
67 $SIG{__WARN__} = \&warn_handler;
68 $SIG{__DIE__} = \&die_handler;
69
70 # Prettify version string
71 $lcov_version =~ s/\$\s*Revision\s*:?\s*(\S+)\s*\$/$1/;
72
73 # Parse command line options
74 if (!GetOptions("output-filename=s" => \$output_filename,
75 "version" =>\$version,
76 "help|?" => \$help
77 ))
78 {
79 print(STDERR "Use $tool_name --help to get usage information\n");
80 exit(1);
81 }
82
83 $input_filename = $ARGV[0];
84
85 # Check for help option
86 if ($help)
87 {
88 print_usage(*STDOUT);
89 exit(0);
90 }
91
92 # Check for version option
93 if ($version)
94 {
95 print("$tool_name: $lcov_version\n");
96 exit(0);
97 }
98
99
100 # Check for input filename
101 if (!$input_filename)
102 {
103 die("No input filename specified\n".
104 "Use $tool_name --help to get usage information\n");
105 }
106
107 # Do something
108 gen_desc();
109
110
111 #
112 # print_usage(handle)
113 #
114 # Write out command line usage information to given filehandle.
115 #
116
117 sub print_usage(*)
118 {
119 local *HANDLE = $_[0];
120
121 print(HANDLE <<END_OF_USAGE)
122 Usage: $tool_name [OPTIONS] INPUTFILE
123
124 Convert a test case description file into a format as understood by genhtml.
125
126 -h, --help Print this help, then exit
127 -v, --version Print version number, then exit
128 -o, --output-filename FILENAME Write description to FILENAME
129
130 For more information see: $lcov_url
131 END_OF_USAGE
132 ;
133 }
134
135
136 #
137 # gen_desc()
138 #
139 # Read text file INPUT_FILENAME and convert the contained description to a
140 # format as understood by genhtml, i.e.
141 #
142 # TN:<test name>
143 # TD:<test description>
144 #
145 # If defined, write output to OUTPUT_FILENAME, otherwise to stdout.
146 #
147 # Die on error.
148 #
149
150 sub gen_desc()
151 {
152 local *INPUT_HANDLE;
153 local *OUTPUT_HANDLE;
154 my $empty_line = "ignore";
155
156 open(INPUT_HANDLE, $input_filename)
157 or die("ERROR: cannot open $input_filename!\n");
158
159 # Open output file for writing
160 if ($output_filename)
161 {
162 open(OUTPUT_HANDLE, ">$output_filename")
163 or die("ERROR: cannot create $output_filename!\n");
164 }
165 else
166 {
167 *OUTPUT_HANDLE = *STDOUT;
168 }
169
170 # Process all lines in input file
171 while (<INPUT_HANDLE>)
172 {
173 chomp($_);
174
175 if (/^(\w[\w-]*)(\s*)$/)
176 {
177 # Matched test name
178 # Name starts with alphanum or _, continues with
179 # alphanum, _ or -
180 print(OUTPUT_HANDLE "TN: $1\n");
181 $empty_line = "ignore";
182 }
183 elsif (/^(\s+)(\S.*?)\s*$/)
184 {
185 # Matched test description
186 if ($empty_line eq "insert")
187 {
188 # Write preserved empty line
189 print(OUTPUT_HANDLE "TD: \n");
190 }
191 print(OUTPUT_HANDLE "TD: $2\n");
192 $empty_line = "observe";
193 }
194 elsif (/^\s*$/)
195 {
196 # Matched empty line to preserve paragraph separation
197 # inside description text
198 if ($empty_line eq "observe")
199 {
200 $empty_line = "insert";
201 }
202 }
203 }
204
205 # Close output file if defined
206 if ($output_filename)
207 {
208 close(OUTPUT_HANDLE);
209 }
210
211 close(INPUT_HANDLE);
212 }
213
214 sub warn_handler($)
215 {
216 my ($msg) = @_;
217
218 warn("$tool_name: $msg");
219 }
220
221 sub die_handler($)
222 {
223 my ($msg) = @_;
224
225 die("$tool_name: $msg");
226 }
OLDNEW
« no previous file with comments | « third_party/lcov-1.9/README.chromium ('k') | third_party/lcov-1.9/bin/genhtml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698