mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-02-06 09:02:20 +08:00
[utest][audio]:Add standardized documentation for Audio Test
This commit is contained in:
@@ -6,24 +6,43 @@
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2025-05-01 wumingzi first version
|
||||
* 2025-11-24 ChuanN-sudo add standardized utest documentation block
|
||||
*/
|
||||
|
||||
/* The file can test the rt-thread audio driver framework including following api via memory
|
||||
* simulation.
|
||||
/**
|
||||
* Test Case Name: Audio Test
|
||||
*
|
||||
* rt_audio_register
|
||||
* rt_audio_rx_done
|
||||
* rt_audio_tx_complete
|
||||
* Test Objectives:
|
||||
* - Validate RT-Thread audio driver framework registration and data flow mechanisms.
|
||||
* - Verify audio playback (TX) and recording (RX) data transmission correctness.
|
||||
* - Ensure proper buffer management and memory integrity during audio operations.
|
||||
* - Test core APIs: rt_audio_register(), rt_audio_tx_complete(), rt_audio_rx_done()
|
||||
*
|
||||
* When audio devices generate or receive new data, the corresponding buffer in device will
|
||||
* receive date from kernel or surroundings. The same phenomenon will also happen at the
|
||||
* application level. Thus we can fill memory to simulate the generation of data then track
|
||||
* and check memory to ensure kernel processing audio data correctly. And this depends on
|
||||
* implementations of audio drivers.
|
||||
* Test Scenarios:
|
||||
* - Locate audio devices using SOUND_PLAYER_DEVICE_NAME and SOUND_MIC_DEVICE_NAME macros.
|
||||
* - Write known byte patterns (0xAA, 0x55) to simulate audio data flow through TX/RX buffers.
|
||||
* - Synchronize player and microphone test execution using audio_fsm_step state machine.
|
||||
* - Test two consecutive block transfers for both TX and RX paths.
|
||||
*
|
||||
* Therefore, if the player_test testcase failed, it could mean rt_audio_register or
|
||||
* rt_audio_tx_complete existing bugs. Similarly, if mic_test testcase failed, it could mean
|
||||
* rt_audio_register or rt_audio_rx_done existing bugs.
|
||||
* Verification Metrics:
|
||||
* - Written audio data appears correctly in device TX buffers with exact byte patterns.
|
||||
* - Data read from microphone device matches expected fill patterns (0xAA then 0x55) without corruption.
|
||||
* - Buffer boundaries are respected with no overflow or underflow conditions.
|
||||
* - Device open/close operations complete successfully without resource leaks.
|
||||
*
|
||||
* Dependencies:
|
||||
* - Hardware requirements: QEMU emulator or any hardware platform that supports RT-Thread.
|
||||
* - Software configuration:
|
||||
* - RT_USING_UTESTCASES must be enabled (select "RT-Thread Utestcases" in menuconfig).
|
||||
* - RT_USING_AUDIO must be enabled (enable via: RT-Thread Components -> Device Drivers -> Using Audio device drivers).
|
||||
* - RT_UTEST_USING_AUDIO_DRIVER must be enabled (enable via: RT-Thread Utestcases -> Kernel Components-> Drivers -> Audio Test).
|
||||
* - Environmental Assumptions: Audio devices registered and functional, sufficient memory available.
|
||||
*
|
||||
* Expected Results:
|
||||
* - Final output: "[ PASSED ] [ result ] testcase (components.drivers.audio.tc_audio_main)"
|
||||
* - No memory leaks detected during buffer allocation/deallocation.
|
||||
* - No assertions triggered during test execution.
|
||||
* - Buffer content verification passes for all test patterns.
|
||||
*/
|
||||
|
||||
#include "tc_audio_common.h"
|
||||
|
||||
Reference in New Issue
Block a user