Loading broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp +78 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,13 @@ const VirtualRadio& getAmFmMockTestRadio() { return amFmRadioMockTestRadio; } int getSignalAcquisitionFlags(const ProgramInfo& info) { return (info.infoFlags & (ProgramInfo::FLAG_SIGNAL_ACQUISITION | ProgramInfo::FLAG_HD_SIS_ACQUISITION | ProgramInfo::FLAG_HD_AUDIO_ACQUISITION)) >> 6; } } // namespace class DefaultBroadcastRadioHalTest : public testing::Test { Loading @@ -88,6 +95,28 @@ class DefaultBroadcastRadioHalTest : public testing::Test { EXPECT_FALSE(mTunerCallback->isTunerFailed()); } void verifyUpdatedProgramInfo(const ProgramSelector& sel) { ASSERT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); ProgramInfo infoCb1 = mTunerCallback->getCurrentProgramInfo(); mTunerCallback->reset(); if (sel.primaryId.type == IdentifierType::HD_STATION_ID_EXT) { EXPECT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); ProgramInfo infoCb2 = mTunerCallback->getCurrentProgramInfo(); mTunerCallback->reset(); EXPECT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); ProgramInfo infoCb3 = mTunerCallback->getCurrentProgramInfo(); mTunerCallback->reset(); EXPECT_EQ(infoCb1.selector, sel); EXPECT_EQ(getSignalAcquisitionFlags(infoCb1), 0b001); EXPECT_EQ(infoCb2.selector, sel); EXPECT_EQ(getSignalAcquisitionFlags(infoCb2), 0b011); EXPECT_EQ(infoCb3.selector, sel); EXPECT_EQ(getSignalAcquisitionFlags(infoCb3), 0b111); } else { EXPECT_EQ(infoCb1.selector, sel); } } std::shared_ptr<BroadcastRadio> mBroadcastRadioHal; std::shared_ptr<MockBroadcastRadioCallback> mTunerCallback; }; Loading Loading @@ -168,4 +197,53 @@ TEST_F(DefaultBroadcastRadioHalTest, UnsetTunerCallbackWithNull) { ASSERT_TRUE(halResult.isOk()); } TEST_F(DefaultBroadcastRadioHalTest, TuneWithAmFmSelectorInProgramList) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); mTunerCallback->reset(); auto halResult = mBroadcastRadioHal->tune(kFmSel1); ASSERT_TRUE(halResult.isOk()); ASSERT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); ProgramInfo infoCb = mTunerCallback->getCurrentProgramInfo(); EXPECT_EQ(infoCb.selector, kFmSel1); } TEST_F(DefaultBroadcastRadioHalTest, TuneWithHdSelectorInProgramList) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); mTunerCallback->reset(); auto halResult = mBroadcastRadioHal->tune(kFmHdFreq1Sel2); ASSERT_TRUE(halResult.isOk()); verifyUpdatedProgramInfo(kFmHdFreq1Sel2); } TEST_F(DefaultBroadcastRadioHalTest, TuneWitFrequencyOfHdProgramInProgramList) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); mTunerCallback->reset(); auto halResult = mBroadcastRadioHal->tune( utils::makeSelectorAmfm(utils::getHdFrequency(kFmHdFreq1Sel1))); ASSERT_TRUE(halResult.isOk()); verifyUpdatedProgramInfo(kFmHdFreq1Sel1); } TEST_F(DefaultBroadcastRadioHalTest, TuneWithInvalidSelector) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); ProgramSelector invalidSelector = {utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, 0), {}}; auto halResult = mBroadcastRadioHal->tune(invalidSelector); ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_ARGUMENTS)); } TEST_F(DefaultBroadcastRadioHalTest, TuneWithoutTunerCallback) { auto halResult = mBroadcastRadioHal->tune(kFmSel1); ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); } } // namespace aidl::android::hardware::broadcastradio Loading
broadcastradio/aidl/default/test/DefaultBroadcastRadioHalTest.cpp +78 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,13 @@ const VirtualRadio& getAmFmMockTestRadio() { return amFmRadioMockTestRadio; } int getSignalAcquisitionFlags(const ProgramInfo& info) { return (info.infoFlags & (ProgramInfo::FLAG_SIGNAL_ACQUISITION | ProgramInfo::FLAG_HD_SIS_ACQUISITION | ProgramInfo::FLAG_HD_AUDIO_ACQUISITION)) >> 6; } } // namespace class DefaultBroadcastRadioHalTest : public testing::Test { Loading @@ -88,6 +95,28 @@ class DefaultBroadcastRadioHalTest : public testing::Test { EXPECT_FALSE(mTunerCallback->isTunerFailed()); } void verifyUpdatedProgramInfo(const ProgramSelector& sel) { ASSERT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); ProgramInfo infoCb1 = mTunerCallback->getCurrentProgramInfo(); mTunerCallback->reset(); if (sel.primaryId.type == IdentifierType::HD_STATION_ID_EXT) { EXPECT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); ProgramInfo infoCb2 = mTunerCallback->getCurrentProgramInfo(); mTunerCallback->reset(); EXPECT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); ProgramInfo infoCb3 = mTunerCallback->getCurrentProgramInfo(); mTunerCallback->reset(); EXPECT_EQ(infoCb1.selector, sel); EXPECT_EQ(getSignalAcquisitionFlags(infoCb1), 0b001); EXPECT_EQ(infoCb2.selector, sel); EXPECT_EQ(getSignalAcquisitionFlags(infoCb2), 0b011); EXPECT_EQ(infoCb3.selector, sel); EXPECT_EQ(getSignalAcquisitionFlags(infoCb3), 0b111); } else { EXPECT_EQ(infoCb1.selector, sel); } } std::shared_ptr<BroadcastRadio> mBroadcastRadioHal; std::shared_ptr<MockBroadcastRadioCallback> mTunerCallback; }; Loading Loading @@ -168,4 +197,53 @@ TEST_F(DefaultBroadcastRadioHalTest, UnsetTunerCallbackWithNull) { ASSERT_TRUE(halResult.isOk()); } TEST_F(DefaultBroadcastRadioHalTest, TuneWithAmFmSelectorInProgramList) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); mTunerCallback->reset(); auto halResult = mBroadcastRadioHal->tune(kFmSel1); ASSERT_TRUE(halResult.isOk()); ASSERT_TRUE(mTunerCallback->waitOnCurrentProgramInfoChangedCallback()); ProgramInfo infoCb = mTunerCallback->getCurrentProgramInfo(); EXPECT_EQ(infoCb.selector, kFmSel1); } TEST_F(DefaultBroadcastRadioHalTest, TuneWithHdSelectorInProgramList) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); mTunerCallback->reset(); auto halResult = mBroadcastRadioHal->tune(kFmHdFreq1Sel2); ASSERT_TRUE(halResult.isOk()); verifyUpdatedProgramInfo(kFmHdFreq1Sel2); } TEST_F(DefaultBroadcastRadioHalTest, TuneWitFrequencyOfHdProgramInProgramList) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); mTunerCallback->reset(); auto halResult = mBroadcastRadioHal->tune( utils::makeSelectorAmfm(utils::getHdFrequency(kFmHdFreq1Sel1))); ASSERT_TRUE(halResult.isOk()); verifyUpdatedProgramInfo(kFmHdFreq1Sel1); } TEST_F(DefaultBroadcastRadioHalTest, TuneWithInvalidSelector) { ASSERT_TRUE(mBroadcastRadioHal->setTunerCallback(mTunerCallback).isOk()); ProgramSelector invalidSelector = {utils::makeIdentifier(IdentifierType::AMFM_FREQUENCY_KHZ, 0), {}}; auto halResult = mBroadcastRadioHal->tune(invalidSelector); ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_ARGUMENTS)); } TEST_F(DefaultBroadcastRadioHalTest, TuneWithoutTunerCallback) { auto halResult = mBroadcastRadioHal->tune(kFmSel1); ASSERT_EQ(halResult.getServiceSpecificError(), utils::resultToInt(Result::INVALID_STATE)); } } // namespace aidl::android::hardware::broadcastradio