diff options
author | Mikhail Naganov <mnaganov@google.com> | 2021-03-30 13:44:26 -0700 |
---|---|---|
committer | Mikhail Naganov <mnaganov@google.com> | 2021-03-30 15:53:00 -0700 |
commit | 8fca30025603e1c918a0ecec31e58f235d4afbfb (patch) | |
tree | a53617c54b133647a5a349a0b2310f541cf6f097 /audio/effect/all-versions/default/util/tests/effectutils_tests.cpp | |
parent | 6a022ad1c485f283cc2e138a16fcaa53b016e64c (diff) |
audio: Fix fixed size char array conversions
For legacy HAL strings that are fixed size arrays
the conversion code was using the array size for
the HIDL string size. This lead to logging of error
messages during reverse conversion.
Fixed issue and refactored code to avoid duplication.
Bug: 181269159
Test: atest android.hardware.audio.effect@7.0-util_tests
also, verify that no error messages from EffectUtil
appear during boot and audio playback
Change-Id: Iac36ff33e65c502966ac2b7a4870cb5830545b23
Diffstat (limited to 'audio/effect/all-versions/default/util/tests/effectutils_tests.cpp')
-rw-r--r-- | audio/effect/all-versions/default/util/tests/effectutils_tests.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/audio/effect/all-versions/default/util/tests/effectutils_tests.cpp b/audio/effect/all-versions/default/util/tests/effectutils_tests.cpp index f3651de236..d021fa0b92 100644 --- a/audio/effect/all-versions/default/util/tests/effectutils_tests.cpp +++ b/audio/effect/all-versions/default/util/tests/effectutils_tests.cpp @@ -154,3 +154,20 @@ TEST(EffectUtils, ConvertDescriptor) { EXPECT_EQ(NO_ERROR, EffectUtils::effectDescriptorFromHal(halDesc, &descBack)); EXPECT_EQ(desc, descBack); } + +TEST(EffectUtils, ConvertNameAndImplementor) { + for (size_t i = 0; i < EFFECT_STRING_LEN_MAX; ++i) { + effect_descriptor_t halDesc{}; + for (size_t c = 0; c < i; ++c) { // '<' to accommodate NUL terminator. + halDesc.name[c] = halDesc.implementor[c] = 'A' + static_cast<char>(c); + } + EffectDescriptor desc; + EXPECT_EQ(NO_ERROR, EffectUtils::effectDescriptorFromHal(halDesc, &desc)); + effect_descriptor_t halDescBack; + EXPECT_EQ(NO_ERROR, EffectUtils::effectDescriptorToHal(desc, &halDescBack)); + EXPECT_EQ(i, strlen(halDescBack.name)); + EXPECT_EQ(i, strlen(halDescBack.implementor)); + EXPECT_EQ(0, strcmp(halDesc.name, halDescBack.name)); + EXPECT_EQ(0, strcmp(halDesc.implementor, halDescBack.implementor)); + } +} |