mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-01-27 18:59:11 +00:00
Merge "Add step and cancel tests for default bcradio HAL" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
13a6753ea3
@@ -117,6 +117,21 @@ class DefaultBroadcastRadioHalTest : public testing::Test {
|
||||
}
|
||||
}
|
||||
|
||||
bool getAmFmBandRange(utils::FrequencyBand band, AmFmBandRange* res) {
|
||||
AmFmRegionConfig config;
|
||||
auto halResult = mBroadcastRadioHal->getAmFmRegionConfig(/* full= */ false, &config);
|
||||
if (!halResult.isOk()) {
|
||||
return false;
|
||||
}
|
||||
for (const auto& range : config.ranges) {
|
||||
if (utils::getBand(range.lowerBound) == band) {
|
||||
*res = range;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
std::shared_ptr<BroadcastRadio> mBroadcastRadioHal;
|
||||
std::shared_ptr<MockBroadcastRadioCallback> mTunerCallback;
|
||||
};
|
||||
@@ -246,4 +261,91 @@ TEST_F(DefaultBroadcastRadioHalTest, TuneWithoutTunerCallback) {
|
||||
ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE));
|
||||
}
|
||||
|
||||
TEST_F(DefaultBroadcastRadioHalTest, StepUp) {
|
||||
AmFmBandRange fmRange;
|
||||
ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange));
|
||||
ProgramSelector nextChannelSel =
|
||||
utils::makeSelectorAmfm(kFmSel1.primaryId.value + fmRange.spacing);
|
||||
ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk());
|
||||
mTunerCallback->reset();
|
||||
ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk());
|
||||
verifyUpdatedProgramInfo(kFmSel1);
|
||||
|
||||
auto halResult = mBroadcastRadioHal->step(/* in_directionUp= */ true);
|
||||
|
||||
ASSERT_TRUE(halResult.isOk());
|
||||
verifyUpdatedProgramInfo(nextChannelSel);
|
||||
}
|
||||
|
||||
TEST_F(DefaultBroadcastRadioHalTest, StepUpFromUpperBound) {
|
||||
AmFmBandRange fmRange;
|
||||
ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange));
|
||||
ProgramSelector upperBoundSel = utils::makeSelectorAmfm(fmRange.upperBound);
|
||||
ProgramSelector lowerBoundSel = utils::makeSelectorAmfm(fmRange.lowerBound);
|
||||
ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk());
|
||||
mTunerCallback->reset();
|
||||
ASSERT_TRUE(mBroadcastRadioHal->tune(upperBoundSel).isOk());
|
||||
verifyUpdatedProgramInfo(upperBoundSel);
|
||||
|
||||
auto halResult = mBroadcastRadioHal->step(/* in_directionUp= */ true);
|
||||
|
||||
ASSERT_TRUE(halResult.isOk());
|
||||
verifyUpdatedProgramInfo(lowerBoundSel);
|
||||
}
|
||||
|
||||
TEST_F(DefaultBroadcastRadioHalTest, StepDown) {
|
||||
AmFmBandRange fmRange;
|
||||
ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange));
|
||||
ProgramSelector nextChannelSel =
|
||||
utils::makeSelectorAmfm(kFmSel1.primaryId.value - fmRange.spacing);
|
||||
ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk());
|
||||
mTunerCallback->reset();
|
||||
ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk());
|
||||
verifyUpdatedProgramInfo(kFmSel1);
|
||||
|
||||
auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false);
|
||||
|
||||
ASSERT_TRUE(halResult.isOk());
|
||||
verifyUpdatedProgramInfo(nextChannelSel);
|
||||
}
|
||||
|
||||
TEST_F(DefaultBroadcastRadioHalTest, StepDownFromLowerBound) {
|
||||
AmFmBandRange fmRange;
|
||||
ASSERT_TRUE(getAmFmBandRange(utils::FrequencyBand::FM, &fmRange));
|
||||
ProgramSelector upperBoundSel = utils::makeSelectorAmfm(fmRange.upperBound);
|
||||
ProgramSelector lowerBoundSel = utils::makeSelectorAmfm(fmRange.lowerBound);
|
||||
ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk());
|
||||
mTunerCallback->reset();
|
||||
ASSERT_TRUE(mBroadcastRadioHal->tune(lowerBoundSel).isOk());
|
||||
verifyUpdatedProgramInfo(lowerBoundSel);
|
||||
|
||||
auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false);
|
||||
|
||||
ASSERT_TRUE(halResult.isOk());
|
||||
verifyUpdatedProgramInfo(upperBoundSel);
|
||||
}
|
||||
|
||||
TEST_F(DefaultBroadcastRadioHalTest, StepWithoutTunerCallback) {
|
||||
ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk());
|
||||
mTunerCallback->reset();
|
||||
ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk());
|
||||
verifyUpdatedProgramInfo(kFmSel1);
|
||||
mBroadcastRadioHal->unsetTunerCallback();
|
||||
|
||||
auto halResult = mBroadcastRadioHal->step(/* directionUp= */ false);
|
||||
|
||||
ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE));
|
||||
}
|
||||
|
||||
TEST_F(DefaultBroadcastRadioHalTest, Cancel) {
|
||||
ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk());
|
||||
mTunerCallback->reset();
|
||||
ASSERT_TRUE(mBroadcastRadioHal->tune(kFmSel1).isOk());
|
||||
|
||||
auto halResult = mBroadcastRadioHal->cancel();
|
||||
|
||||
ASSERT_TRUE(halResult.isOk());
|
||||
mTunerCallback->reset();
|
||||
}
|
||||
|
||||
} // namespace aidl::android::hardware::broadcastradio
|
||||
|
||||
Reference in New Issue
Block a user