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

Unified Diff: client/tools/show_coverage.js

Issue 9837113: Move update.py to samples/swarm, remove a bunch of deprecated files for (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « client/tools/scss.sh ('k') | client/tools/sourcemap.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/tools/show_coverage.js
===================================================================
--- client/tools/show_coverage.js (revision 5923)
+++ client/tools/show_coverage.js (working copy)
@@ -1,259 +0,0 @@
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/**
- * A simple application that renders coverage results in a page. It sorts data
- * by file name, shows a summary table including coverage statistics per
- * package, and implements the necessary behaviour to select a file and view
- * line-by-line coverage information.
- */
-
-var files_;
-var code_;
-var summary_;
-var selectedDiv_;
-var file_percent_ = {};
-var package_lines_ = {};
-var package_covered_ = {};
-var package_rec_lines_ = {};
-var package_rec_covered_ = {};
-
-// handle a click event anywhere on the screen
-function clickListener(e) {
- var elem = e.target;
- // determine if a file or a close link was clicked on:
- while (elem != null) {
- if (elem.classList) {
- if (elem.classList.contains("file")) {
- fileSelected(elem);
- return;
- } else if (elem.classList.contains("close")) {
- closeDetails();
- }
- }
- elem = elem.parentNode;
- }
-}
-
-// handle when a row in the list of files is selected
-function fileSelected(elem) {
- if (selectedDiv_ != null) {
- selectedDiv_.classList.remove("file-selected");
- }
- if (selectedDiv_ == elem) {
- closeDetails();
- return;
- }
- selectedDiv_ = elem;
- elem.classList.add("file-selected");
- var file = elem.getAttribute("data-field");
- var code_with_coverage = "";
- var lines = code_[file];
- var coverage = summary_[file];
- for (var lineNum = 0; lineNum < lines.length; lineNum++) {
- var covered = coverage[lineNum] == 1;
- var currentLine = lines[lineNum].
- replace(/</g, "&lt;").
- replace(/>/g, "&gt;").
- replace(/\n/g, "\\n");
- var iscode = coverage[lineNum] == 0 || coverage[lineNum] == 1;
- code_with_coverage +=
- "<span class='linenum'><span class='" +
- (covered && iscode ? "yes" : (iscode ? "no" : "")) + "'>" +
- (lineNum + 1)+ "</span>" +
- "<span>" + currentLine + "</span>" +
- "</div>";
- }
-
- var detailsDiv = document.getElementById("details-body");
- detailsDiv.innerHTML = code_with_coverage;
- var outerDiv = detailsDiv.parentNode;
- outerDiv.classList.remove("hidden");
-}
-
-// closes the detail view that displays line-by-line coverage info
-function closeDetails() {
- if (selectedDiv_ != null) {
- selectedDiv_.classList.remove("file-selected");
- selectedDiv_ = null;
- }
- var detailsDiv = document.getElementById("details-body");
- detailsDiv.parentNode.classList.add("hidden");
-}
-
-// generates an HTML string segment for a coverage-bar
-function generatePercentBar(percent) {
- return "<span class='coverage-bar'>" +
- "<span class='coverage-bar-inner' style='width:" + percent + "px'>" +
- "</span></span>";
-}
-
-// extracts the top-level directory from a path
-function getRootDir(path) {
- if (path == null) {
- return null;
- }
- var index = path.indexOf("/");
- return index == -1 ? null : path.substring(0, index);
-}
-
-// extracts the directory portion of a path
-function getDirName(path) {
- if (path == null) {
- return null;
- }
- var index = path.lastIndexOf("/");
- return index == -1 ? null : path.substring(0, index);
-}
-
-// extracts the file name portion of a path
-function getFileName(path) {
- if (path == null) {
- return null;
- }
- var index = path.lastIndexOf("/");
- return index == -1 ? path : path.substring(index + 1);
-}
-
-// generates an HTML string segment with the summary stats for a package which
-// doesn't include sub-packages statistics.
-function generatePackageLine(pkg) {
- var percent = ((package_covered_[pkg] * 100) / package_lines_[pkg]).
- toFixed(1);
- return "<tr class='package'><td colspan='2' class='package'>" +
- pkg +
- "<td class='file-percent'>" + percent + "%</td>" +
- "<td class='file-percent'>" + generatePercentBar(percent) +
- "</td> </tr>";
-}
-
-// generates an HTML string segment with the summary stats for a package which
-// includes sub-packages statistics
-function generatePackageLineRec(pkg) {
- var percent = ((package_rec_covered_[pkg] * 100) /
- package_rec_lines_[pkg]).toFixed(1);
- return "<tr class='package'><td colspan='2' class='package'>" +
- pkg + " (with subpackages)" +
- "<td class='file-percent'>" + percent + "%</td>" +
- "<td class='file-percent'>" + generatePercentBar(percent) +
- "</td> </tr>";
-}
-
-// generates an hTML string segment with the summary stats for a single file
-function generateFileLine(file) {
- var filename = getFileName(file);
- var percent = file_percent_[file].toFixed(1)
- return "<tr class='file' data-field='" + file + "'>" +
- "<td></td>" +
- "<td class='file-name'>" +
- filename +
- "</td>" +
- "<td class='file-percent'>" + percent + "%</td>" +
- "<td class='file-percent'>" + generatePercentBar(percent) +
- "</td>" +
- "</tr>";
-}
-
-// Updates coverage information in a package given the coverage data from a file
-// that is directly on that package or on some sub-package
-function recordPackageLinesRec(pkg, totalcode, covered) {
- if (package_rec_lines_[pkg] == null) {
- package_rec_lines_[pkg] = totalcode;
- package_rec_covered_[pkg] = covered;
- } else {
- package_rec_lines_[pkg] += totalcode;
- package_rec_covered_[pkg] += covered;
- }
-}
-
-// Updates coverage information in a package given the coverage data from a file
-// directly on that package
-function recordPackageLines(pkg, totalcode, covered) {
- if (package_lines_[pkg] == null) {
- package_lines_[pkg] = totalcode;
- package_covered_[pkg] = covered;
- } else {
- package_lines_[pkg] += totalcode;
- package_covered_[pkg] += covered;
- }
-}
-
-var EMPTY_ROW = "<tr><td>&nbsp;</td></tr>";
-
-// renders the page with a list of files and an area to display more details.
-function render(files, code, summary) {
- files.sort()
- files_ = files;
- code_ = code;
- summary_ = summary;
- var buffer = "";
- var last_pkg = null;
-
- // compute percent for files and packages. Tally information per package, by
- // tracking total lines covered on any file in the package
-
- for (var i = 0; i < files.length; i++) {
- var file = files[i];
- var coverage = summary[file];
- var covered = 0;
- var totalcode = 0;
- for (var j = 0; j < coverage.length; j++) {
- if (coverage[j] == 1 || coverage[j] == 0) {
- totalcode += 1;
- }
- if (coverage[j] == 1) {
- covered += 1;
- }
- }
- file_percent_[file] = (covered * 100) / totalcode;
- var pkg = getDirName(file);
-
- // summary for this package alone
- recordPackageLines(pkg, totalcode, covered);
-
- // summary for each package including subpackages
- while (pkg != null) {
- recordPackageLinesRec(pkg, totalcode, covered);
- pkg = getDirName(pkg)
- }
- recordPackageLinesRec("** everything **", totalcode, covered);
- }
-
- // create UI for the results...
- buffer += generatePackageLineRec("** everything **");
- for (var i = 0; i < files.length; i++) {
- var file = files[i];
-
- var pkg = getDirName(file)
- if (pkg != last_pkg) {
- var prefix = getRootDir(last_pkg);
- var rec_summary = "";
- if (pkg.indexOf(prefix) != 0) {
- var current = getDirName(pkg);
- while (current != null) {
- rec_summary = EMPTY_ROW + generatePackageLineRec(current) +
- rec_summary;
- current = getDirName(current);
- }
- }
- buffer += rec_summary + EMPTY_ROW + generatePackageLineRec(pkg);
- last_pkg = pkg;
- }
- buffer += generateFileLine(file);
- }
-
- var menu = "<div class='menu'><table class='menu-table'><tbody>" +
- buffer + "</tbody></table></div>"
-
- // single file details
- var details = "<div class='details hidden'><div class='close'>X Close</div>" +
- "<div id='details-body' class='details-body'></div></div>";
-
- var div = document.createElement("div");
- div.innerHTML = "<div class='all'>" +
- "<div>Select a file to display its details:</div> "
- + menu + details + "</div>";
- document.body.appendChild(div);
- document.body.addEventListener("click", clickListener, true);
-}
« no previous file with comments | « client/tools/scss.sh ('k') | client/tools/sourcemap.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698