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;