Loading automotive/audiocontrol/aidl/vts/Android.bp +6 −1 Original line number Diff line number Diff line Loading @@ -37,11 +37,16 @@ cc_test { "libxml2", ], static_libs: [ "android.hardware.automotive.audiocontrol-V1-cpp", "android.hardware.automotive.audiocontrol-V2-cpp", "android.hardware.audio.common-V1-cpp", "android.media.audio.common.types-V1-cpp", "libgmock", ], test_suites: [ "general-tests", "vts", ], cflags: [ "-Wno-deprecated-declarations", ], } automotive/audiocontrol/aidl/vts/VtsHalAudioControlTargetTest.cpp +67 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <aidl/Vintf.h> #include <gmock/gmock.h> #include <android/hardware/automotive/audiocontrol/BnAudioGainCallback.h> #include <android/hardware/automotive/audiocontrol/BnFocusListener.h> #include <android/hardware/automotive/audiocontrol/IAudioControl.h> #include <android/log.h> Loading @@ -30,10 +31,13 @@ using android::sp; using android::String16; using android::binder::Status; using android::hardware::automotive::audiocontrol::AudioFocusChange; using android::hardware::automotive::audiocontrol::AudioGainConfigInfo; using android::hardware::automotive::audiocontrol::BnAudioGainCallback; using android::hardware::automotive::audiocontrol::BnFocusListener; using android::hardware::automotive::audiocontrol::DuckingInfo; using android::hardware::automotive::audiocontrol::IAudioControl; using android::hardware::automotive::audiocontrol::MutingInfo; using android::hardware::automotive::audiocontrol::Reasons; #include "android_audio_policy_configuration_V7_0.h" Loading @@ -41,6 +45,9 @@ namespace xsd { using namespace android::audio::policy::configuration::V7_0; } namespace audiohalcommon = android::hardware::audio::common; namespace audiomediacommon = android::media::audio::common; class AudioControlAidl : public testing::TestWithParam<std::string> { public: virtual void SetUp() override { Loading Loading @@ -103,6 +110,11 @@ struct FocusListenerMock : BnFocusListener { MOCK_METHOD(Status, requestAudioFocus, (const String16& usage, int32_t zoneId, AudioFocusChange focusGain)); MOCK_METHOD(Status, abandonAudioFocus, (const String16& usage, int32_t zoneId)); MOCK_METHOD(Status, requestAudioFocusWithMetaData, (const audiohalcommon::PlaybackTrackMetadata& metaData, int32_t zoneId, AudioFocusChange focusGain)); MOCK_METHOD(Status, abandonAudioFocusWithMetaData, (const audiohalcommon::PlaybackTrackMetadata& metaData, int32_t zoneId)); }; /* Loading Loading @@ -159,6 +171,61 @@ TEST_P(AudioControlAidl, DuckChangeExercise) { ASSERT_TRUE(audioControl->onDevicesToDuckChange(duckingInfos).isOk()); } TEST_P(AudioControlAidl, FocusChangeWithMetaDataExercise) { ALOGI("Focus Change test"); audiohalcommon::PlaybackTrackMetadata metadata; metadata.usage = audiomediacommon::AudioUsage::MEDIA; metadata.contentType = audiomediacommon::AudioContentType::MUSIC; metadata.tags = {"com.google.android=VR"}; ASSERT_TRUE( audioControl ->onAudioFocusChangeWithMetaData(metadata, 0, AudioFocusChange::GAIN_TRANSIENT) .isOk()); }; TEST_P(AudioControlAidl, SetAudioDeviceGainsChangedExercise) { ALOGI("Set Audio Gains Changed test"); const std::vector<Reasons> reasons{Reasons::FORCED_MASTER_MUTE, Reasons::NAV_DUCKING}; AudioGainConfigInfo agci1; agci1.zoneId = 0; agci1.devicePortAddress = String16("address 1"); agci1.volumeIndex = 8; AudioGainConfigInfo agci2; agci1.zoneId = 0; agci1.devicePortAddress = String16("address 2"); agci1.volumeIndex = 1; std::vector<AudioGainConfigInfo> gains{agci1, agci2}; ASSERT_TRUE(audioControl->setAudioDeviceGainsChanged(reasons, gains).isOk()); } /* * Test Audio Gain Callback registration. * * Verifies that: * - registerGainCallback succeeds; * - registering a second callback succeeds in replacing the first; * - closing handle does not crash; */ struct AudioGainCallbackMock : BnAudioGainCallback { MOCK_METHOD(Status, onAudioDeviceGainsChanged, (const std::vector<Reasons>& reasons, const std::vector<AudioGainConfigInfo>& gains)); }; TEST_P(AudioControlAidl, AudioGainCallbackRegistration) { ALOGI("Focus listener test"); sp<AudioGainCallbackMock> gainCallback = new AudioGainCallbackMock(); ASSERT_TRUE(audioControl->registerGainCallback(gainCallback).isOk()); sp<AudioGainCallbackMock> gainCallback2 = new AudioGainCallbackMock(); ASSERT_TRUE(audioControl->registerGainCallback(gainCallback2).isOk()); } GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(AudioControlAidl); INSTANTIATE_TEST_SUITE_P( Audiocontrol, AudioControlAidl, Loading Loading
automotive/audiocontrol/aidl/vts/Android.bp +6 −1 Original line number Diff line number Diff line Loading @@ -37,11 +37,16 @@ cc_test { "libxml2", ], static_libs: [ "android.hardware.automotive.audiocontrol-V1-cpp", "android.hardware.automotive.audiocontrol-V2-cpp", "android.hardware.audio.common-V1-cpp", "android.media.audio.common.types-V1-cpp", "libgmock", ], test_suites: [ "general-tests", "vts", ], cflags: [ "-Wno-deprecated-declarations", ], }
automotive/audiocontrol/aidl/vts/VtsHalAudioControlTargetTest.cpp +67 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <aidl/Vintf.h> #include <gmock/gmock.h> #include <android/hardware/automotive/audiocontrol/BnAudioGainCallback.h> #include <android/hardware/automotive/audiocontrol/BnFocusListener.h> #include <android/hardware/automotive/audiocontrol/IAudioControl.h> #include <android/log.h> Loading @@ -30,10 +31,13 @@ using android::sp; using android::String16; using android::binder::Status; using android::hardware::automotive::audiocontrol::AudioFocusChange; using android::hardware::automotive::audiocontrol::AudioGainConfigInfo; using android::hardware::automotive::audiocontrol::BnAudioGainCallback; using android::hardware::automotive::audiocontrol::BnFocusListener; using android::hardware::automotive::audiocontrol::DuckingInfo; using android::hardware::automotive::audiocontrol::IAudioControl; using android::hardware::automotive::audiocontrol::MutingInfo; using android::hardware::automotive::audiocontrol::Reasons; #include "android_audio_policy_configuration_V7_0.h" Loading @@ -41,6 +45,9 @@ namespace xsd { using namespace android::audio::policy::configuration::V7_0; } namespace audiohalcommon = android::hardware::audio::common; namespace audiomediacommon = android::media::audio::common; class AudioControlAidl : public testing::TestWithParam<std::string> { public: virtual void SetUp() override { Loading Loading @@ -103,6 +110,11 @@ struct FocusListenerMock : BnFocusListener { MOCK_METHOD(Status, requestAudioFocus, (const String16& usage, int32_t zoneId, AudioFocusChange focusGain)); MOCK_METHOD(Status, abandonAudioFocus, (const String16& usage, int32_t zoneId)); MOCK_METHOD(Status, requestAudioFocusWithMetaData, (const audiohalcommon::PlaybackTrackMetadata& metaData, int32_t zoneId, AudioFocusChange focusGain)); MOCK_METHOD(Status, abandonAudioFocusWithMetaData, (const audiohalcommon::PlaybackTrackMetadata& metaData, int32_t zoneId)); }; /* Loading Loading @@ -159,6 +171,61 @@ TEST_P(AudioControlAidl, DuckChangeExercise) { ASSERT_TRUE(audioControl->onDevicesToDuckChange(duckingInfos).isOk()); } TEST_P(AudioControlAidl, FocusChangeWithMetaDataExercise) { ALOGI("Focus Change test"); audiohalcommon::PlaybackTrackMetadata metadata; metadata.usage = audiomediacommon::AudioUsage::MEDIA; metadata.contentType = audiomediacommon::AudioContentType::MUSIC; metadata.tags = {"com.google.android=VR"}; ASSERT_TRUE( audioControl ->onAudioFocusChangeWithMetaData(metadata, 0, AudioFocusChange::GAIN_TRANSIENT) .isOk()); }; TEST_P(AudioControlAidl, SetAudioDeviceGainsChangedExercise) { ALOGI("Set Audio Gains Changed test"); const std::vector<Reasons> reasons{Reasons::FORCED_MASTER_MUTE, Reasons::NAV_DUCKING}; AudioGainConfigInfo agci1; agci1.zoneId = 0; agci1.devicePortAddress = String16("address 1"); agci1.volumeIndex = 8; AudioGainConfigInfo agci2; agci1.zoneId = 0; agci1.devicePortAddress = String16("address 2"); agci1.volumeIndex = 1; std::vector<AudioGainConfigInfo> gains{agci1, agci2}; ASSERT_TRUE(audioControl->setAudioDeviceGainsChanged(reasons, gains).isOk()); } /* * Test Audio Gain Callback registration. * * Verifies that: * - registerGainCallback succeeds; * - registering a second callback succeeds in replacing the first; * - closing handle does not crash; */ struct AudioGainCallbackMock : BnAudioGainCallback { MOCK_METHOD(Status, onAudioDeviceGainsChanged, (const std::vector<Reasons>& reasons, const std::vector<AudioGainConfigInfo>& gains)); }; TEST_P(AudioControlAidl, AudioGainCallbackRegistration) { ALOGI("Focus listener test"); sp<AudioGainCallbackMock> gainCallback = new AudioGainCallbackMock(); ASSERT_TRUE(audioControl->registerGainCallback(gainCallback).isOk()); sp<AudioGainCallbackMock> gainCallback2 = new AudioGainCallbackMock(); ASSERT_TRUE(audioControl->registerGainCallback(gainCallback2).isOk()); } GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(AudioControlAidl); INSTANTIATE_TEST_SUITE_P( Audiocontrol, AudioControlAidl, Loading