@@ -954,6 +954,18 @@ TEST(HidlUtils, ConvertAudioPortConfig) {
954
954
EXPECT_TRUE (audio_port_configs_are_equal (&halConfig, &halConfigBack));
955
955
}
956
956
957
+ static AudioProfile generateValidAudioProfile () {
958
+ AudioProfile profile;
959
+ profile.format = toString (xsd::AudioFormat::AUDIO_FORMAT_PCM_16_BIT);
960
+ profile.sampleRates .resize (2 );
961
+ profile.sampleRates [0 ] = 44100 ;
962
+ profile.sampleRates [1 ] = 48000 ;
963
+ profile.channelMasks .resize (2 );
964
+ profile.channelMasks [0 ] = toString (xsd::AudioChannelMask::AUDIO_CHANNEL_OUT_MONO);
965
+ profile.channelMasks [1 ] = toString (xsd::AudioChannelMask::AUDIO_CHANNEL_OUT_STEREO);
966
+ return profile;
967
+ }
968
+
957
969
TEST (HidlUtils, ConvertInvalidAudioTransports) {
958
970
hidl_vec<AudioTransport> invalid;
959
971
struct audio_port_v7 halInvalid = {};
@@ -973,20 +985,32 @@ TEST(HidlUtils, ConvertInvalidAudioTransports) {
973
985
invalid[0 ].audioCapability .edid (hidl_vec<uint8_t >(EXTRA_AUDIO_DESCRIPTOR_SIZE + 1 ));
974
986
invalid[1 ].encapsulationType = " random string" ;
975
987
EXPECT_EQ (BAD_VALUE, HidlUtils::audioTransportsToHal (invalid, &halInvalid));
988
+
989
+ // The size of audio profile must not be greater than the maximum value.
990
+ invalid.resize (0 );
991
+ invalid.resize (AUDIO_PORT_MAX_AUDIO_PROFILES + 1 );
992
+ for (size_t i = 0 ; i < invalid.size (); ++i) {
993
+ invalid[i].audioCapability .profile (generateValidAudioProfile ());
994
+ invalid[i].encapsulationType =
995
+ toString (xsd::AudioEncapsulationType::AUDIO_ENCAPSULATION_TYPE_NONE);
996
+ }
997
+ EXPECT_EQ (BAD_VALUE, HidlUtils::audioTransportsToHal (invalid, &halInvalid));
998
+
999
+ // The size of extra audio descriptors must not be greater than the maximum value.
1000
+ invalid.resize (0 );
1001
+ invalid.resize (AUDIO_PORT_MAX_EXTRA_AUDIO_DESCRIPTORS + 1 );
1002
+ for (size_t i = 0 ; i < invalid.size (); ++i) {
1003
+ invalid[i].audioCapability .edid ({0x11 , 0x06 , 0x01 });
1004
+ invalid[i].encapsulationType =
1005
+ toString (xsd::AudioEncapsulationType::AUDIO_ENCAPSULATION_TYPE_IEC61937);
1006
+ }
1007
+ EXPECT_EQ (BAD_VALUE, HidlUtils::audioTransportsToHal (invalid, &halInvalid));
976
1008
}
977
1009
978
1010
TEST (HidlUtils, ConvertAudioTransports) {
979
1011
hidl_vec<AudioTransport> transports;
980
1012
transports.resize (2 );
981
- AudioProfile profile;
982
- profile.format = toString (xsd::AudioFormat::AUDIO_FORMAT_PCM_16_BIT);
983
- profile.sampleRates .resize (2 );
984
- profile.sampleRates [0 ] = 44100 ;
985
- profile.sampleRates [1 ] = 48000 ;
986
- profile.channelMasks .resize (2 );
987
- profile.channelMasks [0 ] = toString (xsd::AudioChannelMask::AUDIO_CHANNEL_OUT_MONO);
988
- profile.channelMasks [1 ] = toString (xsd::AudioChannelMask::AUDIO_CHANNEL_OUT_STEREO);
989
- transports[0 ].audioCapability .profile (profile);
1013
+ transports[0 ].audioCapability .profile (generateValidAudioProfile ());
990
1014
hidl_vec<uint8_t > shortAudioDescriptor ({0x11 , 0x06 , 0x01 });
991
1015
transports[0 ].encapsulationType =
992
1016
toString (xsd::AudioEncapsulationType::AUDIO_ENCAPSULATION_TYPE_NONE);
0 commit comments