audiohal: Fix incorrect parameter handling in IDevicesFactory::openDevice
Check for possibly invalid values of IDevicesFactory::Device enum.
Bug: 37592306
Change-Id: I4a2300d3be9ab38e6c51ba8a3b5bbbb606a11c2b
Test: VTS
diff --git a/audio/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp b/audio/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
index 4b00f35..5fcabf4 100644
--- a/audio/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
+++ b/audio/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
@@ -155,6 +155,16 @@
doc::test("test the getService (called in SetUp)");
}
+TEST_F(AudioHidlTest, OpenDeviceInvalidParameter) {
+ doc::test("test passing an invalid parameter to openDevice");
+ IDevicesFactory::Result result;
+ sp<IDevice> device;
+ ASSERT_OK(devicesFactory->openDevice(IDevicesFactory::Device(-1),
+ returnIn(result, device)));
+ ASSERT_EQ(IDevicesFactory::Result::INVALID_ARGUMENTS, result);
+ ASSERT_TRUE(device == nullptr);
+}
+
//////////////////////////////////////////////////////////////////////////////
/////////////////////////////// openDevice primary ///////////////////////////
//////////////////////////////////////////////////////////////////////////////