因为要对Audio Driver做CETK测试,所以今天了解了一下CETK测试中Audio Driver Test相关的源代码,简单的对各个Case列写如下:
Test ID | Test Name | 测试目的 | 测试方法 |
100 | Build Verification Test | 驱动验证 | 遍历BuildIn下的流驱动并尝试同时打开wavein和waveout |
1000 | Easy Playback | 播放wav文件 | 调用wave api sndPlaySound来播放wav文件 |
2000 | Playback Capabilities | 检查wave out支持的格式 | 调用wave api waveOutGetDevCaps()来获取wave out支持的格式 |
2001 | Playback | 播放音频 | 以wave out支持的音频格式来播放sine音频数据 |
2002 | Playback Notifications | 测试放音过程中的Notification机制 | 在调用waveout api waveoutopen时,通过参数传递不同通知方式(CALLBACK_NULL/CALLBACK_EVENT/CALLBACK_THREAD/CALLBACK_FUNCTION/CALLBACK_WINDOW),测试程序接收到通知信息后,将会去计算所耗费的时间并和标准时间做对比 |
2003 | Playback Using Extended Functions | 放音的过程中使用扩展功能函数 | 放音的同时调用调整增益的扩展功能函数 |
2004 | Playback Buffer Freed During Playback | 放音的同时释放内存 | 开始放音后释放内存,等待放音结束并记录所耗费的时间,并和标准时间做对比 |
2005 | Playback Sample Rate Reporting | 输出放音所支持的格式及具体的参数 | 调用waveOutGetDevCaps获取waveout所支持的格式,并打印其具体的参数信息,包括Channel/Sample Rate/BitsPerSample等信息 |
2006 | Playback Initial Latency | 测试放音耗时(WAVE_FORMAT_1M08) | 依次调用waveout api以WAVE_FORMAT_1M08格式播放4毫秒数据量,记录时间并和标准时间做对比 |
2007 | Playback Initial Latencies Series | 测试放音耗时(所有格式) | 1. 测试所有格式下的放音耗时,包括WAVE_FORMAT_1M08到WAVE_FORMAT_48000S16间的所有格式,并和标准的值做比较,在对每一种放音格式进行测试的时候,会以2^n(n介于1和12之间)毫秒为放音时常; |
2008 | Playback Interoperability | 创建wav文件并播放 | 该测试按照标准的wav文件格式,创建wav文件,包含了多个chunk,然后进行播放,测试过程中Abort,原因不详 |
3000 | Capture Capabilities | 检查wave in支持的格式 | 调用wave api waveInGetDevCaps()来获取wave in支持的格式 |
3001 | Capture | 录音 | 以wave in支持的各种音频格式来录音,录音时长为1秒 |
3002 | Capture Notifications | 测试录音过程中的Notification机制 | 在调用wavein api waveinopen时,通过参数传递不同通知方式(CALLBACK_NULL/CALLBACK_EVENT/CALLBACK_THREAD/CALLBACK_FUNCTION/CALLBACK_WINDOW),测试程序接收到通知信息后,将会去计算所耗费的时间并和标准时间做对比 |
3003 | Capture Buffer Freed During Capture | 录音过程中释放内存 | 开始录音后释放内存,等待录音结束并记录所耗费的时间,并和标准时间做对比(之前的项目上出现过Wave Driver中发生Data Abort的情况,类似的其它项目却没有出现,原因不详) |
3006 | Capture Initial Latency | 测试录音耗时(WAVE_FORMAT_1M08) | 依次调用wavein api以WAVE_FORMAT_1M08格式录制4毫秒数据量大小的数据,记录时间并和标准时间做对比 |
3007 | Capture Initial Latencies Series | 测试录音耗时(所有格式) | 1. 测试所有格式下的录音耗时,包括WAVE_FORMAT_1M08到WAVE_FORMAT_48000S16间的所有格式,并和标准的值做比较,在对每一种录音格式进行测试的时候,会以2^n(n介于1和12之间)毫秒为录音时常; |
3008 | Capture Multiple Streams | 多个stream同时录音 | 1.线程中调用waveInPrepareHeader成功后开始计时,然后调用waveInAddBuffer和waveInStart开始录音(录音时长为2秒),录音结束后记录时间并计算录音所耗费的时间,最后和标准的时长做对比; |
4000 | Test Volume Control | 测试混音器音量控制 | 测试混音器音量控制,目前的项目上不支持 |
4001 | Test waveOutSetVolume & waveOutGetVolume | 测试音量调整函数waveOutSetVolume | 1. 函数waveOutSetVolume定义如下: |
5000 | Test Power Down/Up with PlaySound Synchronus | 播音时改变音频设备状态(PlaySound(…,SND_SYNC)) | 1. 调用PlaySound(…,SND_SYNC)播音; |
5001 | Test Power Down/Up with PlaySound Asynchronus | 播音时改变音频设备状态(PlaySound(…,SND_ASYNC)) | 1. 调用PlaySound(…,SND_ASYNC)播音; |
5002 | Test Power Down/Up with sndPlaySound Synchronus | 播音时改变音频设备状态(sndPlaySound(…,SND_SYNC)) | 1. 调用sndPlaySound(…,SND_SYNC)播音; |
5003 | Test Power Down/Up with sndPlaySound Asynchronus | 播音时改变音频设备状态(sndPlaySound(…,SND_ASYNC)) | 1. 调用sndPlaySound(…,SND_ASYNC)播音; |
5004 | Test Power Down/Up with waveOutWrite | 播音时改变音频设备状态(waveOutOpen/waveOutPrepareHeader/waveOutWrite) | 1. 调用waveOutOpen/waveOutPrepareHeader/waveOutWrite播音; |
6000 | Playback Mixing | 测试混音(播音) | 1. 调用Wave out API播音; |
6001 | Capture Mixing | 测试混音(录音) | 与6000测试类似,只不过是测试录音 |
7000 | International Audio File Names | 常见wav标准格式的文件并播放 | 1. 使用内建类CWaveFileEx创建wav文件并填充chunk; |
8000 | Verify Handle Validation | 测试wave api | 调用各种各样的wave api进行测试,确定api可用 |
8001 | Verify Device ID Validation | 测试Device ID | 1. 获取录音和播音设备个数; |
8002 | Verify GUID Validation | 测试GUID | 调用waveOutGetProperty获取GUID,然后调用waveOutSetProperty写入 |
以上仅仅是个人理解,可能有错误。