diff options
author | Ujjwal Sharma <usharma1998@gmail.com> | 2019-03-15 18:35:06 +0530 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2019-03-28 16:36:18 -0400 |
commit | f579e1194046c50f2e6bb54348d48c8e7d1a53cf (patch) | |
tree | 9125787c758358365f74f9fd9673c14f57e67870 /deps/v8/test/cctest/libplatform/test-tracing.cc | |
parent | 2c73868b0471fbd4038f500d076df056cbf697fe (diff) | |
download | android-node-v8-f579e1194046c50f2e6bb54348d48c8e7d1a53cf.tar.gz android-node-v8-f579e1194046c50f2e6bb54348d48c8e7d1a53cf.tar.bz2 android-node-v8-f579e1194046c50f2e6bb54348d48c8e7d1a53cf.zip |
deps: update V8 to 7.4.288.13
PR-URL: https://github.com/nodejs/node/pull/26685
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'deps/v8/test/cctest/libplatform/test-tracing.cc')
-rw-r--r-- | deps/v8/test/cctest/libplatform/test-tracing.cc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/deps/v8/test/cctest/libplatform/test-tracing.cc b/deps/v8/test/cctest/libplatform/test-tracing.cc index b949785bcf..3b449f4b09 100644 --- a/deps/v8/test/cctest/libplatform/test-tracing.cc +++ b/deps/v8/test/cctest/libplatform/test-tracing.cc @@ -4,6 +4,7 @@ #include <limits> #include "include/libplatform/v8-tracing.h" +#include "src/base/platform/platform.h" #include "src/libplatform/default-platform.h" #include "src/tracing/trace-event.h" #include "test/cctest/cctest.h" @@ -439,6 +440,59 @@ TEST(TracingObservers) { i::V8::SetPlatformForTesting(old_platform); } +class TraceWritingThread : public base::Thread { + public: + TraceWritingThread( + v8::platform::tracing::TracingController* tracing_controller) + : base::Thread(base::Thread::Options("TraceWritingThread")), + tracing_controller_(tracing_controller) {} + + void Run() override { + for (int i = 0; i < 1000; i++) { + TRACE_EVENT0("v8", "v8.Test"); + tracing_controller_->AddTraceEvent('A', nullptr, "v8", "", 1, 1, 0, + nullptr, nullptr, nullptr, nullptr, 0); + tracing_controller_->AddTraceEventWithTimestamp('A', nullptr, "v8", "", 1, + 1, 0, nullptr, nullptr, + nullptr, nullptr, 0, 0); + base::OS::Sleep(base::TimeDelta::FromMilliseconds(1)); + } + } + + private: + v8::platform::tracing::TracingController* tracing_controller_; +}; + +TEST(AddTraceEventMultiThreaded) { + v8::Platform* old_platform = i::V8::GetCurrentPlatform(); + std::unique_ptr<v8::Platform> default_platform( + v8::platform::NewDefaultPlatform()); + i::V8::SetPlatformForTesting(default_platform.get()); + + auto tracing = base::make_unique<v8::platform::tracing::TracingController>(); + v8::platform::tracing::TracingController* tracing_controller = tracing.get(); + static_cast<v8::platform::DefaultPlatform*>(default_platform.get()) + ->SetTracingController(std::move(tracing)); + + MockTraceWriter* writer = new MockTraceWriter(); + TraceBuffer* ring_buffer = + TraceBuffer::CreateTraceBufferRingBuffer(1, writer); + tracing_controller->Initialize(ring_buffer); + TraceConfig* trace_config = new TraceConfig(); + trace_config->AddIncludedCategory("v8"); + tracing_controller->StartTracing(trace_config); + + TraceWritingThread thread(tracing_controller); + thread.StartSynchronously(); + + base::OS::Sleep(base::TimeDelta::FromMilliseconds(100)); + tracing_controller->StopTracing(); + + thread.Join(); + + i::V8::SetPlatformForTesting(old_platform); +} + } // namespace tracing } // namespace platform } // namespace v8 |