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

Issue 346003003: vmservice: Add /coverage collection to scripts, classes and libraries. (Closed)

Created:
6 years, 6 months ago by Michael Lippautz (Google)
Modified:
6 years, 6 months ago
Reviewers:
Cutch, Ivan Posva
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Coverage data for single entities can be obtained by querying: * script: isolate/id/script/name/coverage * class: isolate/id/class/id/coverage * library: isolate/id/library/id/coverage Some numbers (curl on vm service): * old base line (full coverage of dart:core + script computing faculty): ~1.2s * generation for just the script file: ~12ms * generation of dart:core (after executing fac script): ~150ms * generation of dart:core-patch/array.dart: ~12ms BUG= R=johnmccutchan@google.com Committed: https://code.google.com/p/dart/source/detail?r=37676

Patch Set 1 : #

Total comments: 6

Patch Set 2 : rebase + rewrite #

Patch Set 3 : exclude service_classescoverage from simmips tests #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+349 lines, -40 lines) Patch
M runtime/tests/vm/vm.status View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/coverage.h View 1 1 chunk +11 lines, -1 line 0 comments Download
M runtime/vm/coverage.cc View 1 6 chunks +61 lines, -6 lines 0 comments Download
M runtime/vm/object.h View 1 2 chunks +4 lines, -0 lines 0 comments Download
M runtime/vm/object.cc View 1 1 chunk +48 lines, -0 lines 1 comment Download
M runtime/vm/object_test.cc View 1 1 chunk +16 lines, -0 lines 0 comments Download
M runtime/vm/service.cc View 1 6 chunks +53 lines, -33 lines 1 comment Download
M runtime/vm/service_test.cc View 1 1 chunk +155 lines, -0 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
Michael Lippautz (Google)
6 years, 6 months ago (2014-06-20 18:23:17 UTC) #1
Cutch
https://codereview.chromium.org/346003003/diff/40001/runtime/vm/coverage.cc File runtime/vm/coverage.cc (right): https://codereview.chromium.org/346003003/diff/40001/runtime/vm/coverage.cc#newcode253 runtime/vm/coverage.cc:253: for (intptr_t i = 0; i < num_scripts; i++) ...
6 years, 6 months ago (2014-06-23 16:23:12 UTC) #2
Michael Lippautz (Google)
PTAL https://codereview.chromium.org/346003003/diff/40001/runtime/vm/coverage.cc File runtime/vm/coverage.cc (right): https://codereview.chromium.org/346003003/diff/40001/runtime/vm/coverage.cc#newcode253 runtime/vm/coverage.cc:253: for (intptr_t i = 0; i < num_scripts; ...
6 years, 6 months ago (2014-06-24 17:51:07 UTC) #3
Cutch
lgtm
6 years, 6 months ago (2014-06-24 18:49:19 UTC) #4
Michael Lippautz (Google)
Committed patchset #3 manually as r37676 (presubmit successful).
6 years, 6 months ago (2014-06-25 00:06:59 UTC) #5
Ivan Posva
6 years, 6 months ago (2014-06-26 10:14:33 UTC) #6
Message was sent while issue was closed.
Michael, John,

There is a general problem with the assumption that a script has only been
loaded into a single library. We might need to change the encoding of how
scripts are being accessed in general.

Also please update the API so that the implementation detail of script filters
does not leak out into the public API.

Thanks,
-Ivan

https://codereview.chromium.org/346003003/diff/100001/runtime/vm/object.cc
File runtime/vm/object.cc (right):

https://codereview.chromium.org/346003003/diff/100001/runtime/vm/object.cc#ne...
runtime/vm/object.cc:8325: return lib.raw();
How does this work for scripts that have been included in multiple libraries?

https://codereview.chromium.org/346003003/diff/100001/runtime/vm/service.cc
File runtime/vm/service.cc (right):

https://codereview.chromium.org/346003003/diff/100001/runtime/vm/service.cc#n...
runtime/vm/service.cc:1293: CodeCoverage::PrintJSONForLibrary(lib,
Script::Handle(), js);
I find this an awkward API. If you want to factor out the coverage printing for
a library with a script filter within the CodeCoverage class, then please make
it a private implementation method instead of leaking out the functionality to
the public API.

Powered by Google App Engine
This is Rietveld 408576698