diff options
author | Netajee Shubash Chand Miriyala <netajeeshubashchand.miriyala@gm.com> | 2023-01-09 19:22:28 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-01-09 19:22:28 +0000 |
commit | c9fa6a8ef30704714ef1affda40e43187f7acda2 (patch) | |
tree | 0ddac805bd615804ab034628b8ca2984c94f065d | |
parent | 3e1907ae4a0aa7031b22467ca761feb452b5d732 (diff) | |
parent | 58eeec592550d9008f381eef4706f183ab0a1bc2 (diff) |
Fix: BroadcastradioHalTest.DabTune case failure am: 58eeec5925
Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2379191
Change-Id: I077044dd855a3b090e63c8f625e72344f6756130
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | broadcastradio/2.0/vts/OWNERS | 4 | ||||
-rw-r--r-- | broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp | 43 |
2 files changed, 43 insertions, 4 deletions
diff --git a/broadcastradio/2.0/vts/OWNERS b/broadcastradio/2.0/vts/OWNERS index 1ff740712c..eb030525f3 100644 --- a/broadcastradio/2.0/vts/OWNERS +++ b/broadcastradio/2.0/vts/OWNERS @@ -1,6 +1,6 @@ # Automotive team -egranata@google.com -twasilczyk@google.com +xuweilin@google.com +oscarazu@google.com # VTS team dshi@google.com diff --git a/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp b/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp index 615fde0343..63e3b554dd 100644 --- a/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp +++ b/broadcastradio/2.0/vts/functional/VtsHalBroadcastradioV2_0TargetTest.cpp @@ -514,9 +514,48 @@ TEST_P(BroadcastRadioHalTest, DabTune) { ASSERT_TRUE(openSession()); + auto programList = getProgramList(); + + if (!programList) { + printSkipped("Empty Station-List, tune cannot be performed"); + return; + } + ProgramSelector sel = {}; - uint64_t freq = config[config.size() / 2].frequency; - sel.primaryId = make_identifier(IdentifierType::DAB_FREQUENCY,freq); + uint64_t freq = 0; + bool dabStnPresent = false; + + for (auto&& programInfo : *programList) { + if (utils::hasId(programInfo.selector, IdentifierType::DAB_FREQUENCY)) { + for (auto&& config_entry : config) { + if (config_entry.frequency == utils::getId(programInfo.selector, + IdentifierType::DAB_FREQUENCY, 0)) { + freq = config_entry.frequency; + break; + } + } + // Do not trigger a tune request if the programList entry does not contain + // a valid DAB frequency + if (freq == 0) { + continue; + } + uint64_t dabSidExt = utils::getId(programInfo.selector, IdentifierType::DAB_SID_EXT, 0); + uint64_t dabEns = utils::getId(programInfo.selector, IdentifierType::DAB_ENSEMBLE, 0); + sel.primaryId = make_identifier(IdentifierType::DAB_SID_EXT, dabSidExt); + hidl_vec<ProgramIdentifier> secondaryIds = { + make_identifier(IdentifierType::DAB_ENSEMBLE, dabEns), + make_identifier(IdentifierType::DAB_FREQUENCY, freq) + }; + sel.secondaryIds = secondaryIds; + dabStnPresent = true; + break; + } + } + + if (!dabStnPresent) { + printSkipped("No DAB stations in the list, tune cannot be performed"); + return; + } std::this_thread::sleep_for(gTuneWorkaround); |