Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1a1fce1 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11401641 from 7bce2972 to 24Q2-release

Change-Id: I1b78c6a2d420a8418b8d1d3da81ce14ce1d9da69
parents ef4fd72b 7bce2972
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
{
  "postsubmit": [
  "presubmit": [
    {
      "name": "broadcastradio_utils_aidl_test"
    },
+102 −0
Original line number Diff line number Diff line
@@ -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