OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 #include <stdlib.h> | 4 #include <stdlib.h> |
5 #include <string.h> | 5 #include <string.h> |
6 | 6 |
7 #include "src/v8.h" | 7 #include "src/v8.h" |
8 | 8 |
9 #include "src/list.h" | 9 #include "src/list.h" |
10 #include "src/list-inl.h" | 10 #include "src/list-inl.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 | 65 |
66 bool PendingIdleTask() { return false; } | 66 bool PendingIdleTask() { return false; } |
67 | 67 |
68 void PerformIdleTask(double idle_time_in_seconds) {} | 68 void PerformIdleTask(double idle_time_in_seconds) {} |
69 | 69 |
70 bool PendingDelayedTask() { return false; } | 70 bool PendingDelayedTask() { return false; } |
71 | 71 |
72 void PerformDelayedTask() {} | 72 void PerformDelayedTask() {} |
73 | 73 |
74 uint64_t AddTraceEvent(char phase, const uint8_t* category_enabled_flag, | 74 uint64_t AddTraceEvent(char phase, const uint8_t* category_enabled_flag, |
75 const char* name, uint64_t id, uint64_t bind_id, | 75 const char* name, const char* scope, uint64_t id, |
76 int num_args, const char** arg_names, | 76 uint64_t bind_id, int num_args, const char** arg_names, |
77 const uint8_t* arg_types, const uint64_t* arg_values, | 77 const uint8_t* arg_types, const uint64_t* arg_values, |
78 unsigned int flags) override { | 78 unsigned int flags) override { |
79 MockTraceObject* to = new MockTraceObject(phase, std::string(name), id, | 79 MockTraceObject* to = new MockTraceObject(phase, std::string(name), id, |
80 bind_id, num_args, flags); | 80 bind_id, num_args, flags); |
81 trace_object_list_.Add(to); | 81 trace_object_list_.Add(to); |
82 return 0; | 82 return 0; |
83 } | 83 } |
84 | 84 |
| 85 // TODO(fmeawad): Remove once all embedders implement the scope version. |
| 86 uint64_t AddTraceEvent(char phase, const uint8_t* category_enabled_flag, |
| 87 const char* name, uint64_t id, uint64_t bind_id, |
| 88 int num_args, const char** arg_names, |
| 89 const uint8_t* arg_types, const uint64_t* arg_values, |
| 90 unsigned int flags) override { |
| 91 return 0; |
| 92 } |
| 93 |
85 void UpdateTraceEventDuration(const uint8_t* category_enabled_flag, | 94 void UpdateTraceEventDuration(const uint8_t* category_enabled_flag, |
86 const char* name, uint64_t handle) override {} | 95 const char* name, uint64_t handle) override {} |
87 | 96 |
88 const uint8_t* GetCategoryGroupEnabled(const char* name) override { | 97 const uint8_t* GetCategoryGroupEnabled(const char* name) override { |
89 if (strcmp(name, "v8-cat")) { | 98 if (strcmp(name, "v8-cat")) { |
90 static uint8_t no = 0; | 99 static uint8_t no = 0; |
91 return &no; | 100 return &no; |
92 } else { | 101 } else { |
93 static uint8_t yes = 0x7; | 102 static uint8_t yes = 0x7; |
94 return &yes; | 103 return &yes; |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 TRACE_EVENT_ASYNC_END0("v8-cat", "a1", event_id); | 258 TRACE_EVENT_ASYNC_END0("v8-cat", "a1", event_id); |
250 | 259 |
251 CHECK_EQ(2, GET_TRACE_OBJECTS_LIST->length()); | 260 CHECK_EQ(2, GET_TRACE_OBJECTS_LIST->length()); |
252 CHECK_EQ(TRACE_EVENT_PHASE_ASYNC_BEGIN, GET_TRACE_OBJECT(0)->phase); | 261 CHECK_EQ(TRACE_EVENT_PHASE_ASYNC_BEGIN, GET_TRACE_OBJECT(0)->phase); |
253 CHECK_EQ(event_id, GET_TRACE_OBJECT(0)->id); | 262 CHECK_EQ(event_id, GET_TRACE_OBJECT(0)->id); |
254 CHECK_EQ(TRACE_EVENT_PHASE_ASYNC_END, GET_TRACE_OBJECT(1)->phase); | 263 CHECK_EQ(TRACE_EVENT_PHASE_ASYNC_END, GET_TRACE_OBJECT(1)->phase); |
255 CHECK_EQ(event_id, GET_TRACE_OBJECT(1)->id); | 264 CHECK_EQ(event_id, GET_TRACE_OBJECT(1)->id); |
256 | 265 |
257 i::V8::SetPlatformForTesting(old_platform); | 266 i::V8::SetPlatformForTesting(old_platform); |
258 } | 267 } |
| 268 |
| 269 TEST(TestEventInContext) { |
| 270 v8::Platform* old_platform = i::V8::GetCurrentPlatform(); |
| 271 MockTracingPlatform platform(old_platform); |
| 272 i::V8::SetPlatformForTesting(&platform); |
| 273 |
| 274 static uint64_t isolate_id = 0x20151021; |
| 275 { |
| 276 TRACE_EVENT_SCOPED_CONTEXT("v8-cat", "Isolate", isolate_id); |
| 277 TRACE_EVENT0("v8-cat", "e"); |
| 278 } |
| 279 |
| 280 CHECK_EQ(3, GET_TRACE_OBJECTS_LIST->length()); |
| 281 CHECK_EQ(TRACE_EVENT_PHASE_ENTER_CONTEXT, GET_TRACE_OBJECT(0)->phase); |
| 282 CHECK_EQ("Isolate", GET_TRACE_OBJECT(0)->name); |
| 283 CHECK_EQ(isolate_id, GET_TRACE_OBJECT(0)->id); |
| 284 CHECK_EQ(TRACE_EVENT_PHASE_COMPLETE, GET_TRACE_OBJECT(1)->phase); |
| 285 CHECK_EQ("e", GET_TRACE_OBJECT(1)->name); |
| 286 CHECK_EQ(TRACE_EVENT_PHASE_LEAVE_CONTEXT, GET_TRACE_OBJECT(2)->phase); |
| 287 CHECK_EQ("Isolate", GET_TRACE_OBJECT(2)->name); |
| 288 CHECK_EQ(isolate_id, GET_TRACE_OBJECT(2)->id); |
| 289 |
| 290 i::V8::SetPlatformForTesting(old_platform); |
| 291 } |
OLD | NEW |