@@ -410,6 +410,52 @@ TEST_F(LooperTest, AddFd_WhenNoCallbackAndAllowNonCallbacksIsFalse_ReturnsError)
410
410
<< " addFd should return -1 because arguments were invalid" ;
411
411
}
412
412
413
+ class LooperCallbackStub final : public LooperCallback {
414
+ public:
415
+ LooperCallbackStub (std::function<int ()> callback) : mCallback {callback} {}
416
+
417
+ int handleEvent (int /* fd*/ , int /* events*/ , void * /* data*/ ) override { return mCallback (); }
418
+
419
+ private:
420
+ std::function<int ()> mCallback ;
421
+ };
422
+
423
+ TEST_F (LooperTest, getFdStateDebug_WhenFdIsInRequests_ReturnsTrue) {
424
+ Pipe pipe ;
425
+ const int fd = pipe .receiveFd ;
426
+ constexpr int expectedIdent{Looper::POLL_CALLBACK};
427
+ sp<LooperCallback> expectedCallback =
428
+ sp<LooperCallbackStub>::make ([]() constexpr -> int { return 0 ; });
429
+ void * expectedData = this ;
430
+
431
+ EXPECT_EQ (1 , mLooper ->addFd (fd, expectedIdent, Looper::EVENT_INPUT, expectedCallback,
432
+ expectedData));
433
+
434
+ int ident;
435
+ int events;
436
+ sp<LooperCallback> callback;
437
+ void * data;
438
+
439
+ EXPECT_TRUE (mLooper ->getFdStateDebug (fd, &ident, &events, &callback, &data));
440
+
441
+ EXPECT_EQ (ident, expectedIdent);
442
+ EXPECT_EQ (events, Looper::EVENT_INPUT);
443
+ EXPECT_EQ (callback, expectedCallback);
444
+ EXPECT_EQ (data, expectedData);
445
+ }
446
+
447
+ TEST_F (LooperTest, getFdStateDebug_WhenFdIsNotInRequests_ReturnsFalse) {
448
+ Pipe pipe ;
449
+ const int notAddedFd = pipe .receiveFd ;
450
+
451
+ int ident;
452
+ int events;
453
+ sp<LooperCallback> callback;
454
+ void * data;
455
+
456
+ EXPECT_FALSE (mLooper ->getFdStateDebug (notAddedFd, &ident, &events, &callback, &data));
457
+ }
458
+
413
459
TEST_F (LooperTest, RemoveFd_WhenCallbackNotAdded_ReturnsZero) {
414
460
int result = mLooper ->removeFd (1 );
415
461
0 commit comments