diff options
author | 2022-06-23 23:42:08 +0000 | |
---|---|---|
committer | 2022-06-27 18:56:01 +0000 | |
commit | ae9deebc5282130e7cd84f146b97fdbd9fb71b88 (patch) | |
tree | 0e8c03383aa79d8b1b164273ea3104612506e2e2 | |
parent | 332a29a57f332773e6eb44e404f0c55d1888f2eb (diff) |
libbinder: Add test for null non-nullable binder return
Test: atest binderRpcTest
Change-Id: If10aac2b040f5de53516528821c6623c4b528cb8
-rw-r--r-- | libs/binder/tests/IBinderRpcTest.aidl | 3 | ||||
-rw-r--r-- | libs/binder/tests/binderRpcTest.cpp | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/libs/binder/tests/IBinderRpcTest.aidl b/libs/binder/tests/IBinderRpcTest.aidl index fdd02a4435..2deea82cf9 100644 --- a/libs/binder/tests/IBinderRpcTest.aidl +++ b/libs/binder/tests/IBinderRpcTest.aidl @@ -24,6 +24,9 @@ interface IBinderRpcTest { // number of known RPC binders to process, RpcState::countBinders by session int[] countBinders(); + // Return a null binder with a non-nullable return type. + IBinder getNullBinder(); + // Caller sends server, callee pings caller's server and returns error code. int pingMe(IBinder binder); @nullable IBinder repeatBinder(@nullable IBinder binder); diff --git a/libs/binder/tests/binderRpcTest.cpp b/libs/binder/tests/binderRpcTest.cpp index 51614698a0..141fa38114 100644 --- a/libs/binder/tests/binderRpcTest.cpp +++ b/libs/binder/tests/binderRpcTest.cpp @@ -202,6 +202,10 @@ public: } return Status::ok(); } + Status getNullBinder(sp<IBinder>* out) override { + out->clear(); + return Status::ok(); + } Status pingMe(const sp<IBinder>& binder, int32_t* out) override { if (binder == nullptr) { std::cout << "Received null binder!" << std::endl; @@ -802,6 +806,13 @@ TEST_P(BinderRpc, SendAndGetResultBackBig) { EXPECT_EQ(single + single, doubled); } +TEST_P(BinderRpc, InvalidNullBinderReturn) { + auto proc = createRpcTestSocketServerProcess({}); + + sp<IBinder> outBinder; + EXPECT_EQ(proc.rootIface->getNullBinder(&outBinder).transactionError(), UNEXPECTED_NULL); +} + TEST_P(BinderRpc, CallMeBack) { auto proc = createRpcTestSocketServerProcess({}); |