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

Commit 86883f2b authored by Weilin Xu's avatar Weilin Xu
Browse files

Add tests for comparator in AIDL bcradio HAL utils

Added unit tests for comparators of program selector and program
info in utils library for AIDL broadcast radio HAL.

Bug: 310708886
Test: atest broadcastradio_utils_aidl_test
Change-Id: I1a46196f183cb6a0a45342f3bb379900fd049f32
parent a8b00cad
Loading
Loading
Loading
Loading
+76 −0
Original line number Original line Diff line number Diff line
@@ -650,4 +650,80 @@ TEST(BroadcastRadioUtilsTest, SatisfiesWithUnsatisfiedIdsFilter) {
    ASSERT_FALSE(utils::satisfies(filter, sel));
    ASSERT_FALSE(utils::satisfies(filter, sel));
}
}


TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentAmFmFrequencies) {
    ProgramSelector sel1 = utils::makeSelectorAmfm(kHdFrequency - 200);
    ProgramSelector sel2 = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency);

    EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2));
    EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1));
}

TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentAmFmSubChannels) {
    ProgramSelector sel1 = utils::makeSelectorHd(kHdStationId, kHdSubChannel, kHdFrequency);
    ProgramSelector sel2 = utils::makeSelectorHd(kHdStationId, kHdSubChannel + 1, kHdFrequency);

    EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2));
    EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1));
}

TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabFrequencies) {
    ProgramSelector sel1 = utils::makeSelectorDab(kDabSidExt + 100, kDabEnsemble, kDabFrequencyKhz);
    ProgramSelector sel2 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz + 100);

    EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2));
    EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1));
}

TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabEccCode) {
    ProgramSelector sel1 =
            utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz);
    ProgramSelector sel2 =
            utils::makeSelectorDab(/* stationId= */ 0x0E20000C221u, kDabEnsemble, kDabFrequencyKhz);

    EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2));
    EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1));
}

TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabEnsembles) {
    ProgramSelector sel1 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble, kDabFrequencyKhz);
    ProgramSelector sel2 = utils::makeSelectorDab(kDabSidExt, kDabEnsemble + 1, kDabFrequencyKhz);

    EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2));
    EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1));
}

TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabSid) {
    ProgramSelector sel1 =
            utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz);
    ProgramSelector sel2 =
            utils::makeSelectorDab(/* stationId= */ 0x0E10000C222u, kDabEnsemble, kDabFrequencyKhz);

    EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2));
    EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1));
}

TEST(BroadcastRadioUtilsTest, ProgramSelectorComparatorWithDifferentDabSCIdS) {
    ProgramSelector sel1 =
            utils::makeSelectorDab(/* stationId= */ 0x0E10000C221u, kDabEnsemble, kDabFrequencyKhz);
    ProgramSelector sel2 =
            utils::makeSelectorDab(/* stationId= */ 0x1E10000C221u, kDabEnsemble, kDabFrequencyKhz);

    EXPECT_TRUE(utils::ProgramSelectorComparator()(sel1, sel2));
    EXPECT_FALSE(utils::ProgramSelectorComparator()(sel2, sel1));
}

TEST(BroadcastRadioUtilsTest, ProgramInfoComparator) {
    ProgramSelector sel1 = utils::makeSelectorAmfm(kFmFrequencyKHz);
    ProgramSelector sel2 = utils::makeSelectorAmfm(kFmFrequencyKHz + 200);
    ProgramInfo info1 = {.selector = sel1,
                         .logicallyTunedTo = sel1.primaryId,
                         .physicallyTunedTo = sel1.primaryId};
    ProgramInfo info2 = {.selector = sel2,
                         .logicallyTunedTo = sel2.primaryId,
                         .physicallyTunedTo = sel2.primaryId};

    EXPECT_TRUE(utils::ProgramInfoComparator()(info1, info2));
    EXPECT_FALSE(utils::ProgramInfoComparator()(info2, info1));
}

}  // namespace aidl::android::hardware::broadcastradio
}  // namespace aidl::android::hardware::broadcastradio