@@ -155,17 +155,23 @@ TEST(AddService, OverwriteExistingService) {
155155 IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT).isOk ());
156156
157157 Service outA;
158- EXPECT_TRUE (sm->getService (" foo" , &outA).isOk ());
158+ EXPECT_TRUE (sm->getService2 (" foo" , &outA).isOk ());
159159 EXPECT_EQ (serviceA, outA.get <Service::Tag::binder>());
160+ sp<IBinder> outBinderA;
161+ EXPECT_TRUE (sm->getService (" foo" , &outBinderA).isOk ());
162+ EXPECT_EQ (serviceA, outBinderA);
160163
161164 // serviceA should be overwritten by serviceB
162165 sp<IBinder> serviceB = getBinder ();
163166 EXPECT_TRUE (sm->addService (" foo" , serviceB, false /* allowIsolated*/ ,
164167 IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT).isOk ());
165168
166169 Service outB;
167- EXPECT_TRUE (sm->getService (" foo" , &outB).isOk ());
170+ EXPECT_TRUE (sm->getService2 (" foo" , &outB).isOk ());
168171 EXPECT_EQ (serviceB, outB.get <Service::Tag::binder>());
172+ sp<IBinder> outBinderB;
173+ EXPECT_TRUE (sm->getService (" foo" , &outBinderB).isOk ());
174+ EXPECT_EQ (serviceB, outBinderB);
169175}
170176
171177TEST (AddService, NoPermissions) {
@@ -188,24 +194,30 @@ TEST(GetService, HappyHappy) {
188194 IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT).isOk ());
189195
190196 Service out;
191- EXPECT_TRUE (sm->getService (" foo" , &out).isOk ());
197+ EXPECT_TRUE (sm->getService2 (" foo" , &out).isOk ());
192198 EXPECT_EQ (service, out.get <Service::Tag::binder>());
199+ sp<IBinder> outBinder;
200+ EXPECT_TRUE (sm->getService (" foo" , &outBinder).isOk ());
201+ EXPECT_EQ (service, outBinder);
193202}
194203
195204TEST (GetService, NonExistant) {
196205 auto sm = getPermissiveServiceManager ();
197206
198207 Service out;
199- EXPECT_TRUE (sm->getService (" foo" , &out).isOk ());
208+ EXPECT_TRUE (sm->getService2 (" foo" , &out).isOk ());
200209 EXPECT_EQ (nullptr , out.get <Service::Tag::binder>());
210+ sp<IBinder> outBinder;
211+ EXPECT_TRUE (sm->getService (" foo" , &outBinder).isOk ());
212+ EXPECT_EQ (nullptr , outBinder);
201213}
202214
203215TEST (GetService, NoPermissionsForGettingService) {
204216 std::unique_ptr<MockAccess> access = std::make_unique<NiceMock<MockAccess>>();
205217
206218 EXPECT_CALL (*access, getCallingContext ()).WillRepeatedly (Return (Access::CallingContext{}));
207219 EXPECT_CALL (*access, canAdd (_, _)).WillOnce (Return (true ));
208- EXPECT_CALL (*access, canFind (_, _)).WillOnce (Return (false ));
220+ EXPECT_CALL (*access, canFind (_, _)).WillRepeatedly (Return (false ));
209221
210222 sp<ServiceManager> sm = sp<NiceMock<MockServiceManager>>::make (std::move (access));
211223
@@ -214,22 +226,28 @@ TEST(GetService, NoPermissionsForGettingService) {
214226
215227 Service out;
216228 // returns nullptr but has OK status for legacy compatibility
217- EXPECT_TRUE (sm->getService (" foo" , &out).isOk ());
229+ EXPECT_TRUE (sm->getService2 (" foo" , &out).isOk ());
218230 EXPECT_EQ (nullptr , out.get <Service::Tag::binder>());
231+ sp<IBinder> outBinder;
232+ EXPECT_TRUE (sm->getService (" foo" , &outBinder).isOk ());
233+ EXPECT_EQ (nullptr , outBinder);
219234}
220235
221236TEST (GetService, AllowedFromIsolated) {
222237 std::unique_ptr<MockAccess> access = std::make_unique<NiceMock<MockAccess>>();
223238
224239 EXPECT_CALL (*access, getCallingContext ())
225- // something adds it
226- .WillOnce (Return (Access::CallingContext{}))
227- // next call is from isolated app
228- .WillOnce (Return (Access::CallingContext{
229- .uid = AID_ISOLATED_START,
230- }));
240+ // something adds it
241+ .WillOnce (Return (Access::CallingContext{}))
242+ // next calls is from isolated app
243+ .WillOnce (Return (Access::CallingContext{
244+ .uid = AID_ISOLATED_START,
245+ }))
246+ .WillOnce (Return (Access::CallingContext{
247+ .uid = AID_ISOLATED_START,
248+ }));
231249 EXPECT_CALL (*access, canAdd (_, _)).WillOnce (Return (true ));
232- EXPECT_CALL (*access, canFind (_, _)).WillOnce (Return (true ));
250+ EXPECT_CALL (*access, canFind (_, _)).WillRepeatedly (Return (true ));
233251
234252 sp<ServiceManager> sm = sp<NiceMock<MockServiceManager>>::make (std::move (access));
235253
@@ -238,20 +256,26 @@ TEST(GetService, AllowedFromIsolated) {
238256 IServiceManager::DUMP_FLAG_PRIORITY_DEFAULT).isOk ());
239257
240258 Service out;
241- EXPECT_TRUE (sm->getService (" foo" , &out).isOk ());
259+ EXPECT_TRUE (sm->getService2 (" foo" , &out).isOk ());
242260 EXPECT_EQ (service, out.get <Service::Tag::binder>());
261+ sp<IBinder> outBinder;
262+ EXPECT_TRUE (sm->getService (" foo" , &outBinder).isOk ());
263+ EXPECT_EQ (service, outBinder);
243264}
244265
245266TEST (GetService, NotAllowedFromIsolated) {
246267 std::unique_ptr<MockAccess> access = std::make_unique<NiceMock<MockAccess>>();
247268
248269 EXPECT_CALL (*access, getCallingContext ())
249- // something adds it
250- .WillOnce (Return (Access::CallingContext{}))
251- // next call is from isolated app
252- .WillOnce (Return (Access::CallingContext{
253- .uid = AID_ISOLATED_START,
254- }));
270+ // something adds it
271+ .WillOnce (Return (Access::CallingContext{}))
272+ // next calls is from isolated app
273+ .WillOnce (Return (Access::CallingContext{
274+ .uid = AID_ISOLATED_START,
275+ }))
276+ .WillOnce (Return (Access::CallingContext{
277+ .uid = AID_ISOLATED_START,
278+ }));
255279 EXPECT_CALL (*access, canAdd (_, _)).WillOnce (Return (true ));
256280
257281 // TODO(b/136023468): when security check is first, this should be called first
@@ -264,8 +288,11 @@ TEST(GetService, NotAllowedFromIsolated) {
264288
265289 Service out;
266290 // returns nullptr but has OK status for legacy compatibility
267- EXPECT_TRUE (sm->getService (" foo" , &out).isOk ());
291+ EXPECT_TRUE (sm->getService2 (" foo" , &out).isOk ());
268292 EXPECT_EQ (nullptr , out.get <Service::Tag::binder>());
293+ sp<IBinder> outBinder;
294+ EXPECT_TRUE (sm->getService (" foo" , &outBinder).isOk ());
295+ EXPECT_EQ (nullptr , outBinder);
269296}
270297
271298TEST (ListServices, NoPermissions) {
0 commit comments