Merge "AudioControl: add version check for module change callback APIs" into udc-dev am: a5f9277262

Original change: https://googleplex-android-review.googlesource.com/c/platform/hardware/interfaces/+/23231662

Change-Id: Ifc56ce5f83d6b63c9c4b5d6fd9586c8acdb7d46c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Raj Goparaju
2023-05-16 18:42:42 +00:00
committed by Automerger Merge Worker

View File

@@ -53,17 +53,25 @@ using namespace android::audio::policy::configuration::V7_0;
namespace audiohalcommon = android::hardware::audio::common;
namespace audiomediacommon = android::media::audio::common;
namespace {
constexpr int32_t kAidlVersionThree = 3;
}
class AudioControlAidl : public testing::TestWithParam<std::string> {
public:
virtual void SetUp() override {
audioControl = android::waitForDeclaredService<IAudioControl>(String16(GetParam().c_str()));
ASSERT_NE(audioControl, nullptr);
aidlVersion = audioControl->getInterfaceVersion();
}
void TearDown() override { audioControl = nullptr; }
bool isAidlVersionAtleast(int version) const { return aidlVersion >= version; }
sp<IAudioControl> audioControl;
int32_t capabilities;
int32_t aidlVersion;
};
TEST_P(AudioControlAidl, OnSetFadeTowardsFront) {
@@ -250,6 +258,11 @@ struct ModuleChangeCallbackMock : BnModuleChangeCallback {
TEST_P(AudioControlAidl, RegisterModuleChangeCallbackTwiceThrowsException) {
ALOGI("Register Module change callback test");
if (!isAidlVersionAtleast(kAidlVersionThree)) {
GTEST_SKIP() << "Device does not support the new APIs for module change callback";
return;
}
// make sure no stale callbacks.
audioControl->clearModuleChangeCallback();
@@ -269,6 +282,11 @@ TEST_P(AudioControlAidl, RegisterModuleChangeCallbackTwiceThrowsException) {
TEST_P(AudioControlAidl, RegisterModuleChangeNullCallbackThrowsException) {
ALOGI("Register Module change callback with nullptr test");
if (!isAidlVersionAtleast(kAidlVersionThree)) {
GTEST_SKIP() << "Device does not support the new APIs for module change callback";
return;
}
auto status = audioControl->setModuleChangeCallback(nullptr);
EXPECT_THAT(status.exceptionCode(),
AnyOf(Eq(Status::EX_ILLEGAL_ARGUMENT), Eq(Status::EX_UNSUPPORTED_OPERATION)));