Add method to IFoo for testing NULL interfaces.

Bug: 32410513
Test: mma, hidl_test
Change-Id: I791c3a95e670a859e5e494ead987d2a93f5047a5
diff --git a/tests/foo/1.0/IFoo.hal b/tests/foo/1.0/IFoo.hal
index c06fc05..ea69e1e 100644
--- a/tests/foo/1.0/IFoo.hal
+++ b/tests/foo/1.0/IFoo.hal
@@ -117,6 +117,9 @@
 
     haveAVectorOfGenericInterfaces(vec<interface> in)
         generates (vec<interface> out);
+
+    echoNullInterface(IFooCallback cb) generates (bool receivedNull, IFooCallback cb);
+
     createMyHandle() generates (MyHandle h);
     createHandles(uint32_t size) generates (vec<handle> handles);
     closeHandles();
diff --git a/tests/foo/1.0/default/Foo.cpp b/tests/foo/1.0/default/Foo.cpp
index cf4f975..f7cc7c0 100644
--- a/tests/foo/1.0/default/Foo.cpp
+++ b/tests/foo/1.0/default/Foo.cpp
@@ -328,6 +328,12 @@
     return Void();
 }
 
+Return<void> Foo::echoNullInterface(const sp<IFooCallback> &cb, echoNullInterface_cb _hidl_cb) {
+    _hidl_cb(cb == nullptr, cb);
+
+    return Void();
+}
+
 IFoo* HIDL_FETCH_IFoo(const char* /* name */) {
     return new Foo();
 }
diff --git a/tests/foo/1.0/default/Foo.h b/tests/foo/1.0/default/Foo.h
index e61291d..703c210 100644
--- a/tests/foo/1.0/default/Foo.h
+++ b/tests/foo/1.0/default/Foo.h
@@ -56,6 +56,8 @@
     Return<void> haveAVectorOfGenericInterfaces(
             const hidl_vec<sp<android::hardware::IBinder> > &in,
             haveAVectorOfGenericInterfaces_cb _hidl_cb) override;
+
+    Return<void> echoNullInterface(const sp<IFooCallback> &cb, echoNullInterface_cb _hidl_cb) override;
 private:
     std::vector<::native_handle_t *> mHandles;
 };