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

Commit 7541cff9 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix VTS issue of BroadcastRadio v2.0" am: a66dbdef

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I3e9b7fe91c5a8d05ab9d77f8f43d1e0468a2a449
parents 64e8e729 a66dbdef
Loading
Loading
Loading
Loading
+56 −0
Original line number Diff line number Diff line
@@ -485,6 +485,50 @@ TEST_P(BroadcastRadioHalTest, TuneFailsWithInvalid) {
    }
}

/**
 * Test tuning with DAB selector.
 *
 * Verifies that:
 *  - if DAB selector is not supported, the method returns NOT_SUPPORTED;
 *  - if it is supported, the method succeeds;
 *  - after a successful tune call, onCurrentProgramInfoChanged callback is
 *    invoked carrying a proper selector;
 *  - program changes exactly to what was requested.
 */
TEST_F(BroadcastRadioHalTest, DabTune) {
    ASSERT_TRUE(openSession());

    ProgramSelector sel = {};
    uint64_t freq = 178352;
    sel.primaryId = make_identifier(IdentifierType::DAB_FREQUENCY,freq);

    std::this_thread::sleep_for(gTuneWorkaround);

    // try tuning
    ProgramInfo infoCb = {};
    EXPECT_TIMEOUT_CALL(*mCallback, onCurrentProgramInfoChanged_,
                        InfoHasId(utils::make_identifier(IdentifierType::DAB_FREQUENCY, freq)))
        .Times(AnyNumber())
        .WillOnce(DoAll(SaveArg<0>(&infoCb), testing::Return(ByMove(Void()))));
    auto result = mSession->tune(sel);

    // expect a failure if it's not supported
    if (!utils::isSupported(mProperties, sel)) {
        EXPECT_EQ(Result::NOT_SUPPORTED, result);
        return;
    }

    // expect a callback if it succeeds
    EXPECT_EQ(Result::OK, result);
    EXPECT_TIMEOUT_CALL_WAIT(*mCallback, onCurrentProgramInfoChanged_, timeout::tune);

    LOG(DEBUG) << "current program info: " << toString(infoCb);

    // it should tune exactly to what was requested
    auto freqs = utils::getAllIds(infoCb.selector, IdentifierType::DAB_FREQUENCY);
    EXPECT_NE(freqs.end(), find(freqs.begin(), freqs.end(), freq));
}

/**
 * Test tuning with empty program selector.
 *
@@ -516,6 +560,12 @@ TEST_P(BroadcastRadioHalTest, Seek) {

    EXPECT_TIMEOUT_CALL(*mCallback, onCurrentProgramInfoChanged_, _).Times(AnyNumber());
    auto result = mSession->scan(true /* up */, true /* skip subchannel */);

    if (result == Result::NOT_SUPPORTED) {
        printSkipped("seek not supported");
        return;
    }

    EXPECT_EQ(Result::OK, result);
    EXPECT_TIMEOUT_CALL_WAIT(*mCallback, onCurrentProgramInfoChanged_, timeout::tune);

@@ -565,6 +615,12 @@ TEST_P(BroadcastRadioHalTest, Cancel) {

    for (int i = 0; i < 10; i++) {
        auto result = mSession->scan(true /* up */, true /* skip subchannel */);

        if (result == Result::NOT_SUPPORTED) {
            printSkipped("cancel is skipped because of seek not supported");
            return;
        }

        ASSERT_EQ(Result::OK, result);

        auto cancelResult = mSession->cancel();