summaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/libplatform/test-tracing.cc
diff options
context:
space:
mode:
authorUjjwal Sharma <usharma1998@gmail.com>2019-03-15 18:35:06 +0530
committerRefael Ackermann <refack@gmail.com>2019-03-28 16:36:18 -0400
commitf579e1194046c50f2e6bb54348d48c8e7d1a53cf (patch)
tree9125787c758358365f74f9fd9673c14f57e67870 /deps/v8/test/cctest/libplatform/test-tracing.cc
parent2c73868b0471fbd4038f500d076df056cbf697fe (diff)
downloadandroid-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.cc54
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