Tests for Return crashes.
Since I had edited this recently, but we only have manual tests for it.
Bug: N/A
Test: N/A
Change-Id: Ie60b6bd075ffb4f67f530e48b7f7a19dc82b3367
diff --git a/test_main.cpp b/test_main.cpp
index 6e96a42..af29f84 100644
--- a/test_main.cpp
+++ b/test_main.cpp
@@ -484,6 +484,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;