# The cpu profiler tests are notoriously flaky.
# BUG(2999). (test/cpu-profiler/CollectCpuProfile)
# BUG(3287). (test-cpu-profiler/SampleWhenFrameIsNotSetup)
- 'test-cpu-profiler/*': [PASS, FLAKY],
- 'test-cpu-profiler/*': [SKIP],
+ 'test-cpu-profiler/CollectCpuProfile': [SKIP],
+ 'test-cpu-profiler/CollectCpuProfileSamples': [SKIP],
+ 'test-cpu-profiler/FunctionApplySample': [SKIP],
+ 'test-cpu-profiler/FunctionCallSample': [SKIP],
+ 'test-cpu-profiler/SampleWhenFrameIsNotSetup': [SKIP],
# BUG(3525). Test crashes flakily.
'test-debug/RecursiveBreakpoints': [PASS, FLAKY],
##############################################################################
['arch == arm64', {
+ 'test-cpu-profiler/CollectDeoptEvents': [PASS, FAIL],
+
'test-api/Bug618': [PASS],
# BUG(v8:3385).
'test-serialize/DeserializeFromSecondSerialization': [PASS, FAIL],
'test-serialize/DeserializeFromSecondSerializationAndRunScript2': [PASS, FAIL],
- # BUG(v8:2999).
- 'test-cpu-profiler/CollectCpuProfile': [PASS, FAIL],
-
# BUG(v8:3154).
'test-heap/ReleaseOverReservedPages': [PASS, FAIL],
##############################################################################
['system == windows', {
- # BUG(2999).
- 'test-cpu-profiler/CollectCpuProfile': [PASS, FAIL],
-
# BUG(3005).
'test-alloc/CodeRange': [PASS, FAIL],
# BUG(3331). Fails on windows.
'test-heap/NoWeakHashTableLeakWithIncrementalMarking': [SKIP],
- # BUG(v8:3433). Crashes on windows.
- 'test-cpu-profiler/FunctionApplySample': [SKIP],
-
}], # 'system == windows'
##############################################################################
##############################################################################
['arch == arm', {
+ 'test-cpu-profiler/CollectDeoptEvents': [PASS, FAIL],
+
# BUG(355): Test crashes on ARM.
'test-log/ProfLazyMode': [SKIP],
static bool ContainsString(v8::Handle<v8::String> string,
const Vector<v8::Handle<v8::String> >& vector) {
for (int i = 0; i < vector.length(); i++) {
- if (string->Equals(vector[i]))
- return true;
+ if (string->Equals(vector[i])) return true;
}
return false;
}
int count = node->GetChildrenCount();
for (int i = 0; i < count; i++) {
v8::Handle<v8::String> name = node->GetChild(i)->GetFunctionName();
- CHECK(ContainsString(name, names));
+ if (!ContainsString(name, names)) {
+ char buffer[100];
+ i::SNPrintF(Vector<char>(buffer, arraysize(buffer)),
+ "Unexpected child '%s' found in '%s'",
+ *v8::String::Utf8Value(name),
+ *v8::String::Utf8Value(node->GetFunctionName()));
+ FATAL(buffer);
+ }
// Check that there are no duplicates.
for (int j = 0; j < count; j++) {
if (j == i) continue;
- CHECK(!name->Equals(node->GetChild(j)->GetFunctionName()));
+ if (name->Equals(node->GetChild(j)->GetFunctionName())) {
+ char buffer[100];
+ i::SNPrintF(Vector<char>(buffer, arraysize(buffer)),
+ "Second child with the same name '%s' found in '%s'",
+ *v8::String::Utf8Value(name),
+ *v8::String::Utf8Value(node->GetFunctionName()));
+ FATAL(buffer);
+ }
}
}
}
CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate->heap());
profiles->StartProfiling("", false);
ProfileGenerator generator(profiles);
- ProfilerEventsProcessor* processor = new ProfilerEventsProcessor(
- &generator, NULL, v8::base::TimeDelta::FromMicroseconds(100));
+ SmartPointer<ProfilerEventsProcessor> processor(new ProfilerEventsProcessor(
+ &generator, NULL, v8::base::TimeDelta::FromMicroseconds(100)));
processor->Start();
- CpuProfiler profiler(isolate, profiles, &generator, processor);
+ CpuProfiler profiler(isolate, profiles, &generator, processor.get());
// Enqueue code creation events.
i::Handle<i::String> str = factory->NewStringFromAsciiChecked(func_name);
*str, line, column);
// Enqueue a tick event to enable code events processing.
- EnqueueTickSampleEvent(processor, code_address);
+ EnqueueTickSampleEvent(processor.get(), code_address);
processor->StopSynchronously();