Title: [152934] trunk/Tools
- Revision
- 152934
- Author
- achristen...@apple.com
- Date
- 2013-07-19 17:11:32 -0700 (Fri, 19 Jul 2013)
Log Message
Improved code coverage generation.
https://bugs.webkit.org/show_bug.cgi?id=118926
Reviewed by Tim Horton.
* Scripts/build-webkit: Removed exception preventing ANGLE code coverage support.
* Scripts/generate-coverage-data: Added --no-build to run-_javascript_core-tests call.
(generateReport): Moved report generation to a subroutine.
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (152933 => 152934)
--- trunk/Tools/ChangeLog 2013-07-19 23:30:02 UTC (rev 152933)
+++ trunk/Tools/ChangeLog 2013-07-20 00:11:32 UTC (rev 152934)
@@ -1,3 +1,14 @@
+2013-07-19 Alex Christensen <achristen...@apple.com>
+
+ Improved code coverage generation.
+ https://bugs.webkit.org/show_bug.cgi?id=118926
+
+ Reviewed by Tim Horton.
+
+ * Scripts/build-webkit: Removed exception preventing ANGLE code coverage support.
+ * Scripts/generate-coverage-data: Added --no-build to run-_javascript_core-tests call.
+ (generateReport): Moved report generation to a subroutine.
+
2013-07-19 Daniel Bates <daba...@apple.com>
Make Perl tools work when using git bisect with Git branch build setup
Modified: trunk/Tools/Scripts/build-webkit (152933 => 152934)
--- trunk/Tools/Scripts/build-webkit 2013-07-19 23:30:02 UTC (rev 152933)
+++ trunk/Tools/Scripts/build-webkit 2013-07-20 00:11:32 UTC (rev 152934)
@@ -326,7 +326,7 @@
$result = buildGtkProject($project, $clean, $prefixPath, $makeArgs, $noWebKit1, $noWebKit2, @features);
} elsif (isAppleMacWebKit()) {
my @local_options = @options;
- push @local_options, XcodeCoverageSupportOptions() if $coverageSupport && $project ne "ANGLE";
+ push @local_options, XcodeCoverageSupportOptions() if $coverageSupport;
my $projectPath = $project =~ /gtest/ ? "xcode/gtest" : $project;
$result = buildXCodeProject($projectPath, $clean, @local_options, @ARGV);
} elsif (isAppleWinWebKit()) {
Modified: trunk/Tools/Scripts/generate-coverage-data (152933 => 152934)
--- trunk/Tools/Scripts/generate-coverage-data 2013-07-19 23:30:02 UTC (rev 152933)
+++ trunk/Tools/Scripts/generate-coverage-data 2013-07-20 00:11:32 UTC (rev 152934)
@@ -46,46 +46,49 @@
sub getFileHitsAndBranches($);
sub addLineCounts($$$$$$);
sub createResultName();
+sub generateReport($);
-my $resultName = createResultName();
-
-# Move to the source directory
chdirWebKit();
+system("mkdir WebKitBuild/Coverage") if ! -d "WebKitBuild/Coverage";
# Delete old gcov files
print "Cleaning up\n";
system("if [ -d WebKitBuild ]; then find WebKitBuild -name '*.gcda' -delete; fi;") == 0 or die "Cannot delete old gcda files (code coverage";
-# Compile WebKit and run the tests
print "Building and testing\n";
-system("Tools/Scripts/build-webkit", "--coverage", @ARGV) == 0 or die "Cannot compile webkit with code coverage";
+system("Tools/Scripts/build-webkit", "--clean", @ARGV) == 0 or die "Cannot clean WebKit build";
+system("Tools/Scripts/build-webkit", "--coverage", "--release", @ARGV) == 0 or die "Cannot compile WebKit with code coverage";
+system("Tools/Scripts/run-_javascript_core-tests --no-build");
+system("Tools/Scripts/run-api-tests");
system("Tools/Scripts/run-webkit-tests");
system("Tools/Scripts/run-webkit-tests -2");
-system("Tools/Scripts/run-_javascript_core-tests");
-system("Tools/Scripts/run-api-tests");
+generateReport(createResultName());
+print "Done\n";
-# Generate the coverage data and report
-print "Collecting coverage data\n";
-system("mkdir WebKitBuild/Coverage") if ! -d "WebKitBuild/Coverage";
-system("python Tools/Scripts/webkitpy/tool/gcovr --xml --output=WebKitBuild/Coverage/" . $resultName . ".xml") == 0 or die "Cannot run gcovr";
+sub generateReport()
+{
+ my ($reportName) = @_;
-# Collect useful data from xml to json format
-my $jsonData = encode_json(parseGcovrOutput("WebKitBuild/Coverage/$resultName.xml"));
-open my $templateFile, "<", "Tools/CodeCoverage/results-template.html" or die "Cannot open Tools/CodeCoverage/results-template.html";
-my $templateHtml = join("", <$templateFile>);
-close $templateFile;
-$templateHtml =~ s/%CoverageDataJSON%/$jsonData/;
+ # Generate the coverage data and report
+ print "Collecting coverage data\n";
+ system("python Tools/Scripts/webkitpy/tool/gcovr --xml --output=WebKitBuild/Coverage/" . $reportName . ".xml") == 0 or die "Cannot run gcovr";
-my $reportFilename = "WebKitBuild/Coverage/$resultName.html";
-open my $reportFile, ">", $reportFilename or die "Cannot open $reportFilename";
-print $reportFile $templateHtml;
-close $reportFile;
+ # Collect useful data from xml to json format
+ my $jsonData = encode_json(parseGcovrOutput("WebKitBuild/Coverage/$reportName.xml"));
+ open my $templateFile, "<", "Tools/CodeCoverage/results-template.html" or die "Cannot open Tools/CodeCoverage/results-template.html";
+ my $templateHtml = join("", <$templateFile>);
+ close $templateFile;
+ $templateHtml =~ s/%CoverageDataJSON%/$jsonData/;
-# Open the report
-my $url = "" . sourceDir() . "/WebKitBuild/Coverage/$resultName.html";
-system "open \"$url\"";
+ my $reportFilename = "WebKitBuild/Coverage/$reportName.html";
+ open my $reportFile, ">", $reportFilename or die "Cannot open $reportFilename";
+ print $reportFile $templateHtml;
+ close $reportFile;
-print "Done\n";
+ # Open the report
+ my $url = "" . sourceDir() . "/WebKitBuild/Coverage/$reportName.html";
+ system "open \"$url\"";
+}
sub parseGcovrOutput($)
{
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes