From bb6e414ae835f08083de839bae0ca284e1613b18 Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Tue, 21 Aug 2018 14:17:40 -0700 Subject: [PATCH] CameraService: Enable presubmit unit tests, and fix them - Add cameraservice_test to presubmit TEST_MAPPING - Fix broken CameraProviderManager test Test: Fixed test passes; 'atest' in frameworks/av/services/camera/libcameraservice runs the expected test Change-Id: Ia1ceaf526884325d56f0e273f89220fdb33493dd --- services/camera/libcameraservice/TEST_MAPPING | 7 ++++++ .../tests/CameraProviderManagerTest.cpp | 23 +++++++++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 services/camera/libcameraservice/TEST_MAPPING diff --git a/services/camera/libcameraservice/TEST_MAPPING b/services/camera/libcameraservice/TEST_MAPPING new file mode 100644 index 0000000000..6fdac68fa0 --- /dev/null +++ b/services/camera/libcameraservice/TEST_MAPPING @@ -0,0 +1,7 @@ +{ + "presubmit": [ + { + "name": "cameraservice_test" + } + ] +} diff --git a/services/camera/libcameraservice/tests/CameraProviderManagerTest.cpp b/services/camera/libcameraservice/tests/CameraProviderManagerTest.cpp index ef93d9a9ca..0086c6c5de 100644 --- a/services/camera/libcameraservice/tests/CameraProviderManagerTest.cpp +++ b/services/camera/libcameraservice/tests/CameraProviderManagerTest.cpp @@ -163,7 +163,7 @@ struct TestInteractionProxy : public CameraProviderManager::ServiceInteractionPr mTestCameraProvider = provider; } - std::string mLastRequestedServiceName; + std::vector mLastRequestedServiceNames; virtual ~TestInteractionProxy() {} @@ -177,7 +177,7 @@ struct TestInteractionProxy : public CameraProviderManager::ServiceInteractionPr virtual sp getService( const std::string &serviceName) override { - mLastRequestedServiceName = serviceName; + mLastRequestedServiceNames.push_back(serviceName); return mTestCameraProvider; } @@ -210,9 +210,18 @@ TEST(CameraProviderManagerTest, InitializeTest) { res = providerManager->initialize(statusListener, &serviceProxy); ASSERT_EQ(res, OK) << "Unable to initialize provider manager"; - hardware::hidl_string legacyInstanceName = "legacy/0"; - ASSERT_EQ(serviceProxy.mLastRequestedServiceName, legacyInstanceName) << + std::string legacyInstanceName = "legacy/0"; + std::string externalInstanceName = "external/0"; + bool gotLegacy = false; + bool gotExternal = false; + for (auto& serviceName : serviceProxy.mLastRequestedServiceNames) { + if (serviceName == legacyInstanceName) gotLegacy = true; + if (serviceName == externalInstanceName) gotExternal = true; + } + ASSERT_TRUE(gotLegacy) << "Legacy instance not requested from service manager"; + ASSERT_TRUE(gotExternal) << + "External instance not requested from service manager"; hardware::hidl_string testProviderFqInterfaceName = "android.hardware.camera.provider@2.4::ICameraProvider"; @@ -221,7 +230,7 @@ TEST(CameraProviderManagerTest, InitializeTest) { testProviderFqInterfaceName, testProviderInstanceName, false); - ASSERT_EQ(serviceProxy.mLastRequestedServiceName, testProviderInstanceName) << + ASSERT_EQ(serviceProxy.mLastRequestedServiceNames.back(), testProviderInstanceName) << "Incorrect instance requested from service manager"; } @@ -255,7 +264,7 @@ TEST(CameraProviderManagerTest, MultipleVendorTagTest) { "android.hardware.camera.provider@2.4::ICameraProvider"; serviceProxy.mManagerNotificationInterface->onRegistration( testProviderFqInterfaceName, testProviderInstanceName, false); - ASSERT_EQ(serviceProxy.mLastRequestedServiceName, testProviderInstanceName) << + ASSERT_EQ(serviceProxy.mLastRequestedServiceNames.back(), testProviderInstanceName) << "Incorrect instance requested from service manager"; hardware::hidl_string sectionNameSecond = "SecondVendorTestSection"; @@ -273,7 +282,7 @@ TEST(CameraProviderManagerTest, MultipleVendorTagTest) { hardware::hidl_string testProviderSecondInstanceName = "test2/0"; serviceProxy.mManagerNotificationInterface->onRegistration( testProviderFqInterfaceName, testProviderSecondInstanceName, false); - ASSERT_EQ(serviceProxy.mLastRequestedServiceName, + ASSERT_EQ(serviceProxy.mLastRequestedServiceNames.back(), testProviderSecondInstanceName) << "Incorrect instance requested from service manager";