• Peter Marshall's avatar
    [tracing] Add a way to test perfetto traces. · d365f62e
    Peter Marshall authored
    Add a new abstract class TraceEventListener which is just an interface
    for consuming trace events. This separates the V8-specific stuff that
    an actual perfetto consumer needs to do e.g. handling the has_more flag
    and signalling back to the controller with a semaphore.
    
    This is a change from the previous plan of making the PerfettoConsumer
    class sub-classable to implement custom consumption of trace events.
    This will be difficult when the consumer is created outside of the
    PerfettoTracingController as we can't hook up the
    consumer_finished_semaphore_ that belongs to the controller.
    
    Now the PerfettoTracingController is responsible for the Consumer life-
    cycle and hides it entirely from callers. We add the
    AddTraceEventListener() method to allow callers to register a listener
    either for testing or a JSON listener for real tracing.
    
    This lets us write tests that can store all the trace events in memory
    without first converting them to JSON, letting us write test more
    easily. There's an example test add to test-tracing - more tests using
    this style will follow.
    
    Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
    Bug: v8:8339
    Change-Id: I2d2b0f408b1c7bed954144163e1968f40d772c1b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628789
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Auto-Submit: Peter Marshall <petermarshall@chromium.org>
    Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#61854}
    d365f62e
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
COMMON_OWNERS Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
ENG_REVIEW_OWNERS Loading commit data...
INFRA_OWNERS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...