| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 // | 4 // |
| 5 // Tests the sampling API in include/v8.h | 5 // Tests the sampling API in include/v8.h |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <string> | 8 #include <string> |
| 9 #include "include/v8.h" | 9 #include "include/v8.h" |
| 10 #include "src/simulator.h" | 10 #include "src/simulator.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 public: | 84 public: |
| 85 struct CodeEventEntry { | 85 struct CodeEventEntry { |
| 86 std::string name; | 86 std::string name; |
| 87 const void* code_start; | 87 const void* code_start; |
| 88 size_t code_len; | 88 size_t code_len; |
| 89 }; | 89 }; |
| 90 typedef std::map<const void*, CodeEventEntry> CodeEntries; | 90 typedef std::map<const void*, CodeEventEntry> CodeEntries; |
| 91 | 91 |
| 92 explicit SamplingTestHelper(const std::string& test_function) | 92 explicit SamplingTestHelper(const std::string& test_function) |
| 93 : sample_is_taken_(false), isolate_(CcTest::isolate()) { | 93 : sample_is_taken_(false), isolate_(CcTest::isolate()) { |
| 94 DCHECK_EQ(NULL, instance_); | 94 DCHECK(!instance_); |
| 95 instance_ = this; | 95 instance_ = this; |
| 96 v8::HandleScope scope(isolate_); | 96 v8::HandleScope scope(isolate_); |
| 97 v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate_); | 97 v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(isolate_); |
| 98 global->Set(v8::String::NewFromUtf8(isolate_, "CollectSample"), | 98 global->Set(v8::String::NewFromUtf8(isolate_, "CollectSample"), |
| 99 v8::FunctionTemplate::New(isolate_, CollectSample)); | 99 v8::FunctionTemplate::New(isolate_, CollectSample)); |
| 100 LocalContext env(isolate_, NULL, global); | 100 LocalContext env(isolate_, NULL, global); |
| 101 isolate_->SetJitCodeEventHandler(v8::kJitCodeEventDefault, | 101 isolate_->SetJitCodeEventHandler(v8::kJitCodeEventDefault, |
| 102 JitCodeEventHandler); | 102 JitCodeEventHandler); |
| 103 v8::Script::Compile( | 103 v8::Script::Compile( |
| 104 v8::String::NewFromUtf8(isolate_, test_function.c_str()))->Run(); | 104 v8::String::NewFromUtf8(isolate_, test_function.c_str()))->Run(); |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 " return test_sampler_api_inner() + arguments.callee.toString();" | 235 " return test_sampler_api_inner() + arguments.callee.toString();" |
| 236 "}" | 236 "}" |
| 237 "test_sampler_api_outer();"; | 237 "test_sampler_api_outer();"; |
| 238 | 238 |
| 239 SamplingTestHelper helper(test_script); | 239 SamplingTestHelper helper(test_script); |
| 240 Sample& sample = helper.sample(); | 240 Sample& sample = helper.sample(); |
| 241 CHECK_EQ(3, sample.size()); | 241 CHECK_EQ(3, sample.size()); |
| 242 | 242 |
| 243 const SamplingTestHelper::CodeEventEntry* entry; | 243 const SamplingTestHelper::CodeEventEntry* entry; |
| 244 entry = helper.FindEventEntry(sample.begin()[0]); | 244 entry = helper.FindEventEntry(sample.begin()[0]); |
| 245 CHECK_NE(NULL, entry); | 245 CHECK(entry); |
| 246 CHECK(std::string::npos != entry->name.find("test_sampler_api_inner")); | 246 CHECK(std::string::npos != entry->name.find("test_sampler_api_inner")); |
| 247 | 247 |
| 248 entry = helper.FindEventEntry(sample.begin()[1]); | 248 entry = helper.FindEventEntry(sample.begin()[1]); |
| 249 CHECK_NE(NULL, entry); | 249 CHECK(entry); |
| 250 CHECK(std::string::npos != entry->name.find("test_sampler_api_outer")); | 250 CHECK(std::string::npos != entry->name.find("test_sampler_api_outer")); |
| 251 } | 251 } |
| OLD | NEW |