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