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 "audio_platform_base_test.h"
10 #include "audio_stream_dispatch.h"
11 #include "audio_platform_base.h"
12 #include "audio_driver_log.h"
13
14 #define HDF_LOG_TAG audio_dsp_base_test
15
PlatformDataFromCardTest(void)16 int32_t PlatformDataFromCardTest(void)
17 {
18 struct AudioCard card;
19 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
20
21 if (PlatformDataFromCard(NULL) != NULL) {
22 return HDF_FAILURE;
23 }
24
25 if (PlatformDataFromCard(&card) != NULL) {
26 return HDF_FAILURE;
27 }
28 return HDF_SUCCESS;
29 }
30
AudioBytesToFramesTest(void)31 int32_t AudioBytesToFramesTest(void)
32 {
33 if (AudioBytesToFrames(0, 0) != 0) {
34 return HDF_FAILURE;
35 }
36
37 if (AudioBytesToFrames(1, 1) != 1) {
38 return HDF_FAILURE;
39 }
40 return HDF_SUCCESS;
41 }
42
AudioDataBigEndianChangeTest(void)43 int32_t AudioDataBigEndianChangeTest(void)
44 {
45 const int dataLen = 96; // test data lenth
46 char test[dataLen];
47 (void)memset_s(test, dataLen, 1, dataLen);
48
49 if (AudioDataBigEndianChange(NULL, 0, 0) == HDF_SUCCESS) {
50 return HDF_FAILURE;
51 }
52
53 if (AudioDataBigEndianChange(test, dataLen, DATA_BIT_WIDTH8) != HDF_SUCCESS) {
54 return HDF_FAILURE;
55 }
56
57 if (AudioDataBigEndianChange(test, dataLen, DATA_BIT_WIDTH24) != HDF_SUCCESS) {
58 return HDF_FAILURE;
59 }
60
61 if (AudioDataBigEndianChange(test, dataLen, DATA_BIT_WIDTH16) != HDF_SUCCESS) {
62 return HDF_FAILURE;
63 }
64
65 return HDF_SUCCESS;
66 }
67
AudioFramatToBitWidthTest(void)68 int32_t AudioFramatToBitWidthTest(void)
69 {
70 unsigned int bitWidth = 0;
71
72 if (AudioFramatToBitWidth(1, NULL) == HDF_SUCCESS) {
73 return HDF_FAILURE;
74 }
75
76 if (AudioFramatToBitWidth(AUDIO_FORMAT_PCM_16_BIT, &bitWidth) != HDF_SUCCESS) {
77 return HDF_FAILURE;
78 }
79
80 if (bitWidth != DATA_BIT_WIDTH16) {
81 return HDF_FAILURE;
82 }
83
84 bitWidth = 0;
85 if (AudioFramatToBitWidth(AUDIO_FORMAT_PCM_24_BIT, &bitWidth) != HDF_SUCCESS) {
86 return HDF_FAILURE;
87 }
88
89 if (bitWidth != DATA_BIT_WIDTH24) {
90 return HDF_FAILURE;
91 }
92
93 if (AudioFramatToBitWidth(AUDIO_FORMAT_AAC_HE_V1, &bitWidth) == HDF_SUCCESS) {
94 return HDF_FAILURE;
95 }
96
97 return HDF_SUCCESS;
98 }
99
AudioSetPcmInfoTest(void)100 int32_t AudioSetPcmInfoTest(void)
101 {
102 struct PlatformData platformData;
103 struct AudioPcmHwParams param;
104 (void)memset_s(&platformData, sizeof(struct PlatformData), 0, sizeof(struct PlatformData));
105 (void)memset_s(¶m, sizeof(struct AudioPcmHwParams), 0, sizeof(struct AudioPcmHwParams));
106
107 if (AudioSetPcmInfo(NULL, NULL) == HDF_SUCCESS) {
108 return HDF_FAILURE;
109 }
110
111 if (AudioSetPcmInfo(&platformData, ¶m) != HDF_SUCCESS) {
112 ADM_LOG_DEBUG("AudioSetPcmInfo fail");
113 }
114 return HDF_SUCCESS;
115 }
116
AudioSetRenderBufInfoTest(void)117 int32_t AudioSetRenderBufInfoTest(void)
118 {
119 struct PlatformData data;
120 struct AudioPcmHwParams param;
121 (void)memset_s(&data, sizeof(struct PlatformData), 0, sizeof(struct PlatformData));
122 (void)memset_s(¶m, sizeof(struct AudioPcmHwParams), 0, sizeof(struct AudioPcmHwParams));
123
124 if (AudioSetRenderBufInfo(NULL, NULL) == HDF_SUCCESS) {
125 return HDF_FAILURE;
126 }
127
128 if (AudioSetRenderBufInfo(&data, ¶m) == HDF_SUCCESS) {
129 return HDF_FAILURE;
130 }
131
132 return HDF_SUCCESS;
133 }
134
AudioSetCaptureBufInfoTest(void)135 int32_t AudioSetCaptureBufInfoTest(void)
136 {
137 struct PlatformData data;
138 struct AudioPcmHwParams param;
139 (void)memset_s(&data, sizeof(struct PlatformData), 0, sizeof(struct PlatformData));
140 (void)memset_s(¶m, sizeof(struct AudioPcmHwParams), 0, sizeof(struct AudioPcmHwParams));
141
142 if (AudioSetCaptureBufInfo(NULL, NULL) == HDF_SUCCESS) {
143 return HDF_FAILURE;
144 }
145
146 if (AudioSetCaptureBufInfo(&data, ¶m) == HDF_SUCCESS) {
147 return HDF_FAILURE;
148 }
149
150 return HDF_SUCCESS;
151 }
152
AudioPcmWriteTest(void)153 int32_t AudioPcmWriteTest(void)
154 {
155 struct AudioCard card;
156 struct AudioTxData txData;
157 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
158 (void)memset_s(&txData, sizeof(struct AudioTxData), 0, sizeof(struct AudioTxData));
159
160 if (AudioPcmWrite(NULL, NULL) == HDF_SUCCESS) {
161 return HDF_FAILURE;
162 }
163
164 if (AudioPcmWrite(&card, &txData) == HDF_SUCCESS) {
165 return HDF_FAILURE;
166 }
167
168 return HDF_SUCCESS;
169 }
170
AudioPcmReadTest(void)171 int32_t AudioPcmReadTest(void)
172 {
173 struct AudioCard card;
174 struct AudioRxData rxData;
175 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
176 (void)memset_s(&rxData, sizeof(struct AudioRxData), 0, sizeof(struct AudioRxData));
177
178 if (AudioPcmRead(NULL, NULL) == HDF_SUCCESS) {
179 return HDF_FAILURE;
180 }
181
182 if (AudioPcmRead(&card, &rxData) == HDF_SUCCESS) {
183 return HDF_FAILURE;
184 }
185 return HDF_SUCCESS;
186 }
187
AudioPcmMmapWriteTest(void)188 int32_t AudioPcmMmapWriteTest(void)
189 {
190 struct AudioCard card;
191 struct AudioMmapData txMmapData;
192 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
193 (void)memset_s(&txMmapData, sizeof(struct AudioMmapData), 0, sizeof(struct AudioMmapData));
194
195 if (AudioPcmMmapWrite(NULL, NULL) == HDF_SUCCESS) {
196 return HDF_FAILURE;
197 }
198
199 if (AudioPcmMmapWrite(&card, &txMmapData) == HDF_SUCCESS) {
200 return HDF_FAILURE;
201 }
202 return HDF_SUCCESS;
203 }
204
AudioPcmMmapReadTest(void)205 int32_t AudioPcmMmapReadTest(void)
206 {
207 struct AudioCard card;
208 struct AudioMmapData rxMmapData;
209 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
210 (void)memset_s(&rxMmapData, sizeof(struct AudioMmapData), 0, sizeof(struct AudioMmapData));
211
212 if (AudioPcmMmapRead(NULL, NULL) == HDF_SUCCESS) {
213 return HDF_FAILURE;
214 }
215
216 if (AudioPcmMmapRead(&card, &rxMmapData) == HDF_SUCCESS) {
217 return HDF_FAILURE;
218 }
219 return HDF_SUCCESS;
220 }
221
AudioRenderOpenTest(void)222 int32_t AudioRenderOpenTest(void)
223 {
224 struct AudioCard card;
225 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
226
227 if (AudioRenderOpen(NULL) == HDF_SUCCESS) {
228 return HDF_FAILURE;
229 }
230
231 if (AudioRenderOpen(&card) == HDF_SUCCESS) {
232 return HDF_FAILURE;
233 }
234 return HDF_SUCCESS;
235 }
236
AudioCaptureOpenTest(void)237 int32_t AudioCaptureOpenTest(void)
238 {
239 struct AudioCard card;
240 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
241
242 if (AudioCaptureOpen(NULL) == HDF_SUCCESS) {
243 return HDF_FAILURE;
244 }
245
246 if (AudioCaptureOpen(&card) == HDF_SUCCESS) {
247 return HDF_FAILURE;
248 }
249 return HDF_SUCCESS;
250 }
251
AudioRenderCloseTest(void)252 int32_t AudioRenderCloseTest(void)
253 {
254 struct AudioCard card;
255 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
256
257 if (AudioRenderClose(NULL) == HDF_SUCCESS) {
258 return HDF_FAILURE;
259 }
260
261 if (AudioRenderClose(&card) == HDF_SUCCESS) {
262 return HDF_FAILURE;
263 }
264 return HDF_SUCCESS;
265 }
266
AudioPcmPointerTest(void)267 int32_t AudioPcmPointerTest(void)
268 {
269 uint32_t pointer = 0;
270 struct AudioCard card;
271 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
272
273 if (AudioPcmPointer(NULL, NULL, 0) == HDF_SUCCESS) {
274 return HDF_FAILURE;
275 }
276
277 if (AudioPcmPointer(&card, &pointer, AUDIO_RENDER_STREAM) == HDF_SUCCESS) {
278 return HDF_FAILURE;
279 }
280 return HDF_SUCCESS;
281 }
282
AudioCaptureCloseTest(void)283 int32_t AudioCaptureCloseTest(void)
284 {
285 struct AudioCard card;
286 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
287
288 if (AudioCaptureClose(NULL) == HDF_SUCCESS) {
289 return HDF_FAILURE;
290 }
291
292 if (AudioCaptureClose(&card) == HDF_SUCCESS) {
293 return HDF_FAILURE;
294 }
295 return HDF_SUCCESS;
296 }
297
AudioHwParamsTest(void)298 int32_t AudioHwParamsTest(void)
299 {
300 struct AudioCard card;
301 struct AudioPcmHwParams param;
302 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
303 (void)memset_s(¶m, sizeof(struct AudioPcmHwParams), 0, sizeof(struct AudioPcmHwParams));
304
305 if (AudioHwParams(NULL, NULL) == HDF_SUCCESS) {
306 return HDF_FAILURE;
307 }
308
309 if (AudioHwParams(&card, ¶m) == HDF_SUCCESS) {
310 return HDF_FAILURE;
311 }
312
313 return HDF_SUCCESS;
314 }
315
AudioRenderPrepareTest(void)316 int32_t AudioRenderPrepareTest(void)
317 {
318 struct AudioCard card;
319 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
320
321 if (AudioRenderPrepare(NULL) == HDF_SUCCESS) {
322 return HDF_FAILURE;
323 }
324
325 if (AudioRenderPrepare(&card) == HDF_SUCCESS) {
326 return HDF_FAILURE;
327 }
328
329 return HDF_SUCCESS;
330 }
331
AudioCapturePrepareTest(void)332 int32_t AudioCapturePrepareTest(void)
333 {
334 struct AudioCard card;
335 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
336
337 if (AudioCapturePrepare(NULL) == HDF_SUCCESS) {
338 return HDF_FAILURE;
339 }
340
341 if (AudioCapturePrepare(&card) == HDF_SUCCESS) {
342 return HDF_FAILURE;
343 }
344
345 return HDF_SUCCESS;
346 }
347
AudioRenderTriggerTest(void)348 int32_t AudioRenderTriggerTest(void)
349 {
350 struct AudioCard card;
351 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
352
353 if (AudioRenderTrigger(NULL, AUDIO_DRV_PCM_IOCTL_RENDER_START) == HDF_SUCCESS) {
354 return HDF_FAILURE;
355 }
356
357 if (AudioRenderTrigger(&card, AUDIO_DRV_PCM_IOCTL_RENDER_START) == HDF_SUCCESS) {
358 return HDF_FAILURE;
359 }
360
361 if (AudioRenderTrigger(&card, AUDIO_DRV_PCM_IOCTL_RENDER_STOP) == HDF_SUCCESS) {
362 return HDF_FAILURE;
363 }
364
365 if (AudioRenderTrigger(&card, AUDIO_DRV_PCM_IOCTL_RENDER_PAUSE) == HDF_SUCCESS) {
366 return HDF_FAILURE;
367 }
368
369 if (AudioRenderTrigger(&card, AUDIO_DRV_PCM_IOCTL_RENDER_RESUME) == HDF_SUCCESS) {
370 return HDF_FAILURE;
371 }
372
373 return HDF_SUCCESS;
374 }
375
AudioCaptureTriggerTest(void)376 int32_t AudioCaptureTriggerTest(void)
377 {
378 struct AudioCard card;
379 (void)memset_s(&card, sizeof(struct AudioCard), 0, sizeof(struct AudioCard));
380
381 if (AudioCaptureTrigger(NULL, AUDIO_DRV_PCM_IOCTL_CAPTURE_START) == HDF_SUCCESS) {
382 return HDF_FAILURE;
383 }
384
385 if (AudioCaptureTrigger(&card, AUDIO_DRV_PCM_IOCTL_CAPTURE_START) == HDF_SUCCESS) {
386 return HDF_FAILURE;
387 }
388
389 if (AudioCaptureTrigger(&card, AUDIO_DRV_PCM_IOCTL_CAPTURE_STOP) == HDF_SUCCESS) {
390 return HDF_FAILURE;
391 }
392
393 if (AudioCaptureTrigger(&card, AUDIO_DRV_PCM_IOCTL_CAPTURE_PAUSE) == HDF_SUCCESS) {
394 return HDF_FAILURE;
395 }
396
397 if (AudioCaptureTrigger(&card, AUDIO_DRV_PCM_IOCTL_CAPTURE_RESUME) == HDF_SUCCESS) {
398 return HDF_FAILURE;
399 }
400 return HDF_SUCCESS;
401 }
402