Changeset 87997 in vbox for trunk/src/VBox/Devices/Audio/testcase
- Timestamp:
- Mar 8, 2021 1:06:36 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 143120
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Audio/testcase/tstAudioMixBuffer.cpp
r87996 r87997 35 35 static void tstBasics(RTTEST hTest) 36 36 { 37 RTTestSub F(hTest, "Single buffer");37 RTTestSub(hTest, "Single buffer"); 38 38 39 39 static const PDMAUDIOPCMPROPS s_Cfg441StereoS16 = PDMAUDIOPCMPROPS_INITIALIZOR( … … 45 45 /* a_fSwapEndian: */ false 46 46 ); 47 static const PDMAUDIOPCMPROPS s_Cfg441StereoU16 = PDMAUDIOPCMPROPS_INITIALIZOR( 48 /* a_cb: */ 2, 49 /* a_fSigned: */ false, 50 /* a_cChannels: */ 2, 51 /* a_uHz: */ 44100, 52 /* a_cShift: */ PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(2 /* cb */, 2 /* cChannels */), 53 /* a_fSwapEndian: */ false 54 ); 55 static const PDMAUDIOPCMPROPS s_Cfg441StereoU32 = PDMAUDIOPCMPROPS_INITIALIZOR( 56 /* a_cb: */ 4, 57 /* a_fSigned: */ false, 58 /* a_cChannels: */ 2, 59 /* a_uHz: */ 44100, 60 /* a_cShift: */ PDMAUDIOPCMPROPS_MAKE_SHIFT_PARMS(4 /* cb */, 2 /* cChannels */), 61 /* a_fSwapEndian: */ false 62 ); 47 63 48 64 RTTESTI_CHECK_MSG(PDMAUDIOPCMPROPS_F2B(&s_Cfg441StereoS16, 1) == 4, 49 65 ("got %x, expected 4\n", PDMAUDIOPCMPROPS_F2B(&s_Cfg441StereoS16, 1))); 66 RTTESTI_CHECK_MSG(PDMAUDIOPCMPROPS_F2B(&s_Cfg441StereoU16, 1) == 4, 67 ("got %x, expected 4\n", PDMAUDIOPCMPROPS_F2B(&s_Cfg441StereoU16, 1))); 68 RTTESTI_CHECK_MSG(PDMAUDIOPCMPROPS_F2B(&s_Cfg441StereoU32, 1) == 8, 69 ("got %x, expected 4\n", PDMAUDIOPCMPROPS_F2B(&s_Cfg441StereoU32, 1))); 50 70 51 71 uint32_t u32; … … 53 73 ("cb=%RU32\n", u32)); 54 74 RTTESTI_CHECK_MSG((u32 = DrvAudioHlpFramesToBytes(&s_Cfg441StereoS16, 2)) == 2 * 2 * 2, 75 ("cb=%RU32\n", u32)); 76 RTTESTI_CHECK_MSG((u32 = DrvAudioHlpFramesToBytes(&s_Cfg441StereoS16, 1)) == 4, 77 ("cb=%RU32\n", u32)); 78 RTTESTI_CHECK_MSG((u32 = DrvAudioHlpFramesToBytes(&s_Cfg441StereoU16, 1)) == 4, 79 ("cb=%RU32\n", u32)); 80 RTTESTI_CHECK_MSG((u32 = DrvAudioHlpFramesToBytes(&s_Cfg441StereoU32, 1)) == 8, 81 ("cb=%RU32\n", u32)); 82 83 RTTESTI_CHECK_MSG((u32 = DrvAudioHlpBytesToFrames(4, &s_Cfg441StereoS16)) == 1, 84 ("cb=%RU32\n", u32)); 85 RTTESTI_CHECK_MSG((u32 = DrvAudioHlpBytesToFrames(4, &s_Cfg441StereoU16)) == 1, 86 ("cb=%RU32\n", u32)); 87 RTTESTI_CHECK_MSG((u32 = DrvAudioHlpBytesToFrames(8, &s_Cfg441StereoU32)) == 1, 55 88 ("cb=%RU32\n", u32)); 56 89 … … 62 95 RTTESTI_CHECK_MSG((u64 = DrvAudioHlpBytesToMilli(&s_Cfg441StereoS16, 44100 * 2 * 2)) == RT_MS_1SEC, 63 96 ("ms=%RU64\n", u64)); 64 65 97 66 98 RTTESTI_CHECK_MSG((u64 = DrvAudioHlpFramesToNano(&s_Cfg441StereoS16, 44100)) == RT_NS_1SEC, ("ns=%RU64\n", u64)); … … 73 105 RTTESTI_CHECK_MSG((u64 = DrvAudioHlpFramesToMilli(&s_Cfg441StereoS16, 255)) == 5, ("ms=%RU64\n", u64)); 74 106 107 /* DrvAudioHlpClearBuf: */ 108 uint8_t *pbPage; 109 int rc = RTTestGuardedAlloc(hTest, PAGE_SIZE, 0, false /*fHead*/, (void **)&pbPage); 110 RTTESTI_CHECK_RC_OK_RETV(rc); 111 112 memset(pbPage, 0x42, PAGE_SIZE); 113 DrvAudioHlpClearBuf(&s_Cfg441StereoS16, pbPage, PAGE_SIZE, PAGE_SIZE / 4); 114 RTTESTI_CHECK(ASMMemIsZero(pbPage, PAGE_SIZE)); 115 116 memset(pbPage, 0x42, PAGE_SIZE); 117 DrvAudioHlpClearBuf(&s_Cfg441StereoU16, pbPage, PAGE_SIZE, PAGE_SIZE / 4); 118 for (uint32_t off = 0; off < PAGE_SIZE; off += 2) 119 RTTESTI_CHECK_MSG(pbPage[off] == 0x80 && pbPage[off + 1] == 0, ("off=%#x: %#x %x\n", off, pbPage[off], pbPage[off + 1])); 120 121 memset(pbPage, 0x42, PAGE_SIZE); 122 DrvAudioHlpClearBuf(&s_Cfg441StereoU32, pbPage, PAGE_SIZE, PAGE_SIZE / 8); 123 for (uint32_t off = 0; off < PAGE_SIZE; off += 4) 124 RTTESTI_CHECK(pbPage[off] == 0x80 && pbPage[off + 1] == 0 && pbPage[off + 2] == 0 && pbPage[off + 3] == 0); 125 126 127 RTTestDisableAssertions(hTest); 128 memset(pbPage, 0x42, PAGE_SIZE); 129 DrvAudioHlpClearBuf(&s_Cfg441StereoS16, pbPage, PAGE_SIZE, PAGE_SIZE); /* should adjust down the frame count. */ 130 RTTESTI_CHECK(ASMMemIsZero(pbPage, PAGE_SIZE)); 131 132 memset(pbPage, 0x42, PAGE_SIZE); 133 DrvAudioHlpClearBuf(&s_Cfg441StereoU16, pbPage, PAGE_SIZE, PAGE_SIZE); /* should adjust down the frame count. */ 134 for (uint32_t off = 0; off < PAGE_SIZE; off += 2) 135 RTTESTI_CHECK_MSG(pbPage[off] == 0x80 && pbPage[off + 1] == 0, ("off=%#x: %#x %x\n", off, pbPage[off], pbPage[off + 1])); 136 137 memset(pbPage, 0x42, PAGE_SIZE); 138 DrvAudioHlpClearBuf(&s_Cfg441StereoU32, pbPage, PAGE_SIZE, PAGE_SIZE); /* should adjust down the frame count. */ 139 for (uint32_t off = 0; off < PAGE_SIZE; off += 4) 140 RTTESTI_CHECK(pbPage[off] == 0x80 && pbPage[off + 1] == 0 && pbPage[off + 2] == 0 && pbPage[off + 3] == 0); 141 RTTestRestoreAssertions(hTest); 142 143 RTTestGuardedFree(hTest, pbPage); 75 144 } 76 145
Note:
See TracChangeset
for help on using the changeset viewer.