Loading libs/gui/tests/RegionSampling_test.cpp +66 −0 Original line number Diff line number Diff line Loading @@ -297,4 +297,70 @@ TEST_F(RegionSamplingTest, DISABLED_CollectsLumaFromTwoRegions) { composer->removeRegionSamplingListener(grayListener); } TEST_F(RegionSamplingTest, DISABLED_TestIfInvalidInputParameters) { sp<ISurfaceComposer> composer = ComposerService::getComposerService(); sp<Listener> listener = new Listener(); const Rect sampleArea{100, 100, 200, 200}; // Invalid input sampleArea EXPECT_EQ(BAD_VALUE, composer->addRegionSamplingListener(Rect::INVALID_RECT, mTopLayer->getHandle(), listener)); listener->reset(); // Invalid input binder EXPECT_EQ(NO_ERROR, composer->addRegionSamplingListener(sampleArea, NULL, listener)); // Invalid input listener EXPECT_EQ(BAD_VALUE, composer->addRegionSamplingListener(sampleArea, mTopLayer->getHandle(), NULL)); EXPECT_EQ(BAD_VALUE, composer->removeRegionSamplingListener(NULL)); // remove the listener composer->removeRegionSamplingListener(listener); } TEST_F(RegionSamplingTest, DISABLED_TestCallbackAfterRemoveListener) { fill_render(rgba_green); sp<ISurfaceComposer> composer = ComposerService::getComposerService(); sp<Listener> listener = new Listener(); const Rect sampleArea{100, 100, 200, 200}; composer->addRegionSamplingListener(sampleArea, mTopLayer->getHandle(), listener); fill_render(rgba_green); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_green, error_margin); listener->reset(); composer->removeRegionSamplingListener(listener); fill_render(rgba_green); EXPECT_FALSE(listener->wait_event(100ms)) << "callback should stop after remove the region sampling listener"; } TEST_F(RegionSamplingTest, DISABLED_CollectsLumaFromMovingLayer) { sp<ISurfaceComposer> composer = ComposerService::getComposerService(); sp<Listener> listener = new Listener(); Rect sampleArea{100, 100, 200, 200}; // Test: listener in (100, 100). See layer before move, no layer after move. fill_render(rgba_blue); composer->addRegionSamplingListener(sampleArea, mTopLayer->getHandle(), listener); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_blue, error_margin); listener->reset(); SurfaceComposerClient::Transaction{}.setPosition(mContentLayer, 600, 600).apply(); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_gray, error_margin); composer->removeRegionSamplingListener(listener); // Test: listener offset to (600, 600). No layer before move, see layer after move. fill_render(rgba_green); sampleArea.offsetTo(600, 600); composer->addRegionSamplingListener(sampleArea, mTopLayer->getHandle(), listener); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_gray, error_margin); listener->reset(); SurfaceComposerClient::Transaction{}.setPosition(mContentLayer, 600, 600).apply(); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_green, error_margin); composer->removeRegionSamplingListener(listener); } } // namespace android::test Loading
libs/gui/tests/RegionSampling_test.cpp +66 −0 Original line number Diff line number Diff line Loading @@ -297,4 +297,70 @@ TEST_F(RegionSamplingTest, DISABLED_CollectsLumaFromTwoRegions) { composer->removeRegionSamplingListener(grayListener); } TEST_F(RegionSamplingTest, DISABLED_TestIfInvalidInputParameters) { sp<ISurfaceComposer> composer = ComposerService::getComposerService(); sp<Listener> listener = new Listener(); const Rect sampleArea{100, 100, 200, 200}; // Invalid input sampleArea EXPECT_EQ(BAD_VALUE, composer->addRegionSamplingListener(Rect::INVALID_RECT, mTopLayer->getHandle(), listener)); listener->reset(); // Invalid input binder EXPECT_EQ(NO_ERROR, composer->addRegionSamplingListener(sampleArea, NULL, listener)); // Invalid input listener EXPECT_EQ(BAD_VALUE, composer->addRegionSamplingListener(sampleArea, mTopLayer->getHandle(), NULL)); EXPECT_EQ(BAD_VALUE, composer->removeRegionSamplingListener(NULL)); // remove the listener composer->removeRegionSamplingListener(listener); } TEST_F(RegionSamplingTest, DISABLED_TestCallbackAfterRemoveListener) { fill_render(rgba_green); sp<ISurfaceComposer> composer = ComposerService::getComposerService(); sp<Listener> listener = new Listener(); const Rect sampleArea{100, 100, 200, 200}; composer->addRegionSamplingListener(sampleArea, mTopLayer->getHandle(), listener); fill_render(rgba_green); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_green, error_margin); listener->reset(); composer->removeRegionSamplingListener(listener); fill_render(rgba_green); EXPECT_FALSE(listener->wait_event(100ms)) << "callback should stop after remove the region sampling listener"; } TEST_F(RegionSamplingTest, DISABLED_CollectsLumaFromMovingLayer) { sp<ISurfaceComposer> composer = ComposerService::getComposerService(); sp<Listener> listener = new Listener(); Rect sampleArea{100, 100, 200, 200}; // Test: listener in (100, 100). See layer before move, no layer after move. fill_render(rgba_blue); composer->addRegionSamplingListener(sampleArea, mTopLayer->getHandle(), listener); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_blue, error_margin); listener->reset(); SurfaceComposerClient::Transaction{}.setPosition(mContentLayer, 600, 600).apply(); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_gray, error_margin); composer->removeRegionSamplingListener(listener); // Test: listener offset to (600, 600). No layer before move, see layer after move. fill_render(rgba_green); sampleArea.offsetTo(600, 600); composer->addRegionSamplingListener(sampleArea, mTopLayer->getHandle(), listener); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_gray, error_margin); listener->reset(); SurfaceComposerClient::Transaction{}.setPosition(mContentLayer, 600, 600).apply(); EXPECT_TRUE(listener->wait_event(300ms)) << "timed out waiting for luma event to be received"; EXPECT_NEAR(listener->luma(), luma_green, error_margin); composer->removeRegionSamplingListener(listener); } } // namespace android::test