tests: Specify the death test style to avoid flakiness.
As warned below (while running the test), the default death test style
(i.e. "fast") doesn't work well in a threaded context, which causes test
flakiness (timeout or early exit).
[WARNING] external/googletest/googletest/src/gtest-death-test.cc:836:: Death tests use fork(), which is unsafe particularly in a threaded context. For this test, Google Test detected 3 threads.
This CL specifies the death test styles to be "threadsafe" for the
following death tests.
- RangeSetTest.GetBlockNumber
- RangeSetTest.file_range
- ScreenRecoveryUITest.LoadAnimation_MissingAnimation
Test: mmma -j bootable/recovery
Test: Run recovery_unit_test on marlin. Test passes and the above
warning is gone.
Change-Id: I245bbc09286702d5cb326f878c4391e842b66cc5
This commit is contained in:
@@ -209,6 +209,7 @@ TEST(RangeSetTest, GetBlockNumber) {
|
||||
ASSERT_EQ(static_cast<size_t>(6), rs.GetBlockNumber(5));
|
||||
ASSERT_EQ(static_cast<size_t>(9), rs.GetBlockNumber(8));
|
||||
|
||||
::testing::FLAGS_gtest_death_test_style = "threadsafe";
|
||||
// Out of bound.
|
||||
ASSERT_EXIT(rs.GetBlockNumber(9), ::testing::KilledBySignal(SIGABRT), "");
|
||||
}
|
||||
@@ -284,6 +285,8 @@ TEST(SortedRangeSetTest, file_range) {
|
||||
|
||||
ASSERT_EQ(static_cast<size_t>(10), rs.GetOffsetInRangeSet(4106));
|
||||
ASSERT_EQ(static_cast<size_t>(40970), rs.GetOffsetInRangeSet(4096 * 16 + 10));
|
||||
|
||||
::testing::FLAGS_gtest_death_test_style = "threadsafe";
|
||||
// block#10 not in range.
|
||||
ASSERT_EXIT(rs.GetOffsetInRangeSet(40970), ::testing::KilledBySignal(SIGABRT), "");
|
||||
}
|
||||
|
||||
@@ -408,5 +408,7 @@ TEST_F(ScreenRecoveryUITest, LoadAnimation_MissingAnimation) {
|
||||
ASSERT_TRUE(ui_->Init(kTestLocale));
|
||||
TemporaryDir resource_dir;
|
||||
Paths::Get().set_resource_dir(resource_dir.path);
|
||||
|
||||
::testing::FLAGS_gtest_death_test_style = "threadsafe";
|
||||
ASSERT_EXIT(ui_->RunLoadAnimation(), ::testing::KilledBySignal(SIGABRT), "");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user