mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 22:04:26 +00:00
audio: Fix some VTS issues on real devices
1. Skip testing of stream I/O on certain types of mix ports. 2. Skip testing of connection of BT SCO device. Bug: 300735639 Bug: 326888356 Bug: 328010709 Bug: 331516432 Test: atest VtsHalAudioCoreTargetTest (cherry picked from https://android-review.googlesource.com/q/commit:69d60aa02ccb1fd744750eaa929264b7b433956e) Merged-In: I9b8bbf2014e223375c8f8400ff2af32268803706 Change-Id: I9b8bbf2014e223375c8f8400ff2af32268803706
This commit is contained in:
committed by
Android Build Coastguard Worker
parent
260865ba1e
commit
a043ca88c4
@@ -56,6 +56,7 @@
|
||||
using namespace android;
|
||||
using aidl::android::hardware::audio::common::AudioOffloadMetadata;
|
||||
using aidl::android::hardware::audio::common::getChannelCount;
|
||||
using aidl::android::hardware::audio::common::isAnyBitPositionFlagSet;
|
||||
using aidl::android::hardware::audio::common::isBitPositionFlagSet;
|
||||
using aidl::android::hardware::audio::common::isTelephonyDeviceType;
|
||||
using aidl::android::hardware::audio::common::isValidAudioMode;
|
||||
@@ -85,6 +86,7 @@ using aidl::android::media::audio::common::AudioDeviceDescription;
|
||||
using aidl::android::media::audio::common::AudioDeviceType;
|
||||
using aidl::android::media::audio::common::AudioDualMonoMode;
|
||||
using aidl::android::media::audio::common::AudioFormatType;
|
||||
using aidl::android::media::audio::common::AudioInputFlags;
|
||||
using aidl::android::media::audio::common::AudioIoFlags;
|
||||
using aidl::android::media::audio::common::AudioLatencyMode;
|
||||
using aidl::android::media::audio::common::AudioMMapPolicy;
|
||||
@@ -1749,8 +1751,13 @@ TEST_P(AudioCoreModule, TryConnectMissingDevice) {
|
||||
for (const auto& port : ports) {
|
||||
// Virtual devices may not require external hardware and thus can always be connected.
|
||||
if (port.ext.get<AudioPortExt::device>().device.type.connection ==
|
||||
AudioDeviceDescription::CONNECTION_VIRTUAL)
|
||||
AudioDeviceDescription::CONNECTION_VIRTUAL ||
|
||||
// SCO devices are handled at low level by DSP, may not be able to check actual
|
||||
// connection.
|
||||
port.ext.get<AudioPortExt::device>().device.type.connection ==
|
||||
AudioDeviceDescription::CONNECTION_BT_SCO) {
|
||||
continue;
|
||||
}
|
||||
AudioPort portWithData = GenerateUniqueDeviceAddress(port), connectedPort;
|
||||
ScopedAStatus status = module->connectExternalDevice(portWithData, &connectedPort);
|
||||
EXPECT_STATUS(EX_ILLEGAL_STATE, status) << "static port " << portWithData.toString();
|
||||
@@ -3780,6 +3787,19 @@ class AudioStreamIo : public AudioCoreModuleBase,
|
||||
}
|
||||
for (const auto& portConfig : allPortConfigs) {
|
||||
SCOPED_TRACE(portConfig.toString());
|
||||
// Certain types of ports can not be used without special preconditions.
|
||||
if ((IOTraits<Stream>::is_input &&
|
||||
isAnyBitPositionFlagSet(
|
||||
portConfig.flags.value().template get<AudioIoFlags::Tag::input>(),
|
||||
{AudioInputFlags::MMAP_NOIRQ, AudioInputFlags::VOIP_TX,
|
||||
AudioInputFlags::HW_HOTWORD})) ||
|
||||
(!IOTraits<Stream>::is_input &&
|
||||
isAnyBitPositionFlagSet(
|
||||
portConfig.flags.value().template get<AudioIoFlags::Tag::output>(),
|
||||
{AudioOutputFlags::MMAP_NOIRQ, AudioOutputFlags::VOIP_RX,
|
||||
AudioOutputFlags::COMPRESS_OFFLOAD, AudioOutputFlags::INCALL_MUSIC}))) {
|
||||
continue;
|
||||
}
|
||||
const bool isNonBlocking =
|
||||
IOTraits<Stream>::is_input
|
||||
? false
|
||||
|
||||
Reference in New Issue
Block a user