Reviewers: Michail Naganov,
Description:
Fix RecordStackTraceAtStartProfiling test.
Please review this at http://codereview.chromium.org/5598008/
Affected files:
M test/cctest/cctest.status
M test/cctest/test-profile-generator.cc
Index: test/cctest/cctest.status
diff --git a/test/cctest/cctest.status b/test/cctest/cctest.status
index
4f1bcdc8adf854949b8010a68cc5b9c070f9794e..d7f02b95d83be8fd5ce66fa115ca7bda6e80276c
100644
--- a/test/cctest/cctest.status
+++ b/test/cctest/cctest.status
@@ -42,9 +42,6 @@ test-api/ApplyInterruption: PASS || TIMEOUT
# when snapshot is on, so I am marking it PASS || FAIL
test-heap-profiler/HeapSnapshotsDiff: PASS || FAIL
-# BUG(3260336): Flaky test. May be timing related.
-test-profile-generator/RecordStackTraceAtStartProfiling: PASS || FAIL
-
# These tests always fail. They are here to test test.py. If
# they don't fail then test.py has failed.
test-serialize/TestThatAlwaysFails: FAIL
Index: test/cctest/test-profile-generator.cc
diff --git a/test/cctest/test-profile-generator.cc
b/test/cctest/test-profile-generator.cc
index
a0733ef685b8c0d7fe09fe67c69c073197af73a5..f849d404aeb6a6abc0fd0795b3c1b7f65d6dd594
100644
--- a/test/cctest/test-profile-generator.cc
+++ b/test/cctest/test-profile-generator.cc
@@ -782,12 +782,16 @@ TEST(RecordStackTraceAtStartProfiling) {
CpuProfiler::GetProfile(NULL, 0);
const ProfileTree* topDown = profile->top_down();
const ProfileNode* current = topDown->root();
+ const_cast<ProfileNode*>(current)->Print(0);
// The tree should look like this:
// (root)
// (anonymous function)
// a
// b
// c
+ // There can also be:
+ // startProfiling
+ // if the sampler managed to get a tick.
current = PickChild(current, "(anonymous function)");
CHECK_NE(NULL, const_cast<ProfileNode*>(current));
current = PickChild(current, "a");
@@ -796,7 +800,12 @@ TEST(RecordStackTraceAtStartProfiling) {
CHECK_NE(NULL, const_cast<ProfileNode*>(current));
current = PickChild(current, "c");
CHECK_NE(NULL, const_cast<ProfileNode*>(current));
- CHECK_EQ(0, current->children()->length());
+ CHECK(current->children()->length() == 0 ||
+ current->children()->length() == 1);
+ if (current->children()->length() == 1) {
+ current = PickChild(current, "startProfiling");
+ CHECK_EQ(0, current->children()->length());
+ }
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev