Audio HAL VTS: Sanitize setMode input
Some values of AudioMode are exposed although implementation detail.
Make sure the client can not use them.
Test: vts-tradefed run vts --module VtsHalAudioV2_0Target
Test: call/play music/record/video...
Bug: 36311550
Change-Id: If513c2a06efa8a92459f0af80c63232fc63302b0
Signed-off-by: Kevin Rocard <krocard@google.com>
diff --git a/audio/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp b/audio/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
index 20a093f..2700ef1 100644
--- a/audio/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
+++ b/audio/2.0/vts/functional/AudioPrimaryHidlHalTest.cpp
@@ -1291,18 +1291,22 @@
}
TEST_F(AudioPrimaryHidlTest, setMode) {
- doc::test("Make sure setMode always succeeds if mode is valid");
+ doc::test(
+ "Make sure setMode always succeeds if mode is valid "
+ "and fails otherwise");
+ // Test Invalid values
+ for (AudioMode mode :
+ {AudioMode::INVALID, AudioMode::CURRENT, AudioMode::CNT}) {
+ SCOPED_TRACE("mode=" + toString(mode));
+ ASSERT_RESULT(Result::INVALID_ARGUMENTS, device->setMode(mode));
+ }
+ // Test valid values
for (AudioMode mode :
{AudioMode::IN_CALL, AudioMode::IN_COMMUNICATION, AudioMode::RINGTONE,
- AudioMode::CURRENT,
AudioMode::NORMAL /* Make sure to leave the test in normal mode */}) {
SCOPED_TRACE("mode=" + toString(mode));
ASSERT_OK(device->setMode(mode));
}
-
- // FIXME: Missing api doc. What should the impl do if the mode is invalid ?
- ASSERT_RESULT(Result::INVALID_ARGUMENTS,
- device->setMode(AudioMode::INVALID));
}
TEST_F(BoolAccessorPrimaryHidlTest, BtScoNrecEnabled) {