• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  *
4  * HDF is dual licensed: you can use it either under the terms of
5  * the GPL, or the BSD license, at your option.
6  * See the LICENSE file in the root of this repository for complete details.
7  */
8 
9 #include "hdf_log.h"
10 #include "audio_host_test.h"
11 #include "audio_core_test.h"
12 #include "audio_parse_test.h"
13 #include "audio_sapm_test.h"
14 #include "audio_dai_base_test.h"
15 #include "audio_dma_base_test.h"
16 #include "audio_dsp_base_test.h"
17 #include "audio_codec_base_test.h"
18 #include "audio_platform_base_test.h"
19 #include "audio_accessory_base_test.h"
20 #include "hdf_audio_test.h"
21 
22 #define HDF_LOG_TAG hdf_audio_test
23 
24 // add test case entry
25 static HdfTestCaseList g_hdfAudioTestCaseList[] = {
26     {AUDIO_ADM_TEST_AUDIOHOSTCREATEANDBIND, AudioHostCreateAndBindTest},           // audio ADM audio_host
27     {AUDIO_ADM_TEST_GETCARDINSTANCE, GetCardInstanceTest},                           // audio ADM audio_host
28 
29     {AUDIO_ADM_TEST_AUDIOFILLCONFIGDATA, AudioFillConfigDataTest},                   // audio ADM audio_parse
30     {AUDIO_ADM_TEST_CODECGETREGCONFIG, CodecGetRegConfigTest},                      // audio ADM audio_parse
31 
32     {AUDIO_ADM_TEST_AUDIODEVICEREADREG, AudioDeviceReadRegTest},                     // audio ADM audio_core
33     {AUDIO_ADM_TEST_AUDIODEVICEWRITEREG, AudioDeviceWriteRegTest},                   // audio ADM audio_core
34     {AUDIO_ADM_TEST_AUDIOSOCREGISTERPLATFORM, AudioSocRegisterPlatformTest},         // audio ADM audio_core
35     {AUDIO_ADM_TEST_AUDIOSOCREGISTERDAI, AudioSocRegisterDaiTest},                   // audio ADM audio_core
36     {AUDIO_ADM_TEST_AUDIOREGISTERDSP, AudioRegisterDspTest},                         // audio ADM audio_core
37     {AUDIO_ADM_TEST_AUDIOREGISTERCODEC, AudioRegisterCodecTest},                     // audio ADM audio_core
38     {AUDIO_ADM_TEST_AUDIOREGISTERACCESSORY, AudioRegisterAccessoryTest},             // audio ADM audio_core
39     {AUDIO_ADM_TEST_AUDIOBINDDAILINK, AudioBindDaiLinkTest},                         // audio ADM audio_core
40     {AUDIO_ADM_TEST_AUDIOUPDATECODECREGBITS, AudioUpdateCodecRegBitsTest},           // audio ADM audio_core
41     {AUDIO_ADM_TEST_AUDIOUPDATEACCESSORYREGBITS, AudioUpdateAccessoryRegBitsTest},   // audio ADM audio_core
42     {AUDIO_ADM_TEST_AUDIOUPDATEDAIREGBITS, AudioUpdateDaiRegBitsTest},               // audio ADM audio_core
43     {AUDIO_ADM_TEST_AUDIOKCONTROLGETCPUDAI, AudioKcontrolGetCpuDaiTest},             // audio ADM audio_core
44     {AUDIO_ADM_TEST_AUDIOKCONTROLGETCODEC, AudioKcontrolGetCodecTest},               // audio ADM audio_core
45     {AUDIO_ADM_TEST_AUDIOKCONTROLGETACCESSORY, AudioKcontrolGetAccessoryTest},       // audio ADM audio_core
46     {AUDIO_ADM_TEST_AUDIOADDCONTROLS, AudioAddControlsTest},                         // audio ADM audio_core
47     {AUDIO_ADM_TEST_AUDIOADDCONTROL, AudioAddControlTest},                           // audio ADM audio_core
48     {AUDIO_ADM_TEST_AUDIOGETCTRLOPSRREG, AudioGetCtrlOpsRRegTest},                   // audio ADM audio_core
49     {AUDIO_ADM_TEST_AUDIOGETCTRLOPSREG, AudioGetCtrlOpsRegTest},                     // audio ADM audio_core
50     {AUDIO_ADM_TEST_AUDIOSETCTRLOPSREG, AudioSetCtrlOpsRegTest},                     // audio ADM audio_core
51     {AUDIO_ADM_TEST_AUDIOSETCTRLOPSRREG, AudioSetCtrlOpsRRegTest},                   // audio ADM audio_core
52     {AUDIO_ADM_TEST_AUDIODAIREADREG, AudioDaiReadRegTest},                           // audio ADM audio_core
53     {AUDIO_ADM_TEST_AUDIODAIWRITEREG, AudioDaiWriteRegTest},                         // audio ADM audio_core
54     {AUDIO_ADM_TEST_AUDIOCODECREADREG, AudioCodecReadRegTest},                       // audio ADM audio_core
55     {AUDIO_ADM_TEST_AUDIOCODECWRITEREG, AudioCodecWriteRegTest},                     // audio ADM audio_core
56     {AUDIO_ADM_TEST_AUDIOACCESSORYREADREG, AudioAccessoryReadRegTest},               // audio ADM audio_core
57     {AUDIO_ADM_TEST_AUDIOACCESSORYWRITEREG, AudioAccessoryWriteRegTest},             // audio ADM audio_core
58     {AUDIO_ADM_TEST_AUDIOINFOCTRLOPS, AudioInfoCtrlOpsTest},                         // audio ADM audio_core
59     {AUDIO_ADM_TEST_AUDIOCODECGETCTRLOPS, AudioCodecGetCtrlOpsTest},                 // audio ADM audio_core
60     {AUDIO_ADM_TEST_AUDIOCODECSETCTRLOPS, AudioCodecSetCtrlOpsTest},                 // audio ADM audio_core
61     {AUDIO_ADM_TEST_AUDIOACCESSORYGETCTRLOPS, AudioAccessoryGetCtrlOpsTest},         // audio ADM audio_core
62     {AUDIO_ADM_TEST_AUDIOACCESSORYSETCTRLOPS, AudioAccessorySetCtrlOpsTset},         // audio ADM audio_core
63     {AUDIO_ADM_TEST_AUDIOCPUDAISETCTRLOPS, AudioCpuDaiSetCtrlOpsTest},               // audio ADM audio_core
64     {AUDIO_ADM_TEST_AUDIOCPUDAIGETCTRLOPS, AudioCpuDaiGetCtrlOpsTest},               // audio ADM audio_core
65 
66     {AUDIO_ADM_TEST_AUDIOSAPMNEWCOMPONENTS, AudioSapmNewComponentsTest},             // audio ADM audio_sapm
67     {AUDIO_ADM_TEST_AUDIOSAPMADDROUTES, AudioSapmAddRoutesTest},                     // audio ADM audio_sapm
68     {AUDIO_ADM_TEST_AUDIOSAPMNEWCONTROLS, AudioSapmNewControlsTest},                 // audio ADM audio_sapm
69     {AUDIO_ADM_TEST_AUDIOSAPMSLEEP, AudioSapmSleepTest},                             // audio ADM audio_sapm
70     {AUDIO_ADM_TEST_AUDIOSAMPPOWERUP, AudioSampPowerUpTest},                         // audio ADM audio_sapm
71     {AUDIO_ADM_TEST_AUDIOSAMPSETPOWERMONITOR, AudioSampSetPowerMonitorTest},         // audio ADM audio_sapm
72     {AUDIO_ADM_TEST_AUDIOCODECSAPMSETCTRLOPS, AudioCodecSapmSetCtrlOpsTest},         // audio ADM audio_sapm
73     {AUDIO_ADM_TEST_AUDIOCODECSAPMGETCTRLOPS, AudioCodecSapmGetCtrlOpsTest},         // audio ADM audio_sapm
74     {AUDIO_ADM_TEST_AUDIOACCESSORYSAPMSETCTRLOPS, AudioAccessorySapmSetCtrlOpsTest}, // audio ADM audio_sapm
75     {AUDIO_ADM_TEST_AUDIOACCESSORYSAPMGETCTRLOPS, AudioAccessorySapmGetCtrlOpsTest}, // audio ADM audio_sapm
76 
77     {AUDIO_ADM_TEST_I2CREADWRITE, AccessoryI2cReadWriteTest},
78     {AUDIO_ADM_TEST_REGBITSREAD, AccessoryRegBitsReadTest},
79     {AUDIO_ADM_TEST_REGBITSUPDATE, AccessoryRegBitsUpdateTest},
80     {AUDIO_ADM_TEST_DEVICEFREQUENCYPARSE, AcessoryDeviceFrequencyParseTest},
81     {AUDIO_ADM_TEST_DAIPARAMSUPDATE, AccessoryDaiParamsUpdateTest},
82     {AUDIO_ADM_TEST_DEVICECFGGET, AccessoryDeviceCfgGetTest},
83     {AUDIO_ADM_TEST_DEVICECTRLREGINIT, AccessoryDeviceCtrlRegInitTest},
84     {AUDIO_ADM_TEST_DEVICEREGREAD, AccessoryDeviceRegReadTest},
85     {AUDIO_ADM_TEST_DEVICEREGWRITE, AccessoryDeviceRegWriteTest},
86     {AUDIO_ADM_TEST_AGETCONFIGINFO, AccessoryGetConfigInfoTest},
87 
88     {AUDIO_ADM_TEST_GETSERVICENAME, CodecGetServiceNameTest},
89     {AUDIO_ADM_TEST_GETDAINAME, CodecGetDaiNameTest},
90     {AUDIO_ADM_TEST_GETCONFIGINFO, CodecGetConfigInfoTest},
91     {AUDIO_ADM_TEST_SETCONFIGINFO, CodecSetConfigInfoTest},
92     {AUDIO_ADM_TEST_SETCTLFUNC, CodecSetCtlFuncTest},
93 
94     {AUDIO_ADM_TEST_DAIDATAFROMCARD, DaiDataFromCardTest},
95     {AUDIO_ADM_TEST_DAIGETCONFIGINFO, DaiGetConfigInfoTest},
96     {AUDIO_ADM_TEST_DAICHECKSAMPLERATE, DaiCheckSampleRateTest},
97     {AUDIO_ADM_TEST_DAISETCONFIGINFO, DaiSetConfigInfoTest},
98 
99     {AUDIO_ADM_TEST_DMABUFALLOC, AudioDmaBufAllocTest},
100     {AUDIO_ADM_TEST_DMABUFFREE, AudioDmaBufFreeTest},
101     {AUDIO_ADM_TEST_DMAREQUESTCHANNEL, AudioDmaRequestChannelTest},
102     {AUDIO_ADM_TEST_DMACONFIGCHANNEL, AudioDmaConfigChannelTest},
103     {AUDIO_ADM_TEST_DMAPREP, AudioDmaPrepTest},
104     {AUDIO_ADM_TEST_DMASUBMIT, AudioDmaSubmitTest},
105     {AUDIO_ADM_TEST_DMAPENDING, AudioDmaPendingTest},
106     {AUDIO_ADM_TEST_DMAPAUSE, AudioDmaPauseTest},
107     {AUDIO_ADM_TEST_DMARESUME, AudioDmaResumeTest},
108     {AUDIO_ADM_TEST_DMAPOINTER, AudioDmaPointerTest},
109 
110     {AUDIO_ADM_TEST_DSPGETSERVICENAME, DspGetServiceNameTest},
111     {AUDIO_ADM_TEST_DSPGETDAINAME, DspGetDaiNameTest},
112 
113     {AUDIO_ADM_TEST_DATAFROMCARD, PlatformDataFromCardTest},
114     {AUDIO_ADM_TEST_BYTESTOFRAMES, AudioBytesToFramesTest},
115     {AUDIO_ADM_TEST_DATABIGENDIANCHANGE, AudioDataBigEndianChangeTest},
116     {AUDIO_ADM_TEST_FRAMATTOBITWIDTH, AudioFramatToBitWidthTest},
117     {AUDIO_ADM_TEST_SETPCMINFO, AudioSetPcmInfoTest},
118     {AUDIO_ADM_TEST_SETRENDERBUFINFO, AudioSetRenderBufInfoTest},
119     {AUDIO_ADM_TEST_SETCAPTUREBUFINFO, AudioSetCaptureBufInfoTest},
120     {AUDIO_ADM_TEST_PCMWRITE, AudioPcmWriteTest},
121     {AUDIO_ADM_TEST_PCMREAD, AudioPcmReadTest},
122     {AUDIO_ADM_TEST_PCMMMAPWRITE, AudioPcmMmapWriteTest},
123     {AUDIO_ADM_TEST_PCMMMAPREAD, AudioPcmMmapReadTest},
124     {AUDIO_ADM_TEST_RENDEROPEN, AudioRenderOpenTest},
125     {AUDIO_ADM_TEST_CAPTUREOPEN, AudioCaptureOpenTest},
126     {AUDIO_ADM_TEST_RENDERCLOSE, AudioRenderCloseTest},
127     {AUDIO_ADM_TEST_PCMPOINTER, AudioPcmPointerTest},
128     {AUDIO_ADM_TEST_CAPTURECLOSE, AudioCaptureCloseTest},
129     {AUDIO_ADM_TEST_HWPARAMS, AudioHwParamsTest},
130     {AUDIO_ADM_TEST_RENDERPREPARE, AudioRenderPrepareTest},
131     {AUDIO_ADM_TEST_CAPTUREPREPARE, AudioCapturePrepareTest},
132     {AUDIO_ADM_TEST_RENDERTRIGGER, AudioRenderTriggerTest},
133     {AUDIO_ADM_TEST_CAPTURETRIGGER, AudioCaptureTriggerTest}
134 };
135 
HdfAudioEntry(HdfTestMsg * msg)136 int32_t HdfAudioEntry(HdfTestMsg *msg)
137 {
138     int32_t result, i;
139 
140     if (msg == NULL) {
141         HDF_LOGE("%s is fail: HdfTestMsg is NULL!", __func__);
142         return HDF_SUCCESS;
143     }
144 
145     for (i = 0; i < sizeof(g_hdfAudioTestCaseList) / sizeof(g_hdfAudioTestCaseList[0]); ++i) {
146         if ((msg->subCmd == g_hdfAudioTestCaseList[i].subCmd) && (g_hdfAudioTestCaseList[i].testFunc != NULL)) {
147             result = g_hdfAudioTestCaseList[i].testFunc();
148             HDF_LOGE("HdfTest:Audio test result[%s-%u]", ((result == 0) ? "pass" : "fail"), msg->subCmd);
149             msg->result = (result == 0) ? HDF_SUCCESS : HDF_FAILURE;
150             return HDF_SUCCESS;
151         }
152     }
153     return HDF_SUCCESS;
154 }
155