Tests for Return crashes. am: 9cafed562a am: f13d1985d4 am: bcfdb3fbdf
am: d1756e2a41
Change-Id: I2ec5442eb75db0e1a409e88c6fe0e08d7ba395ff
diff --git a/test_main.cpp b/test_main.cpp
index 5defe8c..66c784b 100644
--- a/test_main.cpp
+++ b/test_main.cpp
@@ -489,6 +489,22 @@
EXPECT_EQ(three, ret.withDefault(three));
}
+TEST_F(LibHidlTest, ReturnDies) {
+ using ::android::hardware::Return;
+ using ::android::hardware::Status;
+
+ EXPECT_DEATH({ Return<void>(Status::fromStatusT(-EBUSY)); }, "");
+ EXPECT_DEATH({ Return<void>(Status::fromStatusT(-EBUSY)).isDeadObject(); }, "");
+ EXPECT_DEATH(
+ {
+ Return<int> ret = Return<int>(Status::fromStatusT(-EBUSY));
+ int foo = ret; // should crash here
+ (void)foo;
+ ret.isOk();
+ },
+ "");
+}
+
std::string toString(const ::android::hardware::Status &s) {
using ::android::hardware::operator<<;
std::ostringstream oss;