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

Commit 3dfdf37e authored by Mikhail Naganov's avatar Mikhail Naganov Committed by Android (Google) Code Review
Browse files

Merge changes If0d81bb9,I049edd9d,I162ec7f8,I3710c74c,I63511129, ...

* changes:
  Add audio routing tests
  Add unit tests for trackPlayerBase
  Add serialization tests for libaudioclient
  Add audioeffect unit tests
  Add audiotrack unit tests
  Add audiorecord unit tests
  Enable clang format hook for media/libaudioclient/tests
parents 173ed31c 8729d684
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -11,3 +11,4 @@ clang_format = true
clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp
clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp
               media/libmediatranscoding/
               media/libmediatranscoding/
               services/mediatranscoding/
               services/mediatranscoding/
               media/libaudioclient/tests/
+103 −0
Original line number Original line Diff line number Diff line
@@ -93,3 +93,106 @@ cc_test {
    ],
    ],
    data: ["record_test_input_*.txt"],
    data: ["record_test_input_*.txt"],
}
}

cc_defaults {
    name: "libaudioclient_gtests_defaults",
    cflags: [
        "-Wall",
        "-Werror",
    ],
    shared_libs: [
        "capture_state_listener-aidl-cpp",
        "framework-permission-aidl-cpp",
        "libbase",
        "libbinder",
        "libcgrouprc",
        "libcutils",
        "libdl",
        "liblog",
        "libmedia",
        "libmediametrics",
        "libmediautils",
        "libmedia_helper",
        "libnblog",
        "libprocessgroup",
        "libshmemcompat",
        "libstagefright_foundation",
        "libutils",
        "libvibrator",
        "mediametricsservice-aidl-cpp",
        "packagemanager_aidl-cpp",
        "shared-file-region-aidl-cpp",
    ],
    static_libs: [
        "android.hardware.audio.common@7.0-enums",
        "android.media.audio.common.types-V1-cpp",
        "audioclient-types-aidl-cpp",
        "audioflinger-aidl-cpp",
        "audiopolicy-aidl-cpp",
        "audiopolicy-types-aidl-cpp",
        "av-types-aidl-cpp",
        "effect-aidl-cpp",
        "libaudioclient",
        "libaudioclient_aidl_conversion",
        "libaudiofoundation",
        "libaudiomanager",
        "libaudiopolicy",
        "libaudioutils",
    ],
    data: ["bbb*.raw"],
    test_config_template: "audio_test_template.xml",
}

cc_test {
    name: "audiorecord_tests",
    defaults: ["libaudioclient_gtests_defaults"],
    srcs: [
        "audiorecord_tests.cpp",
        "audio_test_utils.cpp",
    ],
}

cc_test {
    name: "audiotrack_tests",
    defaults: ["libaudioclient_gtests_defaults"],
    srcs: [
        "audiotrack_tests.cpp",
        "audio_test_utils.cpp",
    ],
}

cc_test {
    name: "audioeffect_tests",
    defaults: ["libaudioclient_gtests_defaults"],
    srcs: [
        "audioeffect_tests.cpp",
        "audio_test_utils.cpp",
    ],
}

cc_test {
    name: "audiorouting_tests",
    defaults: ["libaudioclient_gtests_defaults"],
    srcs: [
        "audiorouting_tests.cpp",
        "audio_test_utils.cpp",
    ],
    shared_libs: [
        "libxml2",
    ],
}

cc_test {
    name: "audioclient_serialization_tests",
    defaults: ["libaudioclient_gtests_defaults"],
    srcs: [
        "audioclient_serialization_tests.cpp",
        "audio_test_utils.cpp",
    ],
}

cc_test {
    name: "trackplayerbase_tests",
    defaults: ["libaudioclient_gtests_defaults"],
    srcs: ["trackplayerbase_tests.cpp"],
}
+54 −57
Original line number Original line Diff line number Diff line
@@ -16,8 +16,8 @@


#include <gtest/gtest.h>
#include <gtest/gtest.h>


#include <media/AudioCommonTypes.h>
#include <media/AidlConversion.h>
#include <media/AidlConversion.h>
#include <media/AudioCommonTypes.h>


using namespace android;
using namespace android;
using namespace android::aidl_utils;
using namespace android::aidl_utils;
@@ -31,7 +31,8 @@ using media::audio::common::PcmType;


namespace {
namespace {


template<typename T> size_t hash(const T& t) {
template <typename T>
size_t hash(const T& t) {
    return std::hash<T>{}(t);
    return std::hash<T>{}(t);
}
}


@@ -52,10 +53,8 @@ AudioChannelLayout make_ACL_LayoutArbitrary() {
    return AudioChannelLayout::make<AudioChannelLayout::Tag::layoutMask>(
    return AudioChannelLayout::make<AudioChannelLayout::Tag::layoutMask>(
            // Use channels that exist both for input and output,
            // Use channels that exist both for input and output,
            // but doesn't form a known layout mask.
            // but doesn't form a known layout mask.
            AudioChannelLayout::CHANNEL_FRONT_LEFT |
            AudioChannelLayout::CHANNEL_FRONT_LEFT | AudioChannelLayout::CHANNEL_FRONT_RIGHT |
            AudioChannelLayout::CHANNEL_FRONT_RIGHT |
            AudioChannelLayout::CHANNEL_TOP_SIDE_LEFT | AudioChannelLayout::CHANNEL_TOP_SIDE_RIGHT);
            AudioChannelLayout::CHANNEL_TOP_SIDE_LEFT |
            AudioChannelLayout::CHANNEL_TOP_SIDE_RIGHT);
}
}


AudioChannelLayout make_ACL_ChannelIndex2() {
AudioChannelLayout make_ACL_ChannelIndex2() {
@@ -121,8 +120,7 @@ AudioFormatDescription make_AudioFormatDescription(const std::string& encoding)
    return result;
    return result;
}
}


AudioFormatDescription make_AudioFormatDescription(PcmType transport,
AudioFormatDescription make_AudioFormatDescription(PcmType transport, const std::string& encoding) {
        const std::string& encoding) {
    auto result = make_AudioFormatDescription(encoding);
    auto result = make_AudioFormatDescription(encoding);
    result.pcm = transport;
    result.pcm = transport;
    return result;
    return result;
@@ -163,7 +161,8 @@ AudioFormatDescription make_AFD_Encap_with_Enc() {
// is identical to the same format description constructed by the framework.
// is identical to the same format description constructed by the framework.
class HashIdentityTest : public ::testing::Test {
class HashIdentityTest : public ::testing::Test {
  public:
  public:
    template<typename T> void verifyHashIdentity(const std::vector<std::function<T()>>& valueGens) {
    template <typename T>
    void verifyHashIdentity(const std::vector<std::function<T()>>& valueGens) {
        for (size_t i = 0; i < valueGens.size(); ++i) {
        for (size_t i = 0; i < valueGens.size(); ++i) {
            for (size_t j = 0; j < valueGens.size(); ++j) {
            for (size_t j = 0; j < valueGens.size(); ++j) {
                if (i == j) {
                if (i == j) {
@@ -177,27 +176,25 @@ class HashIdentityTest : public ::testing::Test {
};
};


TEST_F(HashIdentityTest, AudioChannelLayoutHashIdentity) {
TEST_F(HashIdentityTest, AudioChannelLayoutHashIdentity) {
    verifyHashIdentity<AudioChannelLayout>({
    verifyHashIdentity<AudioChannelLayout>({make_ACL_None, make_ACL_Invalid, make_ACL_Stereo,
            make_ACL_None, make_ACL_Invalid, make_ACL_Stereo,
                                            make_ACL_LayoutArbitrary, make_ACL_ChannelIndex2,
                                            make_ACL_LayoutArbitrary, make_ACL_ChannelIndex2,
                                            make_ACL_ChannelIndexArbitrary, make_ACL_VoiceCall});
                                            make_ACL_ChannelIndexArbitrary, make_ACL_VoiceCall});
}
}


TEST_F(HashIdentityTest, AudioDeviceDescriptionHashIdentity) {
TEST_F(HashIdentityTest, AudioDeviceDescriptionHashIdentity) {
    verifyHashIdentity<AudioDeviceDescription>({
    verifyHashIdentity<AudioDeviceDescription>({make_ADD_None, make_ADD_DefaultIn,
            make_ADD_None, make_ADD_DefaultIn, make_ADD_DefaultOut, make_ADD_WiredHeadset,
                                                make_ADD_DefaultOut, make_ADD_WiredHeadset,
                                                make_ADD_BtScoHeadset});
                                                make_ADD_BtScoHeadset});
}
}


TEST_F(HashIdentityTest, AudioFormatDescriptionHashIdentity) {
TEST_F(HashIdentityTest, AudioFormatDescriptionHashIdentity) {
    verifyHashIdentity<AudioFormatDescription>({
    verifyHashIdentity<AudioFormatDescription>({make_AFD_Default, make_AFD_Invalid,
            make_AFD_Default, make_AFD_Invalid, make_AFD_Pcm16Bit, make_AFD_Bitstream,
                                                make_AFD_Pcm16Bit, make_AFD_Bitstream,
                                                make_AFD_Encap, make_AFD_Encap_with_Enc});
                                                make_AFD_Encap, make_AFD_Encap_with_Enc});
}
}


using ChannelLayoutParam = std::tuple<AudioChannelLayout, bool /*isInput*/>;
using ChannelLayoutParam = std::tuple<AudioChannelLayout, bool /*isInput*/>;
class AudioChannelLayoutRoundTripTest :
class AudioChannelLayoutRoundTripTest : public testing::TestWithParam<ChannelLayoutParam> {};
        public testing::TestWithParam<ChannelLayoutParam> {};
TEST_P(AudioChannelLayoutRoundTripTest, Aidl2Legacy2Aidl) {
TEST_P(AudioChannelLayoutRoundTripTest, Aidl2Legacy2Aidl) {
    const auto initial = std::get<0>(GetParam());
    const auto initial = std::get<0>(GetParam());
    const bool isInput = std::get<1>(GetParam());
    const bool isInput = std::get<1>(GetParam());
@@ -207,21 +204,20 @@ TEST_P(AudioChannelLayoutRoundTripTest, Aidl2Legacy2Aidl) {
    ASSERT_TRUE(convBack.ok());
    ASSERT_TRUE(convBack.ok());
    EXPECT_EQ(initial, convBack.value());
    EXPECT_EQ(initial, convBack.value());
}
}
INSTANTIATE_TEST_SUITE_P(AudioChannelLayoutRoundTrip,
INSTANTIATE_TEST_SUITE_P(AudioChannelLayoutRoundTrip, AudioChannelLayoutRoundTripTest,
        AudioChannelLayoutRoundTripTest,
                         testing::Combine(testing::Values(AudioChannelLayout{}, make_ACL_Invalid(),
        testing::Combine(
                                                          make_ACL_Stereo(),
                testing::Values(AudioChannelLayout{}, make_ACL_Invalid(), make_ACL_Stereo(),
                                                          make_ACL_LayoutArbitrary(),
                        make_ACL_LayoutArbitrary(), make_ACL_ChannelIndex2(),
                                                          make_ACL_ChannelIndex2(),
                                                          make_ACL_ChannelIndexArbitrary()),
                                                          make_ACL_ChannelIndexArbitrary()),
                                          testing::Values(false, true)));
                                          testing::Values(false, true)));
INSTANTIATE_TEST_SUITE_P(AudioChannelVoiceRoundTrip,
INSTANTIATE_TEST_SUITE_P(AudioChannelVoiceRoundTrip, AudioChannelLayoutRoundTripTest,
        AudioChannelLayoutRoundTripTest,
                         // In legacy constants the voice call is only defined for input.
                         // In legacy constants the voice call is only defined for input.
        testing::Combine(testing::Values(make_ACL_VoiceCall()), testing::Values(true)));
                         testing::Combine(testing::Values(make_ACL_VoiceCall()),
                                          testing::Values(true)));


using ChannelLayoutEdgeCaseParam = std::tuple<int /*legacy*/, bool /*isInput*/, bool /*isValid*/>;
using ChannelLayoutEdgeCaseParam = std::tuple<int /*legacy*/, bool /*isInput*/, bool /*isValid*/>;
class AudioChannelLayoutEdgeCaseTest :
class AudioChannelLayoutEdgeCaseTest : public testing::TestWithParam<ChannelLayoutEdgeCaseParam> {};
        public testing::TestWithParam<ChannelLayoutEdgeCaseParam> {};
TEST_P(AudioChannelLayoutEdgeCaseTest, Legacy2Aidl) {
TEST_P(AudioChannelLayoutEdgeCaseTest, Legacy2Aidl) {
    const audio_channel_mask_t legacy = static_cast<audio_channel_mask_t>(std::get<0>(GetParam()));
    const audio_channel_mask_t legacy = static_cast<audio_channel_mask_t>(std::get<0>(GetParam()));
    const bool isInput = std::get<1>(GetParam());
    const bool isInput = std::get<1>(GetParam());
@@ -229,8 +225,8 @@ TEST_P(AudioChannelLayoutEdgeCaseTest, Legacy2Aidl) {
    auto conv = legacy2aidl_audio_channel_mask_t_AudioChannelLayout(legacy, isInput);
    auto conv = legacy2aidl_audio_channel_mask_t_AudioChannelLayout(legacy, isInput);
    EXPECT_EQ(isValid, conv.ok());
    EXPECT_EQ(isValid, conv.ok());
}
}
INSTANTIATE_TEST_SUITE_P(AudioChannelLayoutEdgeCase,
INSTANTIATE_TEST_SUITE_P(
        AudioChannelLayoutEdgeCaseTest,
        AudioChannelLayoutEdgeCase, AudioChannelLayoutEdgeCaseTest,
        testing::Values(
        testing::Values(
                // Valid legacy input masks.
                // Valid legacy input masks.
                std::make_tuple(AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO, true, true),
                std::make_tuple(AUDIO_CHANNEL_IN_VOICE_UPLINK_MONO, true, true),
@@ -240,25 +236,26 @@ INSTANTIATE_TEST_SUITE_P(AudioChannelLayoutEdgeCase,
                std::make_tuple(
                std::make_tuple(
                        // This has the same numerical representation as Mask 'A' below
                        // This has the same numerical representation as Mask 'A' below
                        AUDIO_CHANNEL_OUT_FRONT_CENTER | AUDIO_CHANNEL_OUT_LOW_FREQUENCY |
                        AUDIO_CHANNEL_OUT_FRONT_CENTER | AUDIO_CHANNEL_OUT_LOW_FREQUENCY |
                        AUDIO_CHANNEL_OUT_TOP_FRONT_RIGHT, false, true),
                                AUDIO_CHANNEL_OUT_TOP_FRONT_RIGHT,
                        false, true),
                std::make_tuple(
                std::make_tuple(
                        // This has the same numerical representation as Mask 'B' below
                        // This has the same numerical representation as Mask 'B' below
                        AUDIO_CHANNEL_OUT_FRONT_CENTER | AUDIO_CHANNEL_OUT_LOW_FREQUENCY |
                        AUDIO_CHANNEL_OUT_FRONT_CENTER | AUDIO_CHANNEL_OUT_LOW_FREQUENCY |
                        AUDIO_CHANNEL_OUT_TOP_BACK_LEFT, false, true),
                                AUDIO_CHANNEL_OUT_TOP_BACK_LEFT,
                        false, true),
                // Invalid legacy input masks.
                // Invalid legacy input masks.
                std::make_tuple(AUDIO_CHANNEL_IN_6, true, false),
                std::make_tuple(AUDIO_CHANNEL_IN_6, true, false),
                std::make_tuple(
                std::make_tuple(AUDIO_CHANNEL_IN_6 | AUDIO_CHANNEL_IN_FRONT_PROCESSED, true, false),
                        AUDIO_CHANNEL_IN_6 | AUDIO_CHANNEL_IN_FRONT_PROCESSED, true, false),
                std::make_tuple(AUDIO_CHANNEL_IN_PRESSURE | AUDIO_CHANNEL_IN_X_AXIS |
                std::make_tuple(
                                        AUDIO_CHANNEL_IN_Y_AXIS | AUDIO_CHANNEL_IN_Z_AXIS,
                        AUDIO_CHANNEL_IN_PRESSURE | AUDIO_CHANNEL_IN_X_AXIS |
                                true, false),
                        AUDIO_CHANNEL_IN_Y_AXIS | AUDIO_CHANNEL_IN_Z_AXIS, true, false),
                std::make_tuple(  // Mask 'A'
                std::make_tuple(  // Mask 'A'
                        AUDIO_CHANNEL_IN_STEREO | AUDIO_CHANNEL_IN_VOICE_UPLINK, true, false),
                        AUDIO_CHANNEL_IN_STEREO | AUDIO_CHANNEL_IN_VOICE_UPLINK, true, false),
                std::make_tuple(  // Mask 'B'
                std::make_tuple(  // Mask 'B'
                        AUDIO_CHANNEL_IN_STEREO | AUDIO_CHANNEL_IN_VOICE_DNLINK, true, false)));
                        AUDIO_CHANNEL_IN_STEREO | AUDIO_CHANNEL_IN_VOICE_DNLINK, true, false)));


class AudioDeviceDescriptionRoundTripTest :
class AudioDeviceDescriptionRoundTripTest : public testing::TestWithParam<AudioDeviceDescription> {
        public testing::TestWithParam<AudioDeviceDescription> {};
};
TEST_P(AudioDeviceDescriptionRoundTripTest, Aidl2Legacy2Aidl) {
TEST_P(AudioDeviceDescriptionRoundTripTest, Aidl2Legacy2Aidl) {
    const auto initial = GetParam();
    const auto initial = GetParam();
    auto conv = aidl2legacy_AudioDeviceDescription_audio_devices_t(initial);
    auto conv = aidl2legacy_AudioDeviceDescription_audio_devices_t(initial);
@@ -267,13 +264,13 @@ TEST_P(AudioDeviceDescriptionRoundTripTest, Aidl2Legacy2Aidl) {
    ASSERT_TRUE(convBack.ok());
    ASSERT_TRUE(convBack.ok());
    EXPECT_EQ(initial, convBack.value());
    EXPECT_EQ(initial, convBack.value());
}
}
INSTANTIATE_TEST_SUITE_P(AudioDeviceDescriptionRoundTrip,
INSTANTIATE_TEST_SUITE_P(AudioDeviceDescriptionRoundTrip, AudioDeviceDescriptionRoundTripTest,
        AudioDeviceDescriptionRoundTripTest,
                         testing::Values(AudioDeviceDescription{}, make_ADD_DefaultIn(),
                         testing::Values(AudioDeviceDescription{}, make_ADD_DefaultIn(),
                make_ADD_DefaultOut(), make_ADD_WiredHeadset(), make_ADD_BtScoHeadset()));
                                         make_ADD_DefaultOut(), make_ADD_WiredHeadset(),
                                         make_ADD_BtScoHeadset()));


class AudioFormatDescriptionRoundTripTest :
class AudioFormatDescriptionRoundTripTest : public testing::TestWithParam<AudioFormatDescription> {
        public testing::TestWithParam<AudioFormatDescription> {};
};
TEST_P(AudioFormatDescriptionRoundTripTest, Aidl2Legacy2Aidl) {
TEST_P(AudioFormatDescriptionRoundTripTest, Aidl2Legacy2Aidl) {
    const auto initial = GetParam();
    const auto initial = GetParam();
    auto conv = aidl2legacy_AudioFormatDescription_audio_format_t(initial);
    auto conv = aidl2legacy_AudioFormatDescription_audio_format_t(initial);
@@ -282,6 +279,6 @@ TEST_P(AudioFormatDescriptionRoundTripTest, Aidl2Legacy2Aidl) {
    ASSERT_TRUE(convBack.ok());
    ASSERT_TRUE(convBack.ok());
    EXPECT_EQ(initial, convBack.value());
    EXPECT_EQ(initial, convBack.value());
}
}
INSTANTIATE_TEST_SUITE_P(AudioFormatDescriptionRoundTrip,
INSTANTIATE_TEST_SUITE_P(AudioFormatDescriptionRoundTrip, AudioFormatDescriptionRoundTripTest,
        AudioFormatDescriptionRoundTripTest,
                         testing::Values(make_AFD_Invalid(), AudioFormatDescription{},
        testing::Values(make_AFD_Invalid(), AudioFormatDescription{}, make_AFD_Pcm16Bit()));
                                         make_AFD_Pcm16Bit()));
+21 −54
Original line number Original line Diff line number Diff line
@@ -37,25 +37,10 @@ TEST(audio_aidl_status_tests, statusRoundTripSmallValues) {


// Special status values are preserved on round trip.
// Special status values are preserved on round trip.
TEST(audio_aidl_status_tests, statusRoundTripSpecialValues) {
TEST(audio_aidl_status_tests, statusRoundTripSpecialValues) {
    for (status_t status : {
    for (status_t status :
            OK,
         {OK, UNKNOWN_ERROR, NO_MEMORY, INVALID_OPERATION, BAD_VALUE, BAD_TYPE, NAME_NOT_FOUND,
            UNKNOWN_ERROR,
          PERMISSION_DENIED, NO_INIT, ALREADY_EXISTS, DEAD_OBJECT, FAILED_TRANSACTION, BAD_INDEX,
            NO_MEMORY,
          NOT_ENOUGH_DATA, WOULD_BLOCK, TIMED_OUT, UNKNOWN_TRANSACTION, FDS_NOT_ALLOWED}) {
            INVALID_OPERATION,
            BAD_VALUE,
            BAD_TYPE,
            NAME_NOT_FOUND,
            PERMISSION_DENIED,
            NO_INIT,
            ALREADY_EXISTS,
            DEAD_OBJECT,
            FAILED_TRANSACTION,
            BAD_INDEX,
            NOT_ENOUGH_DATA,
            WOULD_BLOCK,
            TIMED_OUT,
            UNKNOWN_TRANSACTION,
            FDS_NOT_ALLOWED}) {
        ASSERT_EQ(status, statusTFromBinderStatus(binderStatusFromStatusT(status)));
        ASSERT_EQ(status, statusTFromBinderStatus(binderStatusFromStatusT(status)));
    }
    }
}
}
@@ -64,12 +49,8 @@ TEST(audio_aidl_status_tests, statusRoundTripSpecialValues) {
TEST(audio_aidl_status_tests, binderStatusExceptions) {
TEST(audio_aidl_status_tests, binderStatusExceptions) {
    for (int exceptionCode : {
    for (int exceptionCode : {
                 // Status::EX_NONE,
                 // Status::EX_NONE,
            Status::EX_SECURITY,
                 Status::EX_SECURITY, Status::EX_BAD_PARCELABLE, Status::EX_ILLEGAL_ARGUMENT,
            Status::EX_BAD_PARCELABLE,
                 Status::EX_NULL_POINTER, Status::EX_ILLEGAL_STATE, Status::EX_NETWORK_MAIN_THREAD,
            Status::EX_ILLEGAL_ARGUMENT,
            Status::EX_NULL_POINTER,
            Status::EX_ILLEGAL_STATE,
            Status::EX_NETWORK_MAIN_THREAD,
                 Status::EX_UNSUPPORTED_OPERATION,
                 Status::EX_UNSUPPORTED_OPERATION,
                 // Status::EX_SERVICE_SPECIFIC, -- tested fromServiceSpecificError()
                 // Status::EX_SERVICE_SPECIFIC, -- tested fromServiceSpecificError()
                 Status::EX_PARCELABLE,
                 Status::EX_PARCELABLE,
@@ -85,25 +66,11 @@ TEST(audio_aidl_status_tests, binderStatusExceptions) {


// Binder transaction errors show exactly in status_t; these come fromStatusT().
// Binder transaction errors show exactly in status_t; these come fromStatusT().
TEST(audio_aidl_status_tests, binderStatusTransactionError) {
TEST(audio_aidl_status_tests, binderStatusTransactionError) {
    for (status_t status : {
    for (status_t status :
            OK, // Note: fromStatusT does check if this is 0, so this is no error.
         {OK,  // Note: fromStatusT does check if this is 0, so this is no error.
            UNKNOWN_ERROR,
          UNKNOWN_ERROR, NO_MEMORY, INVALID_OPERATION, BAD_VALUE, BAD_TYPE, NAME_NOT_FOUND,
            NO_MEMORY,
          PERMISSION_DENIED, NO_INIT, ALREADY_EXISTS, DEAD_OBJECT, FAILED_TRANSACTION, BAD_INDEX,
            INVALID_OPERATION,
          NOT_ENOUGH_DATA, WOULD_BLOCK, TIMED_OUT, UNKNOWN_TRANSACTION, FDS_NOT_ALLOWED}) {
            BAD_VALUE,
            BAD_TYPE,
            NAME_NOT_FOUND,
            PERMISSION_DENIED,
            NO_INIT,
            ALREADY_EXISTS,
            DEAD_OBJECT,
            FAILED_TRANSACTION,
            BAD_INDEX,
            NOT_ENOUGH_DATA,
            WOULD_BLOCK,
            TIMED_OUT,
            UNKNOWN_TRANSACTION,
            FDS_NOT_ALLOWED}) {
        ASSERT_EQ(status, statusTFromBinderStatus(Status::fromStatusT(status)));
        ASSERT_EQ(status, statusTFromBinderStatus(Status::fromStatusT(status)));
    }
    }
}
}
+32 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2022 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the"License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an"AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<configuration description="Unit test configuration for {MODULE}">
    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer" />

    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
        <option name="cleanup" value="true" />
        <option name="push-file" key="{MODULE}" value="/data/local/tmp/{MODULE}" />

        <!-- Files used for audio testing -->
        <option name="push-file" key="bbb_1ch_8kHz_s16le.raw" value="/data/local/tmp/bbb_1ch_8kHz_s16le.raw" />
        <option name="push-file" key="bbb_2ch_24kHz_s16le.raw" value="/data/local/tmp/bbb_2ch_24kHz_s16le.raw" />
    </target_preparer>

    <test class="com.android.tradefed.testtype.GTest" >
        <option name="native-test-device-path" value="/data/local/tmp" />
        <option name="module-name" value="{MODULE}" />
    </test>
</configuration>
Loading