Commit cc59f8b1 authored by Jochen Eisinger's avatar Jochen Eisinger Committed by Commit Bot

Reland "Switch tracing to use v8::TracingController"

Original change's description:
> Switch tracing to use v8::TracingController
>
> BUG=v8:6511
> R=fmeawad@chromium.org
>
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
> Change-Id: I4961e4b61a9ddc98385ed97c3ffcbcaef2d9cba7
> Reviewed-on: https://chromium-review.googlesource.com/543144
> Commit-Queue: Jochen Eisinger <jochen@chromium.org>
> Reviewed-by: Fadi Meawad <fmeawad@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#46307}

BUG=v8:6511
TBR=fmeawad@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng;master.tryserver.v8:v8_linux64_tsan_rel
Change-Id: Ide32b409248dfd466e7c0bae1d8ae61d6a955d98
Reviewed-on: https://chromium-review.googlesource.com/558865
Commit-Queue: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: 's avatarJochen Eisinger <jochen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46381}
parent c5be0b85
...@@ -70,6 +70,8 @@ V8_PLATFORM_EXPORT void RunIdleTasks(v8::Platform* platform, ...@@ -70,6 +70,8 @@ V8_PLATFORM_EXPORT void RunIdleTasks(v8::Platform* platform,
* Attempts to set the tracing controller for the given platform. * Attempts to set the tracing controller for the given platform.
* *
* The |platform| has to be created using |CreateDefaultPlatform|. * The |platform| has to be created using |CreateDefaultPlatform|.
*
* DEPRECATED: Will be removed soon.
*/ */
V8_PLATFORM_EXPORT void SetTracingController( V8_PLATFORM_EXPORT void SetTracingController(
v8::Platform* platform, v8::Platform* platform,
......
...@@ -206,7 +206,7 @@ class Platform { ...@@ -206,7 +206,7 @@ class Platform {
/** /**
* Returns an instance of a v8::TracingController. This must be non-nullptr. * Returns an instance of a v8::TracingController. This must be non-nullptr.
*/ */
virtual TracingController* GetTracingController() { return nullptr; } virtual TracingController* GetTracingController() = 0;
// DEPRECATED methods, use TracingController interface instead. // DEPRECATED methods, use TracingController interface instead.
......
...@@ -229,6 +229,10 @@ class PredictablePlatform : public Platform { ...@@ -229,6 +229,10 @@ class PredictablePlatform : public Platform {
return synthetic_time_in_sec_ += 0.00001; return synthetic_time_in_sec_ += 0.00001;
} }
v8::TracingController* GetTracingController() override {
return platform_->GetTracingController();
}
Platform* platform() const { return platform_.get(); } Platform* platform() const { return platform_.get(); }
private: private:
...@@ -3107,13 +3111,7 @@ int Shell::Main(int argc, char* argv[]) { ...@@ -3107,13 +3111,7 @@ int Shell::Main(int argc, char* argv[]) {
? v8::platform::InProcessStackDumping::kDisabled ? v8::platform::InProcessStackDumping::kDisabled
: v8::platform::InProcessStackDumping::kEnabled; : v8::platform::InProcessStackDumping::kEnabled;
g_platform = v8::platform::CreateDefaultPlatform( platform::tracing::TracingController* tracing_controller = nullptr;
0, v8::platform::IdleTaskSupport::kEnabled, in_process_stack_dumping);
if (i::FLAG_verify_predictable) {
g_platform = new PredictablePlatform(std::unique_ptr<Platform>(g_platform));
}
platform::tracing::TracingController* tracing_controller;
if (options.trace_enabled && !i::FLAG_verify_predictable) { if (options.trace_enabled && !i::FLAG_verify_predictable) {
trace_file.open("v8_trace.json"); trace_file.open("v8_trace.json");
tracing_controller = new platform::tracing::TracingController(); tracing_controller = new platform::tracing::TracingController();
...@@ -3122,7 +3120,13 @@ int Shell::Main(int argc, char* argv[]) { ...@@ -3122,7 +3120,13 @@ int Shell::Main(int argc, char* argv[]) {
platform::tracing::TraceBuffer::kRingBufferChunks, platform::tracing::TraceBuffer::kRingBufferChunks,
platform::tracing::TraceWriter::CreateJSONTraceWriter(trace_file)); platform::tracing::TraceWriter::CreateJSONTraceWriter(trace_file));
tracing_controller->Initialize(trace_buffer); tracing_controller->Initialize(trace_buffer);
platform::SetTracingController(g_platform, tracing_controller); }
g_platform = v8::platform::CreateDefaultPlatform(
0, v8::platform::IdleTaskSupport::kEnabled, in_process_stack_dumping,
tracing_controller);
if (i::FLAG_verify_predictable) {
g_platform = new PredictablePlatform(std::unique_ptr<Platform>(g_platform));
} }
v8::V8::InitializePlatform(g_platform); v8::V8::InitializePlatform(g_platform);
......
...@@ -36,11 +36,10 @@ v8::Platform* CreateDefaultPlatform( ...@@ -36,11 +36,10 @@ v8::Platform* CreateDefaultPlatform(
if (in_process_stack_dumping == InProcessStackDumping::kEnabled) { if (in_process_stack_dumping == InProcessStackDumping::kEnabled) {
v8::base::debug::EnableInProcessStackDumping(); v8::base::debug::EnableInProcessStackDumping();
} }
DefaultPlatform* platform = new DefaultPlatform(idle_task_support); DefaultPlatform* platform =
new DefaultPlatform(idle_task_support, tracing_controller);
platform->SetThreadPoolSize(thread_pool_size); platform->SetThreadPoolSize(thread_pool_size);
platform->EnsureInitialized(); platform->EnsureInitialized();
if (tracing_controller != nullptr)
platform->SetTracingController(tracing_controller);
return platform; return platform;
} }
...@@ -64,16 +63,25 @@ void RunIdleTasks(v8::Platform* platform, v8::Isolate* isolate, ...@@ -64,16 +63,25 @@ void RunIdleTasks(v8::Platform* platform, v8::Isolate* isolate,
void SetTracingController( void SetTracingController(
v8::Platform* platform, v8::Platform* platform,
v8::platform::tracing::TracingController* tracing_controller) { v8::platform::tracing::TracingController* tracing_controller) {
return static_cast<DefaultPlatform*>(platform)->SetTracingController( static_cast<DefaultPlatform*>(platform)->SetTracingController(
tracing_controller); tracing_controller);
} }
const int DefaultPlatform::kMaxThreadPoolSize = 8; const int DefaultPlatform::kMaxThreadPoolSize = 8;
DefaultPlatform::DefaultPlatform(IdleTaskSupport idle_task_support) DefaultPlatform::DefaultPlatform(IdleTaskSupport idle_task_support,
v8::TracingController* tracing_controller)
: initialized_(false), : initialized_(false),
thread_pool_size_(0), thread_pool_size_(0),
idle_task_support_(idle_task_support) {} idle_task_support_(idle_task_support) {
if (tracing_controller) {
tracing_controller_.reset(tracing_controller);
} else {
tracing::TracingController* controller = new tracing::TracingController();
controller->Initialize(nullptr);
tracing_controller_.reset(controller);
}
}
DefaultPlatform::~DefaultPlatform() { DefaultPlatform::~DefaultPlatform() {
base::LockGuard<base::Mutex> guard(&lock_); base::LockGuard<base::Mutex> guard(&lock_);
...@@ -274,47 +282,9 @@ TracingController* DefaultPlatform::GetTracingController() { ...@@ -274,47 +282,9 @@ TracingController* DefaultPlatform::GetTracingController() {
return tracing_controller_.get(); return tracing_controller_.get();
} }
uint64_t DefaultPlatform::AddTraceEvent(
char phase, const uint8_t* category_enabled_flag, const char* name,
const char* scope, uint64_t id, uint64_t bind_id, int num_args,
const char** arg_names, const uint8_t* arg_types,
const uint64_t* arg_values,
std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
unsigned int flags) {
if (tracing_controller_) {
return tracing_controller_->AddTraceEvent(
phase, category_enabled_flag, name, scope, id, bind_id, num_args,
arg_names, arg_types, arg_values, arg_convertables, flags);
}
return 0;
}
void DefaultPlatform::UpdateTraceEventDuration(
const uint8_t* category_enabled_flag, const char* name, uint64_t handle) {
if (tracing_controller_) {
tracing_controller_->UpdateTraceEventDuration(category_enabled_flag, name,
handle);
}
}
const uint8_t* DefaultPlatform::GetCategoryGroupEnabled(const char* name) {
if (tracing_controller_) {
return tracing_controller_->GetCategoryGroupEnabled(name);
}
static uint8_t no = 0;
return &no;
}
const char* DefaultPlatform::GetCategoryGroupName(
const uint8_t* category_enabled_flag) {
static const char dummy[] = "dummy";
return dummy;
}
void DefaultPlatform::SetTracingController( void DefaultPlatform::SetTracingController(
TracingController* tracing_controller) { v8::TracingController* tracing_controller) {
DCHECK_NOT_NULL(tracing_controller);
tracing_controller_.reset(tracing_controller); tracing_controller_.reset(tracing_controller);
} }
...@@ -322,16 +292,6 @@ size_t DefaultPlatform::NumberOfAvailableBackgroundThreads() { ...@@ -322,16 +292,6 @@ size_t DefaultPlatform::NumberOfAvailableBackgroundThreads() {
return static_cast<size_t>(thread_pool_size_); return static_cast<size_t>(thread_pool_size_);
} }
void DefaultPlatform::AddTraceStateObserver(TraceStateObserver* observer) {
if (!tracing_controller_) return;
tracing_controller_->AddTraceStateObserver(observer);
}
void DefaultPlatform::RemoveTraceStateObserver(TraceStateObserver* observer) {
if (!tracing_controller_) return;
tracing_controller_->RemoveTraceStateObserver(observer);
}
Platform::StackTracePrinter DefaultPlatform::GetStackTracePrinter() { Platform::StackTracePrinter DefaultPlatform::GetStackTracePrinter() {
return PrintStackTrace; return PrintStackTrace;
} }
......
...@@ -30,7 +30,8 @@ class WorkerThread; ...@@ -30,7 +30,8 @@ class WorkerThread;
class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) { class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) {
public: public:
explicit DefaultPlatform( explicit DefaultPlatform(
IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled); IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled,
v8::TracingController* tracing_controller = nullptr);
virtual ~DefaultPlatform(); virtual ~DefaultPlatform();
void SetThreadPoolSize(int thread_pool_size); void SetThreadPoolSize(int thread_pool_size);
...@@ -44,6 +45,8 @@ class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) { ...@@ -44,6 +45,8 @@ class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) {
void RunIdleTasks(v8::Isolate* isolate, double idle_time_in_seconds); void RunIdleTasks(v8::Isolate* isolate, double idle_time_in_seconds);
void SetTracingController(v8::TracingController* tracing_controller);
// v8::Platform implementation. // v8::Platform implementation.
size_t NumberOfAvailableBackgroundThreads() override; size_t NumberOfAvailableBackgroundThreads() override;
void CallOnBackgroundThread(Task* task, void CallOnBackgroundThread(Task* task,
...@@ -54,24 +57,7 @@ class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) { ...@@ -54,24 +57,7 @@ class V8_PLATFORM_EXPORT DefaultPlatform : public NON_EXPORTED_BASE(Platform) {
void CallIdleOnForegroundThread(Isolate* isolate, IdleTask* task) override; void CallIdleOnForegroundThread(Isolate* isolate, IdleTask* task) override;
bool IdleTasksEnabled(Isolate* isolate) override; bool IdleTasksEnabled(Isolate* isolate) override;
double MonotonicallyIncreasingTime() override; double MonotonicallyIncreasingTime() override;
TracingController* GetTracingController() override; v8::TracingController* GetTracingController() override;
const uint8_t* GetCategoryGroupEnabled(const char* name) override;
const char* GetCategoryGroupName(
const uint8_t* category_enabled_flag) override;
using Platform::AddTraceEvent;
uint64_t AddTraceEvent(
char phase, const uint8_t* category_enabled_flag, const char* name,
const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args,
const char** arg_names, const uint8_t* arg_types,
const uint64_t* arg_values,
std::unique_ptr<v8::ConvertableToTraceFormat>* arg_convertables,
unsigned int flags) override;
void UpdateTraceEventDuration(const uint8_t* category_enabled_flag,
const char* name, uint64_t handle) override;
void SetTracingController(TracingController* tracing_controller);
void AddTraceStateObserver(TraceStateObserver* observer) override;
void RemoveTraceStateObserver(TraceStateObserver* observer) override;
StackTracePrinter GetStackTracePrinter() override; StackTracePrinter GetStackTracePrinter() override;
private: private:
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "include/libplatform/v8-tracing.h" #include "include/libplatform/v8-tracing.h"
#include "src/base/atomicops.h"
#include "src/base/platform/mutex.h" #include "src/base/platform/mutex.h"
namespace v8 { namespace v8 {
...@@ -40,7 +41,7 @@ v8::base::AtomicWord g_category_index = g_num_builtin_categories; ...@@ -40,7 +41,7 @@ v8::base::AtomicWord g_category_index = g_num_builtin_categories;
TracingController::TracingController() {} TracingController::TracingController() {}
TracingController::~TracingController() {} TracingController::~TracingController() { StopTracing(); }
void TracingController::Initialize(TraceBuffer* trace_buffer) { void TracingController::Initialize(TraceBuffer* trace_buffer) {
trace_buffer_.reset(trace_buffer); trace_buffer_.reset(trace_buffer);
...@@ -111,6 +112,10 @@ void TracingController::StartTracing(TraceConfig* trace_config) { ...@@ -111,6 +112,10 @@ void TracingController::StartTracing(TraceConfig* trace_config) {
} }
void TracingController::StopTracing() { void TracingController::StopTracing() {
if (mode_ == DISABLED) {
return;
}
DCHECK(trace_buffer_);
mode_ = DISABLED; mode_ = DISABLED;
UpdateCategoryGroupEnabledFlags(); UpdateCategoryGroupEnabledFlags();
std::unordered_set<v8::TracingController::TraceStateObserver*> observers_copy; std::unordered_set<v8::TracingController::TraceStateObserver*> observers_copy;
...@@ -140,7 +145,9 @@ void TracingController::UpdateCategoryGroupEnabledFlag(size_t category_index) { ...@@ -140,7 +145,9 @@ void TracingController::UpdateCategoryGroupEnabledFlag(size_t category_index) {
enabled_flag |= ENABLED_FOR_RECORDING; enabled_flag |= ENABLED_FOR_RECORDING;
} }
g_category_group_enabled[category_index] = enabled_flag; base::Relaxed_Store(reinterpret_cast<base::Atomic8*>(
g_category_group_enabled + category_index),
enabled_flag);
} }
void TracingController::UpdateCategoryGroupEnabledFlags() { void TracingController::UpdateCategoryGroupEnabledFlags() {
......
...@@ -25,12 +25,13 @@ TracingCpuProfilerImpl::TracingCpuProfilerImpl(Isolate* isolate) ...@@ -25,12 +25,13 @@ TracingCpuProfilerImpl::TracingCpuProfilerImpl(Isolate* isolate)
TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.cpu_profiler")); TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.cpu_profiler"));
TRACE_EVENT_WARMUP_CATEGORY( TRACE_EVENT_WARMUP_CATEGORY(
TRACE_DISABLED_BY_DEFAULT("v8.cpu_profiler.hires")); TRACE_DISABLED_BY_DEFAULT("v8.cpu_profiler.hires"));
V8::GetCurrentPlatform()->AddTraceStateObserver(this); V8::GetCurrentPlatform()->GetTracingController()->AddTraceStateObserver(this);
} }
TracingCpuProfilerImpl::~TracingCpuProfilerImpl() { TracingCpuProfilerImpl::~TracingCpuProfilerImpl() {
StopProfiling(); StopProfiling();
V8::GetCurrentPlatform()->RemoveTraceStateObserver(this); V8::GetCurrentPlatform()->GetTracingController()->RemoveTraceStateObserver(
this);
} }
void TracingCpuProfilerImpl::OnTraceEnabled() { void TracingCpuProfilerImpl::OnTraceEnabled() {
......
...@@ -17,13 +17,14 @@ namespace internal { ...@@ -17,13 +17,14 @@ namespace internal {
class CpuProfiler; class CpuProfiler;
class Isolate; class Isolate;
class TracingCpuProfilerImpl final : public TracingCpuProfiler, class TracingCpuProfilerImpl final
private v8::Platform::TraceStateObserver { : public TracingCpuProfiler,
private v8::TracingController::TraceStateObserver {
public: public:
explicit TracingCpuProfilerImpl(Isolate*); explicit TracingCpuProfilerImpl(Isolate*);
~TracingCpuProfilerImpl(); ~TracingCpuProfilerImpl();
// v8::Platform::TraceStateObserver // v8::TracingController::TraceStateObserver
void OnTraceEnabled() final; void OnTraceEnabled() final;
void OnTraceDisabled() final; void OnTraceDisabled() final;
......
...@@ -15,8 +15,8 @@ namespace v8 { ...@@ -15,8 +15,8 @@ namespace v8 {
namespace internal { namespace internal {
namespace tracing { namespace tracing {
v8::Platform* TraceEventHelper::GetCurrentPlatform() { v8::TracingController* TraceEventHelper::GetTracingController() {
return v8::internal::V8::GetCurrentPlatform(); return v8::internal::V8::GetCurrentPlatform()->GetTracingController();
} }
void CallStatsScopedTracer::AddEndTraceEvent() { void CallStatsScopedTracer::AddEndTraceEvent() {
......
...@@ -72,8 +72,8 @@ enum CategoryGroupEnabledFlags { ...@@ -72,8 +72,8 @@ enum CategoryGroupEnabledFlags {
// for best performance when tracing is disabled. // for best performance when tracing is disabled.
// const uint8_t* // const uint8_t*
// TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(const char* category_group) // TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(const char* category_group)
#define TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED \ #define TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED \
v8::internal::tracing::TraceEventHelper::GetCurrentPlatform() \ v8::internal::tracing::TraceEventHelper::GetTracingController() \
->GetCategoryGroupEnabled ->GetCategoryGroupEnabled
// Get the number of times traces have been recorded. This is used to implement // Get the number of times traces have been recorded. This is used to implement
...@@ -101,8 +101,8 @@ enum CategoryGroupEnabledFlags { ...@@ -101,8 +101,8 @@ enum CategoryGroupEnabledFlags {
// const uint8_t* category_group_enabled, // const uint8_t* category_group_enabled,
// const char* name, // const char* name,
// uint64_t id) // uint64_t id)
#define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \ #define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \
v8::internal::tracing::TraceEventHelper::GetCurrentPlatform() \ v8::internal::tracing::TraceEventHelper::GetTracingController() \
->UpdateTraceEventDuration ->UpdateTraceEventDuration
// Defines atomic operations used internally by the tracing system. // Defines atomic operations used internally by the tracing system.
...@@ -277,7 +277,7 @@ const uint64_t kNoId = 0; ...@@ -277,7 +277,7 @@ const uint64_t kNoId = 0;
class TraceEventHelper { class TraceEventHelper {
public: public:
static v8::Platform* GetCurrentPlatform(); static v8::TracingController* GetTracingController();
}; };
// TraceID encapsulates an ID that can either be an integer or pointer. Pointers // TraceID encapsulates an ID that can either be an integer or pointer. Pointers
...@@ -424,11 +424,11 @@ static V8_INLINE uint64_t AddTraceEventImpl( ...@@ -424,11 +424,11 @@ static V8_INLINE uint64_t AddTraceEventImpl(
static_cast<intptr_t>(arg_values[1]))); static_cast<intptr_t>(arg_values[1])));
} }
DCHECK(num_args <= 2); DCHECK(num_args <= 2);
v8::Platform* platform = v8::TracingController* controller =
v8::internal::tracing::TraceEventHelper::GetCurrentPlatform(); v8::internal::tracing::TraceEventHelper::GetTracingController();
return platform->AddTraceEvent(phase, category_group_enabled, name, scope, id, return controller->AddTraceEvent(phase, category_group_enabled, name, scope,
bind_id, num_args, arg_names, arg_types, id, bind_id, num_args, arg_names, arg_types,
arg_values, arg_convertables, flags); arg_values, arg_convertables, flags);
} }
// Define SetTraceValue for each allowed type. It stores the type and // Define SetTraceValue for each allowed type. It stores the type and
......
...@@ -15,8 +15,9 @@ TracingCategoryObserver* TracingCategoryObserver::instance_ = nullptr; ...@@ -15,8 +15,9 @@ TracingCategoryObserver* TracingCategoryObserver::instance_ = nullptr;
void TracingCategoryObserver::SetUp() { void TracingCategoryObserver::SetUp() {
TracingCategoryObserver::instance_ = new TracingCategoryObserver(); TracingCategoryObserver::instance_ = new TracingCategoryObserver();
v8::internal::V8::GetCurrentPlatform()->AddTraceStateObserver( v8::internal::V8::GetCurrentPlatform()
TracingCategoryObserver::instance_); ->GetTracingController()
->AddTraceStateObserver(TracingCategoryObserver::instance_);
TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats")); TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats"));
TRACE_EVENT_WARMUP_CATEGORY( TRACE_EVENT_WARMUP_CATEGORY(
TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling")); TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling"));
...@@ -25,8 +26,9 @@ void TracingCategoryObserver::SetUp() { ...@@ -25,8 +26,9 @@ void TracingCategoryObserver::SetUp() {
} }
void TracingCategoryObserver::TearDown() { void TracingCategoryObserver::TearDown() {
v8::internal::V8::GetCurrentPlatform()->RemoveTraceStateObserver( v8::internal::V8::GetCurrentPlatform()
TracingCategoryObserver::instance_); ->GetTracingController()
->RemoveTraceStateObserver(TracingCategoryObserver::instance_);
delete TracingCategoryObserver::instance_; delete TracingCategoryObserver::instance_;
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
namespace v8 { namespace v8 {
namespace tracing { namespace tracing {
class TracingCategoryObserver : public Platform::TraceStateObserver { class TracingCategoryObserver : public TracingController::TraceStateObserver {
public: public:
enum Mode { enum Mode {
ENABLED_BY_NATIVE = 1 << 0, ENABLED_BY_NATIVE = 1 << 0,
...@@ -21,7 +21,7 @@ class TracingCategoryObserver : public Platform::TraceStateObserver { ...@@ -21,7 +21,7 @@ class TracingCategoryObserver : public Platform::TraceStateObserver {
static void SetUp(); static void SetUp();
static void TearDown(); static void TearDown();
// v8::Platform::TraceStateObserver // v8::TracingController::TraceStateObserver
void OnTraceEnabled() final; void OnTraceEnabled() final;
void OnTraceDisabled() final; void OnTraceDisabled() final;
......
...@@ -62,6 +62,10 @@ class MockPlatform : public v8::Platform { ...@@ -62,6 +62,10 @@ class MockPlatform : public v8::Platform {
bool IdleTasksEnabled(v8::Isolate* isolate) override { return false; } bool IdleTasksEnabled(v8::Isolate* isolate) override { return false; }
v8::TracingController* GetTracingController() override {
return platform_->GetTracingController();
}
bool PendingTask() { return task_ != nullptr; } bool PendingTask() { return task_ != nullptr; }
void PerformTask() { void PerformTask() {
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include <limits> #include <limits>
#include "include/libplatform/v8-tracing.h" #include "include/libplatform/v8-tracing.h"
#include "src/libplatform/default-platform.h"
#include "src/tracing/trace-event.h" #include "src/tracing/trace-event.h"
#include "test/cctest/cctest.h" #include "test/cctest/cctest.h"
...@@ -135,7 +136,8 @@ TEST(TestJSONTraceWriter) { ...@@ -135,7 +136,8 @@ TEST(TestJSONTraceWriter) {
// Create a scope for the tracing controller to terminate the trace writer. // Create a scope for the tracing controller to terminate the trace writer.
{ {
TracingController tracing_controller; TracingController tracing_controller;
platform::SetTracingController(default_platform, &tracing_controller); static_cast<v8::platform::DefaultPlatform*>(default_platform)
->SetTracingController(&tracing_controller);
TraceWriter* writer = TraceWriter::CreateJSONTraceWriter(stream); TraceWriter* writer = TraceWriter::CreateJSONTraceWriter(stream);
TraceBuffer* ring_buffer = TraceBuffer* ring_buffer =
...@@ -178,7 +180,8 @@ TEST(TestTracingController) { ...@@ -178,7 +180,8 @@ TEST(TestTracingController) {
i::V8::SetPlatformForTesting(default_platform); i::V8::SetPlatformForTesting(default_platform);
TracingController tracing_controller; TracingController tracing_controller;
platform::SetTracingController(default_platform, &tracing_controller); static_cast<v8::platform::DefaultPlatform*>(default_platform)
->SetTracingController(&tracing_controller);
MockTraceWriter* writer = new MockTraceWriter(); MockTraceWriter* writer = new MockTraceWriter();
TraceBuffer* ring_buffer = TraceBuffer* ring_buffer =
...@@ -244,7 +247,8 @@ TEST(TestTracingControllerMultipleArgsAndCopy) { ...@@ -244,7 +247,8 @@ TEST(TestTracingControllerMultipleArgsAndCopy) {
// Create a scope for the tracing controller to terminate the trace writer. // Create a scope for the tracing controller to terminate the trace writer.
{ {
TracingController tracing_controller; TracingController tracing_controller;
platform::SetTracingController(default_platform, &tracing_controller); static_cast<v8::platform::DefaultPlatform*>(default_platform)
->SetTracingController(&tracing_controller);
TraceWriter* writer = TraceWriter::CreateJSONTraceWriter(stream); TraceWriter* writer = TraceWriter::CreateJSONTraceWriter(stream);
TraceBuffer* ring_buffer = TraceBuffer* ring_buffer =
...@@ -339,7 +343,7 @@ TEST(TestTracingControllerMultipleArgsAndCopy) { ...@@ -339,7 +343,7 @@ TEST(TestTracingControllerMultipleArgsAndCopy) {
namespace { namespace {
class TraceStateObserverImpl : public Platform::TraceStateObserver { class TraceStateObserverImpl : public TracingController::TraceStateObserver {
public: public:
void OnTraceEnabled() override { ++enabled_count; } void OnTraceEnabled() override { ++enabled_count; }
void OnTraceDisabled() override { ++disabled_count; } void OnTraceDisabled() override { ++disabled_count; }
...@@ -356,7 +360,8 @@ TEST(TracingObservers) { ...@@ -356,7 +360,8 @@ TEST(TracingObservers) {
i::V8::SetPlatformForTesting(default_platform); i::V8::SetPlatformForTesting(default_platform);
v8::platform::tracing::TracingController tracing_controller; v8::platform::tracing::TracingController tracing_controller;
v8::platform::SetTracingController(default_platform, &tracing_controller); static_cast<v8::platform::DefaultPlatform*>(default_platform)
->SetTracingController(&tracing_controller);
MockTraceWriter* writer = new MockTraceWriter(); MockTraceWriter* writer = new MockTraceWriter();
v8::platform::tracing::TraceBuffer* ring_buffer = v8::platform::tracing::TraceBuffer* ring_buffer =
v8::platform::tracing::TraceBuffer::CreateTraceBufferRingBuffer(1, v8::platform::tracing::TraceBuffer::CreateTraceBufferRingBuffer(1,
...@@ -367,7 +372,7 @@ TEST(TracingObservers) { ...@@ -367,7 +372,7 @@ TEST(TracingObservers) {
trace_config->AddIncludedCategory("v8"); trace_config->AddIncludedCategory("v8");
TraceStateObserverImpl observer; TraceStateObserverImpl observer;
default_platform->AddTraceStateObserver(&observer); tracing_controller.AddTraceStateObserver(&observer);
CHECK_EQ(0, observer.enabled_count); CHECK_EQ(0, observer.enabled_count);
CHECK_EQ(0, observer.disabled_count); CHECK_EQ(0, observer.disabled_count);
...@@ -378,12 +383,12 @@ TEST(TracingObservers) { ...@@ -378,12 +383,12 @@ TEST(TracingObservers) {
CHECK_EQ(0, observer.disabled_count); CHECK_EQ(0, observer.disabled_count);
TraceStateObserverImpl observer2; TraceStateObserverImpl observer2;
default_platform->AddTraceStateObserver(&observer2); tracing_controller.AddTraceStateObserver(&observer2);
CHECK_EQ(1, observer2.enabled_count); CHECK_EQ(1, observer2.enabled_count);
CHECK_EQ(0, observer2.disabled_count); CHECK_EQ(0, observer2.disabled_count);
default_platform->RemoveTraceStateObserver(&observer2); tracing_controller.RemoveTraceStateObserver(&observer2);
CHECK_EQ(1, observer2.enabled_count); CHECK_EQ(1, observer2.enabled_count);
CHECK_EQ(0, observer2.disabled_count); CHECK_EQ(0, observer2.disabled_count);
...@@ -395,7 +400,7 @@ TEST(TracingObservers) { ...@@ -395,7 +400,7 @@ TEST(TracingObservers) {
CHECK_EQ(1, observer2.enabled_count); CHECK_EQ(1, observer2.enabled_count);
CHECK_EQ(0, observer2.disabled_count); CHECK_EQ(0, observer2.disabled_count);
default_platform->RemoveTraceStateObserver(&observer); tracing_controller.RemoveTraceStateObserver(&observer);
CHECK_EQ(1, observer.enabled_count); CHECK_EQ(1, observer.enabled_count);
CHECK_EQ(1, observer.disabled_count); CHECK_EQ(1, observer.disabled_count);
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "src/api.h" #include "src/api.h"
#include "src/base/platform/platform.h" #include "src/base/platform/platform.h"
#include "src/deoptimizer.h" #include "src/deoptimizer.h"
#include "src/libplatform/default-platform.h"
#include "src/objects-inl.h" #include "src/objects-inl.h"
#include "src/profiler/cpu-profiler-inl.h" #include "src/profiler/cpu-profiler-inl.h"
#include "src/profiler/profiler-listener.h" #include "src/profiler/profiler-listener.h"
...@@ -2152,7 +2153,8 @@ TEST(TracingCpuProfiler) { ...@@ -2152,7 +2153,8 @@ TEST(TracingCpuProfiler) {
i::V8::SetPlatformForTesting(default_platform); i::V8::SetPlatformForTesting(default_platform);
v8::platform::tracing::TracingController tracing_controller; v8::platform::tracing::TracingController tracing_controller;
v8::platform::SetTracingController(default_platform, &tracing_controller); static_cast<v8::platform::DefaultPlatform*>(default_platform)
->SetTracingController(&tracing_controller);
CpuProfileEventChecker* event_checker = new CpuProfileEventChecker(); CpuProfileEventChecker* event_checker = new CpuProfileEventChecker();
TraceBuffer* ring_buffer = TraceBuffer* ring_buffer =
......
...@@ -40,38 +40,16 @@ struct MockTraceObject { ...@@ -40,38 +40,16 @@ struct MockTraceObject {
typedef v8::internal::List<MockTraceObject*> MockTraceObjectList; typedef v8::internal::List<MockTraceObject*> MockTraceObjectList;
class MockTracingPlatform : public v8::Platform { class MockTracingController : public v8::TracingController {
public: public:
explicit MockTracingPlatform(v8::Platform* platform) {} MockTracingController() = default;
virtual ~MockTracingPlatform() { ~MockTracingController() {
for (int i = 0; i < trace_object_list_.length(); ++i) { for (int i = 0; i < trace_object_list_.length(); ++i) {
delete trace_object_list_[i]; delete trace_object_list_[i];
} }
trace_object_list_.Clear(); trace_object_list_.Clear();
} }
void CallOnBackgroundThread(Task* task,
ExpectedRuntime expected_runtime) override {}
void CallOnForegroundThread(Isolate* isolate, Task* task) override {}
void CallDelayedOnForegroundThread(Isolate* isolate, Task* task,
double delay_in_seconds) override {}
double MonotonicallyIncreasingTime() override { return 0.0; }
void CallIdleOnForegroundThread(Isolate* isolate, IdleTask* task) override {}
bool IdleTasksEnabled(Isolate* isolate) override { return false; }
bool PendingIdleTask() { return false; }
void PerformIdleTask(double idle_time_in_seconds) {}
bool PendingDelayedTask() { return false; }
void PerformDelayedTask() {}
using Platform::AddTraceEvent;
uint64_t AddTraceEvent( uint64_t AddTraceEvent(
char phase, const uint8_t* category_enabled_flag, const char* name, char phase, const uint8_t* category_enabled_flag, const char* name,
const char* scope, uint64_t id, uint64_t bind_id, int num_args, const char* scope, uint64_t id, uint64_t bind_id, int num_args,
...@@ -98,16 +76,52 @@ class MockTracingPlatform : public v8::Platform { ...@@ -98,16 +76,52 @@ class MockTracingPlatform : public v8::Platform {
} }
} }
const char* GetCategoryGroupName(
const uint8_t* category_enabled_flag) override {
static const char dummy[] = "dummy";
return dummy;
}
MockTraceObjectList* GetMockTraceObjects() { return &trace_object_list_; } MockTraceObjectList* GetMockTraceObjects() { return &trace_object_list_; }
private: private:
MockTraceObjectList trace_object_list_; MockTraceObjectList trace_object_list_;
DISALLOW_COPY_AND_ASSIGN(MockTracingController);
};
class MockTracingPlatform : public v8::Platform {
public:
explicit MockTracingPlatform(v8::Platform* platform) {}
virtual ~MockTracingPlatform() {}
void CallOnBackgroundThread(Task* task,
ExpectedRuntime expected_runtime) override {}
void CallOnForegroundThread(Isolate* isolate, Task* task) override {}
void CallDelayedOnForegroundThread(Isolate* isolate, Task* task,
double delay_in_seconds) override {}
double MonotonicallyIncreasingTime() override { return 0.0; }
void CallIdleOnForegroundThread(Isolate* isolate, IdleTask* task) override {}
bool IdleTasksEnabled(Isolate* isolate) override { return false; }
v8::TracingController* GetTracingController() override {
return &tracing_controller_;
}
bool PendingIdleTask() { return false; }
void PerformIdleTask(double idle_time_in_seconds) {}
bool PendingDelayedTask() { return false; }
void PerformDelayedTask() {}
MockTraceObjectList* GetMockTraceObjects() {
return tracing_controller_.GetMockTraceObjects();
}
private:
MockTracingController tracing_controller_;
DISALLOW_COPY_AND_ASSIGN(MockTracingPlatform);
}; };
......
...@@ -103,7 +103,12 @@ namespace { ...@@ -103,7 +103,12 @@ namespace {
class MockPlatform : public v8::Platform { class MockPlatform : public v8::Platform {
public: public:
MockPlatform() : time_(0.0), time_step_(0.0), idle_task_(nullptr), sem_(0) {} explicit MockPlatform(v8::TracingController* tracing_controller)
: time_(0.0),
time_step_(0.0),
idle_task_(nullptr),
sem_(0),
tracing_controller_(tracing_controller) {}
~MockPlatform() override { ~MockPlatform() override {
base::LockGuard<base::Mutex> lock(&mutex_); base::LockGuard<base::Mutex> lock(&mutex_);
EXPECT_TRUE(foreground_tasks_.empty()); EXPECT_TRUE(foreground_tasks_.empty());
...@@ -143,6 +148,10 @@ class MockPlatform : public v8::Platform { ...@@ -143,6 +148,10 @@ class MockPlatform : public v8::Platform {
return time_; return time_;
} }
v8::TracingController* GetTracingController() override {
return tracing_controller_;
}
void RunIdleTask(double deadline_in_seconds, double time_step) { void RunIdleTask(double deadline_in_seconds, double time_step) {
time_step_ = time_step; time_step_ = time_step;
IdleTask* task; IdleTask* task;
...@@ -269,6 +278,8 @@ class MockPlatform : public v8::Platform { ...@@ -269,6 +278,8 @@ class MockPlatform : public v8::Platform {
base::Semaphore sem_; base::Semaphore sem_;
v8::TracingController* tracing_controller_;
DISALLOW_COPY_AND_ASSIGN(MockPlatform); DISALLOW_COPY_AND_ASSIGN(MockPlatform);
}; };
...@@ -277,12 +288,12 @@ const char test_script[] = "(x) { x*x; }"; ...@@ -277,12 +288,12 @@ const char test_script[] = "(x) { x*x; }";
} // namespace } // namespace
TEST_F(CompilerDispatcherTest, Construct) { TEST_F(CompilerDispatcherTest, Construct) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
} }
TEST_F(CompilerDispatcherTest, IsEnqueued) { TEST_F(CompilerDispatcherTest, IsEnqueued) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -300,7 +311,7 @@ TEST_F(CompilerDispatcherTest, IsEnqueued) { ...@@ -300,7 +311,7 @@ TEST_F(CompilerDispatcherTest, IsEnqueued) {
} }
TEST_F(CompilerDispatcherTest, FinishNow) { TEST_F(CompilerDispatcherTest, FinishNow) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -319,7 +330,7 @@ TEST_F(CompilerDispatcherTest, FinishNow) { ...@@ -319,7 +330,7 @@ TEST_F(CompilerDispatcherTest, FinishNow) {
} }
TEST_F(CompilerDispatcherTest, FinishAllNow) { TEST_F(CompilerDispatcherTest, FinishAllNow) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
constexpr int num_funcs = 2; constexpr int num_funcs = 2;
...@@ -349,7 +360,7 @@ TEST_F(CompilerDispatcherTest, FinishAllNow) { ...@@ -349,7 +360,7 @@ TEST_F(CompilerDispatcherTest, FinishAllNow) {
} }
TEST_F(CompilerDispatcherTest, IdleTask) { TEST_F(CompilerDispatcherTest, IdleTask) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -370,7 +381,7 @@ TEST_F(CompilerDispatcherTest, IdleTask) { ...@@ -370,7 +381,7 @@ TEST_F(CompilerDispatcherTest, IdleTask) {
} }
TEST_F(CompilerDispatcherTest, IdleTaskSmallIdleTime) { TEST_F(CompilerDispatcherTest, IdleTaskSmallIdleTime) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -409,7 +420,7 @@ TEST_F(CompilerDispatcherTest, IdleTaskSmallIdleTime) { ...@@ -409,7 +420,7 @@ TEST_F(CompilerDispatcherTest, IdleTaskSmallIdleTime) {
} }
TEST_F(CompilerDispatcherTest, IdleTaskException) { TEST_F(CompilerDispatcherTest, IdleTaskException) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, 50); CompilerDispatcher dispatcher(i_isolate(), &platform, 50);
std::string func_name("f" STR(__LINE__)); std::string func_name("f" STR(__LINE__));
...@@ -436,7 +447,7 @@ TEST_F(CompilerDispatcherTest, IdleTaskException) { ...@@ -436,7 +447,7 @@ TEST_F(CompilerDispatcherTest, IdleTaskException) {
} }
TEST_F(CompilerDispatcherTest, CompileOnBackgroundThread) { TEST_F(CompilerDispatcherTest, CompileOnBackgroundThread) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -480,7 +491,7 @@ TEST_F(CompilerDispatcherTest, CompileOnBackgroundThread) { ...@@ -480,7 +491,7 @@ TEST_F(CompilerDispatcherTest, CompileOnBackgroundThread) {
} }
TEST_F(CompilerDispatcherTest, FinishNowWithBackgroundTask) { TEST_F(CompilerDispatcherTest, FinishNowWithBackgroundTask) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -520,7 +531,7 @@ TEST_F(CompilerDispatcherTest, FinishNowWithBackgroundTask) { ...@@ -520,7 +531,7 @@ TEST_F(CompilerDispatcherTest, FinishNowWithBackgroundTask) {
} }
TEST_F(CompilerDispatcherTest, IdleTaskMultipleJobs) { TEST_F(CompilerDispatcherTest, IdleTaskMultipleJobs) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script1[] = TEST_SCRIPT(); const char script1[] = TEST_SCRIPT();
...@@ -549,7 +560,7 @@ TEST_F(CompilerDispatcherTest, IdleTaskMultipleJobs) { ...@@ -549,7 +560,7 @@ TEST_F(CompilerDispatcherTest, IdleTaskMultipleJobs) {
} }
TEST_F(CompilerDispatcherTest, FinishNowException) { TEST_F(CompilerDispatcherTest, FinishNowException) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, 50); CompilerDispatcher dispatcher(i_isolate(), &platform, 50);
std::string func_name("f" STR(__LINE__)); std::string func_name("f" STR(__LINE__));
...@@ -577,7 +588,7 @@ TEST_F(CompilerDispatcherTest, FinishNowException) { ...@@ -577,7 +588,7 @@ TEST_F(CompilerDispatcherTest, FinishNowException) {
} }
TEST_F(CompilerDispatcherTest, AsyncAbortAllPendingBackgroundTask) { TEST_F(CompilerDispatcherTest, AsyncAbortAllPendingBackgroundTask) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -620,7 +631,7 @@ TEST_F(CompilerDispatcherTest, AsyncAbortAllPendingBackgroundTask) { ...@@ -620,7 +631,7 @@ TEST_F(CompilerDispatcherTest, AsyncAbortAllPendingBackgroundTask) {
} }
TEST_F(CompilerDispatcherTest, AsyncAbortAllRunningBackgroundTask) { TEST_F(CompilerDispatcherTest, AsyncAbortAllRunningBackgroundTask) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script1[] = TEST_SCRIPT(); const char script1[] = TEST_SCRIPT();
...@@ -702,7 +713,7 @@ TEST_F(CompilerDispatcherTest, AsyncAbortAllRunningBackgroundTask) { ...@@ -702,7 +713,7 @@ TEST_F(CompilerDispatcherTest, AsyncAbortAllRunningBackgroundTask) {
} }
TEST_F(CompilerDispatcherTest, FinishNowDuringAbortAll) { TEST_F(CompilerDispatcherTest, FinishNowDuringAbortAll) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -781,7 +792,7 @@ TEST_F(CompilerDispatcherTest, FinishNowDuringAbortAll) { ...@@ -781,7 +792,7 @@ TEST_F(CompilerDispatcherTest, FinishNowDuringAbortAll) {
} }
TEST_F(CompilerDispatcherTest, MemoryPressure) { TEST_F(CompilerDispatcherTest, MemoryPressure) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -829,7 +840,7 @@ class PressureNotificationTask : public CancelableTask { ...@@ -829,7 +840,7 @@ class PressureNotificationTask : public CancelableTask {
} // namespace } // namespace
TEST_F(CompilerDispatcherTest, MemoryPressureFromBackground) { TEST_F(CompilerDispatcherTest, MemoryPressureFromBackground) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -862,7 +873,7 @@ TEST_F(CompilerDispatcherTest, MemoryPressureFromBackground) { ...@@ -862,7 +873,7 @@ TEST_F(CompilerDispatcherTest, MemoryPressureFromBackground) {
} }
TEST_F(CompilerDispatcherTest, EnqueueJob) { TEST_F(CompilerDispatcherTest, EnqueueJob) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
Handle<JSFunction> f = Handle<JSFunction> f =
...@@ -881,7 +892,7 @@ TEST_F(CompilerDispatcherTest, EnqueueJob) { ...@@ -881,7 +892,7 @@ TEST_F(CompilerDispatcherTest, EnqueueJob) {
} }
TEST_F(CompilerDispatcherTest, EnqueueWithoutSFI) { TEST_F(CompilerDispatcherTest, EnqueueWithoutSFI) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
ASSERT_TRUE(dispatcher.jobs_.empty()); ASSERT_TRUE(dispatcher.jobs_.empty());
ASSERT_TRUE(dispatcher.shared_to_job_id_.empty()); ASSERT_TRUE(dispatcher.shared_to_job_id_.empty());
...@@ -906,7 +917,7 @@ TEST_F(CompilerDispatcherTest, EnqueueWithoutSFI) { ...@@ -906,7 +917,7 @@ TEST_F(CompilerDispatcherTest, EnqueueWithoutSFI) {
} }
TEST_F(CompilerDispatcherTest, EnqueueAndStep) { TEST_F(CompilerDispatcherTest, EnqueueAndStep) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script[] = TEST_SCRIPT(); const char script[] = TEST_SCRIPT();
...@@ -928,7 +939,7 @@ TEST_F(CompilerDispatcherTest, EnqueueAndStep) { ...@@ -928,7 +939,7 @@ TEST_F(CompilerDispatcherTest, EnqueueAndStep) {
} }
TEST_F(CompilerDispatcherTest, EnqueueParsed) { TEST_F(CompilerDispatcherTest, EnqueueParsed) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char source[] = TEST_SCRIPT(); const char source[] = TEST_SCRIPT();
...@@ -955,7 +966,7 @@ TEST_F(CompilerDispatcherTest, EnqueueParsed) { ...@@ -955,7 +966,7 @@ TEST_F(CompilerDispatcherTest, EnqueueParsed) {
} }
TEST_F(CompilerDispatcherTest, EnqueueAndStepParsed) { TEST_F(CompilerDispatcherTest, EnqueueAndStepParsed) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char source[] = TEST_SCRIPT(); const char source[] = TEST_SCRIPT();
...@@ -984,7 +995,7 @@ TEST_F(CompilerDispatcherTest, EnqueueAndStepParsed) { ...@@ -984,7 +995,7 @@ TEST_F(CompilerDispatcherTest, EnqueueAndStepParsed) {
} }
TEST_F(CompilerDispatcherTest, CompileParsedOutOfScope) { TEST_F(CompilerDispatcherTest, CompileParsedOutOfScope) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char source[] = TEST_SCRIPT(); const char source[] = TEST_SCRIPT();
...@@ -1046,7 +1057,7 @@ class MockNativeFunctionExtension : public Extension { ...@@ -1046,7 +1057,7 @@ class MockNativeFunctionExtension : public Extension {
} // namespace } // namespace
TEST_F(CompilerDispatcherTestWithoutContext, CompileExtensionWithoutContext) { TEST_F(CompilerDispatcherTestWithoutContext, CompileExtensionWithoutContext) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
Local<v8::Context> context = v8::Context::New(isolate()); Local<v8::Context> context = v8::Context::New(isolate());
...@@ -1145,7 +1156,7 @@ TEST_F(CompilerDispatcherTest, CompileLazy2FinishesDispatcherJob) { ...@@ -1145,7 +1156,7 @@ TEST_F(CompilerDispatcherTest, CompileLazy2FinishesDispatcherJob) {
} }
TEST_F(CompilerDispatcherTest, EnqueueAndStepTwice) { TEST_F(CompilerDispatcherTest, EnqueueAndStepTwice) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char source[] = TEST_SCRIPT(); const char source[] = TEST_SCRIPT();
...@@ -1186,7 +1197,7 @@ TEST_F(CompilerDispatcherTest, EnqueueAndStepTwice) { ...@@ -1186,7 +1197,7 @@ TEST_F(CompilerDispatcherTest, EnqueueAndStepTwice) {
} }
TEST_F(CompilerDispatcherTest, CompileMultipleOnBackgroundThread) { TEST_F(CompilerDispatcherTest, CompileMultipleOnBackgroundThread) {
MockPlatform platform; MockPlatform platform(V8::GetCurrentPlatform()->GetTracingController());
CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size); CompilerDispatcher dispatcher(i_isolate(), &platform, FLAG_stack_size);
const char script1[] = TEST_SCRIPT(); const char script1[] = TEST_SCRIPT();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment