Changeset 59747 in vbox for trunk/src/VBox/Runtime/testcase
- Timestamp:
- Feb 19, 2016 11:18:18 PM (9 years ago)
- Location:
- trunk/src/VBox/Runtime/testcase
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/testcase/tstRTInlineAsm.cpp
r59527 r59747 47 47 # include <iprt/time.h> 48 48 #endif 49 #include <iprt/rand.h> 49 50 #include <iprt/stream.h> 50 51 #include <iprt/string.h> … … 1322 1323 RTTESTI_CHECK(!ASMMemIsZeroPage(pvPage2)); 1323 1324 ((uint8_t *)pvPage2)[off] = 0; 1325 } 1326 1327 RTTestSubDone(hTest); 1328 } 1329 1330 1331 void tstASMMemFirstMismatchingU8(RTTEST hTest) 1332 { 1333 RTTestSub(hTest, "ASMMemFirstMismatchingU8"); 1334 1335 uint8_t *pbPage1 = (uint8_t *)RTTestGuardedAllocHead(hTest, PAGE_SIZE); 1336 uint8_t *pbPage2 = (uint8_t *)RTTestGuardedAllocTail(hTest, PAGE_SIZE); 1337 RTTESTI_CHECK_RETV(pbPage1 && pbPage2); 1338 1339 memset(pbPage1, 0, PAGE_SIZE); 1340 memset(pbPage2, 0, PAGE_SIZE); 1341 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, PAGE_SIZE, 0) == NULL); 1342 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, PAGE_SIZE, 0) == NULL); 1343 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, PAGE_SIZE, 1) == pbPage1); 1344 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, PAGE_SIZE, 1) == pbPage2); 1345 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, PAGE_SIZE, 0x87) == pbPage1); 1346 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, PAGE_SIZE, 0x87) == pbPage2); 1347 RTTESTI_CHECK(ASMMemIsZero(pbPage1, PAGE_SIZE)); 1348 RTTESTI_CHECK(ASMMemIsZero(pbPage2, PAGE_SIZE)); 1349 RTTESTI_CHECK(ASMMemIsAllU8(pbPage1, PAGE_SIZE, 0)); 1350 RTTESTI_CHECK(ASMMemIsAllU8(pbPage2, PAGE_SIZE, 0)); 1351 RTTESTI_CHECK(!ASMMemIsAllU8(pbPage1, PAGE_SIZE, 0x34)); 1352 RTTESTI_CHECK(!ASMMemIsAllU8(pbPage2, PAGE_SIZE, 0x88)); 1353 unsigned cbSub = 32; 1354 while (cbSub-- > 0) 1355 { 1356 RTTESTI_CHECK(ASMMemFirstMismatchingU8(&pbPage1[PAGE_SIZE - cbSub], cbSub, 0) == NULL); 1357 RTTESTI_CHECK(ASMMemFirstMismatchingU8(&pbPage2[PAGE_SIZE - cbSub], cbSub, 0) == NULL); 1358 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, cbSub, 0) == NULL); 1359 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, cbSub, 0) == NULL); 1360 1361 RTTESTI_CHECK(ASMMemFirstMismatchingU8(&pbPage1[PAGE_SIZE - cbSub], cbSub, 0x34) == &pbPage1[PAGE_SIZE - cbSub] || !cbSub); 1362 RTTESTI_CHECK(ASMMemFirstMismatchingU8(&pbPage2[PAGE_SIZE - cbSub], cbSub, 0x99) == &pbPage2[PAGE_SIZE - cbSub] || !cbSub); 1363 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, cbSub, 0x42) == pbPage1 || !cbSub); 1364 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, cbSub, 0x88) == pbPage2 || !cbSub); 1365 } 1366 1367 memset(pbPage1, 0xff, PAGE_SIZE); 1368 memset(pbPage2, 0xff, PAGE_SIZE); 1369 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, PAGE_SIZE, 0xff) == NULL); 1370 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, PAGE_SIZE, 0xff) == NULL); 1371 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, PAGE_SIZE, 0xfe) == pbPage1); 1372 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, PAGE_SIZE, 0xfe) == pbPage2); 1373 RTTESTI_CHECK(!ASMMemIsZero(pbPage1, PAGE_SIZE)); 1374 RTTESTI_CHECK(!ASMMemIsZero(pbPage2, PAGE_SIZE)); 1375 RTTESTI_CHECK(ASMMemIsAllU8(pbPage1, PAGE_SIZE, 0xff)); 1376 RTTESTI_CHECK(ASMMemIsAllU8(pbPage2, PAGE_SIZE, 0xff)); 1377 RTTESTI_CHECK(!ASMMemIsAllU8(pbPage1, PAGE_SIZE, 0)); 1378 RTTESTI_CHECK(!ASMMemIsAllU8(pbPage2, PAGE_SIZE, 0)); 1379 cbSub = 32; 1380 while (cbSub-- > 0) 1381 { 1382 RTTESTI_CHECK(ASMMemFirstMismatchingU8(&pbPage1[PAGE_SIZE - cbSub], cbSub, 0xff) == NULL); 1383 RTTESTI_CHECK(ASMMemFirstMismatchingU8(&pbPage2[PAGE_SIZE - cbSub], cbSub, 0xff) == NULL); 1384 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, cbSub, 0xff) == NULL); 1385 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, cbSub, 0xff) == NULL); 1386 1387 RTTESTI_CHECK(ASMMemFirstMismatchingU8(&pbPage1[PAGE_SIZE - cbSub], cbSub, 0xfe) == &pbPage1[PAGE_SIZE - cbSub] || !cbSub); 1388 RTTESTI_CHECK(ASMMemFirstMismatchingU8(&pbPage2[PAGE_SIZE - cbSub], cbSub, 0xfe) == &pbPage2[PAGE_SIZE - cbSub] || !cbSub); 1389 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage1, cbSub, 0xfe) == pbPage1 || !cbSub); 1390 RTTESTI_CHECK(ASMMemFirstMismatchingU8(pbPage2, cbSub, 0xfe) == pbPage2 || !cbSub); 1391 } 1392 1393 1394 /* 1395 * Various alignments and sizes. 1396 */ 1397 uint8_t const bFiller1 = 0x00; 1398 uint8_t const bFiller2 = 0xf6; 1399 size_t const cbBuf = 128; 1400 uint8_t *pbBuf1 = pbPage1; 1401 uint8_t *pbBuf2 = &pbPage2[PAGE_SIZE - cbBuf]; /* Put it up against the tail guard */ 1402 memset(pbPage1, ~bFiller1, PAGE_SIZE); 1403 memset(pbPage2, ~bFiller2, PAGE_SIZE); 1404 memset(pbBuf1, bFiller1, cbBuf); 1405 memset(pbBuf2, bFiller2, cbBuf); 1406 for (size_t offNonZero = 0; offNonZero < cbBuf; offNonZero++) 1407 { 1408 uint8_t bRand = (uint8_t)RTRandU32(); 1409 pbBuf1[offNonZero] = bRand | 1; 1410 pbBuf2[offNonZero] = (0x80 | bRand) ^ 0xf6; 1411 1412 for (size_t offStart = 0; offStart < 32; offStart++) 1413 { 1414 size_t const cbMax = cbBuf - offStart; 1415 for (size_t cb = 0; cb < cbMax; cb++) 1416 { 1417 size_t const offEnd = offStart + cb; 1418 uint8_t bSaved1, bSaved2; 1419 if (offEnd < PAGE_SIZE) 1420 { 1421 bSaved1 = pbBuf1[offEnd]; 1422 bSaved2 = pbBuf2[offEnd]; 1423 pbBuf1[offEnd] = 0xff; 1424 pbBuf2[offEnd] = 0xff; 1425 } 1426 1427 uint8_t *pbRet = (uint8_t *)ASMMemFirstMismatchingU8(pbBuf1 + offStart, cb, bFiller1); 1428 RTTESTI_CHECK(offNonZero - offStart < cb ? pbRet == &pbBuf1[offNonZero] : pbRet == NULL); 1429 1430 pbRet = (uint8_t *)ASMMemFirstMismatchingU8(pbBuf2 + offStart, cb, bFiller2); 1431 if (!(offNonZero - offStart < cb ? pbRet == &pbBuf2[offNonZero] : pbRet == NULL)) 1432 __debugbreak(); 1433 RTTESTI_CHECK(offNonZero - offStart < cb ? pbRet == &pbBuf2[offNonZero] : pbRet == NULL); 1434 1435 if (offEnd < PAGE_SIZE) 1436 { 1437 pbBuf1[offEnd] = bSaved1; 1438 pbBuf2[offEnd] = bSaved2; 1439 } 1440 } 1441 } 1442 1443 pbBuf1[offNonZero] = 0; 1444 pbBuf2[offNonZero] = 0xf6; 1324 1445 } 1325 1446 … … 1791 1912 tstASMMemZeroPage(); 1792 1913 tstASMMemIsZeroPage(g_hTest); 1914 tstASMMemFirstMismatchingU8(g_hTest); 1793 1915 tstASMMemZero32(); 1794 1916 tstASMMemFill32(); -
trunk/src/VBox/Runtime/testcase/tstRTMemCache.cpp
r57358 r59747 133 133 { 134 134 RTTESTI_CHECK(hMemCache == g_hMemCache); 135 RTTESTI_CHECK(ASMMemIs All8(pvObj, 256, 0) == NULL);135 RTTESTI_CHECK(ASMMemIsZero(pvObj, 256)); 136 136 137 137 if (*(bool *)pvUser) -
trunk/src/VBox/Runtime/testcase/tstRTMemPool.cpp
r57358 r59747 68 68 { 69 69 RTTESTI_CHECK_RETV(pv = RTMemPoolAllocZ(hMemPool, 1024)); 70 RTTESTI_CHECK(ASMMem IsAllU32(pv, 1024, 0) == NULL);70 RTTESTI_CHECK(ASMMemFirstMismatchingU32(pv, 1024, 0) == NULL); 71 71 memset(pv, 'a', 1024); 72 72 RTTESTI_CHECK_RETV(RTMemPoolRefCount(pv) == 1); … … 88 88 RTTESTI_CHECK_RETV(pv = RTMemPoolDupEx(hMemPool, szTest, sizeof(szTest), cb)); 89 89 RTTESTI_CHECK(memcmp(pv, szTest, sizeof(szTest)) == 0); 90 RTTESTI_CHECK(ASMMemIs All8((uint8_t *)pv + sizeof(szTest), cb, 0) == NULL);90 RTTESTI_CHECK(ASMMemIsZero((uint8_t *)pv + sizeof(szTest), cb)); 91 91 memset(pv, 'b', sizeof(szTest) + cb); 92 92 RTTESTI_CHECK_RETV(RTMemPoolRefCount(pv) == 1); … … 118 118 RTTESTI_CHECK(RTMemPoolRefCount(pv) == 1); 119 119 memset(pv, 'a', i); 120 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x\n", i, pv,(uintptr_t)pv2 - (uintptr_t)pv));120 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x\n", i, pv,(uintptr_t)pv2 - (uintptr_t)pv)); 121 121 RTTESTI_CHECK(RTMemPoolRetain(pv) == 2); 122 122 RTTESTI_CHECK(RTMemPoolRefCount(pv) == 2); … … 125 125 RTTESTI_CHECK(RTMemPoolRetain(pv) == 4); 126 126 RTTESTI_CHECK(RTMemPoolRefCount(pv) == 4); 127 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv));127 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv)); 128 128 RTTESTI_CHECK(RTMemPoolRelease(hMemPool, pv) == 3); 129 129 RTTESTI_CHECK(RTMemPoolRefCount(pv) == 3); 130 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv));130 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv)); 131 131 RTTESTI_CHECK(RTMemPoolRetain(pv) == 4); 132 132 RTTESTI_CHECK(RTMemPoolRefCount(pv) == 4); … … 137 137 RTTESTI_CHECK(RTMemPoolRelease(NIL_RTMEMPOOL, pv) == 5); 138 138 RTTESTI_CHECK(RTMemPoolRelease(NIL_RTMEMPOOL, pv) == 4); 139 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv));139 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv)); 140 140 141 141 for (uint32_t cRefs = 3;; cRefs--) … … 145 145 break; 146 146 RTTESTI_CHECK(RTMemPoolRefCount(pv) == cRefs); 147 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x cRefs=%d\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv, cRefs));147 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x cRefs=%d\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv, cRefs)); 148 148 for (uint32_t j = 0; j < 42; j++) 149 149 { … … 152 152 memset(pv2, 'f', i); 153 153 RTTESTI_CHECK(RTMemPoolRelease(hMemPool, pv2) == 0); 154 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x cRefs=%d\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv, cRefs));154 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(pv, i, 'a')) == NULL, ("i=%#x pv=%p off=%#x cRefs=%d\n", i, pv, (uintptr_t)pv2 - (uintptr_t)pv, cRefs)); 155 155 } 156 156 } -
trunk/src/VBox/Runtime/testcase/tstRTMemSafer.cpp
r57358 r59747 129 129 RTTESTI_CHECK_RC_OK_RETV(RTMemSaferReallocZEx(cbAlloc, pvBuf, cbNew, &pvBuf, 0)); 130 130 131 RTTESTI_CHECK(ASMMemIsAll 8(pvBuf, RT_MIN(cbAlloc, cbNew), chFiller) == NULL);131 RTTESTI_CHECK(ASMMemIsAllU8(pvBuf, RT_MIN(cbAlloc, cbNew), chFiller)); 132 132 133 133 chFiller += 0x31; -
trunk/src/VBox/Runtime/testcase/tstRTStrAlloc.cpp
r57358 r59747 96 96 RTTESTI_CHECK(!psz[127]); 97 97 RTTESTI_CHECK(!psz[159]); 98 RTTESTI_CHECK(ASMMemIsAll 8(psz, 127, 'a') == NULL);98 RTTESTI_CHECK(ASMMemIsAllU8(psz, 127, 'a')); 99 99 memset(psz, 'b', 159); 100 100 … … 103 103 { 104 104 RTTESTI_CHECK(!psz[78]); 105 RTTESTI_CHECK(ASMMemIsAll 8(psz, 78, 'b') == NULL);105 RTTESTI_CHECK(ASMMemIsAllU8(psz, 78, 'b')); 106 106 107 107 RTTESTI_CHECK_RC(rc = RTStrRealloc(&psz, 0), VINF_SUCCESS); -
trunk/src/VBox/Runtime/testcase/tstRTStrCache.cpp
r57358 r59747 175 175 void *pv2; 176 176 RTTESTI_CHECK_RETV(psz = RTStrCacheEnterN(hStrCache, szTest, i)); 177 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz));177 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz)); 178 178 RTTESTI_CHECK(RTStrCacheRetain(psz) == 2); 179 179 RTTESTI_CHECK(RTStrCacheRetain(psz) == 3); 180 180 RTTESTI_CHECK(RTStrCacheRetain(psz) == 4); 181 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz));181 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz)); 182 182 RTTESTI_CHECK(RTStrCacheRelease(hStrCache, psz) == 3); 183 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz));183 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz)); 184 184 RTTESTI_CHECK(RTStrCacheRetain(psz) == 4); 185 185 RTTESTI_CHECK(RTStrCacheRetain(psz) == 5); … … 187 187 RTTESTI_CHECK(RTStrCacheRelease(hStrCache, psz) == 5); 188 188 RTTESTI_CHECK(RTStrCacheRelease(hStrCache, psz) == 4); 189 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz));189 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz)); 190 190 191 191 for (uint32_t cRefs = 3;; cRefs--) … … 194 194 if (cRefs == 0) 195 195 break; 196 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x cRefs=%d\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz, cRefs));196 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x cRefs=%d\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz, cRefs)); 197 197 for (uint32_t j = 0; j < 42; j++) 198 198 { … … 201 201 RTTESTI_CHECK_RETV(psz2 != psz); 202 202 RTTESTI_CHECK(RTStrCacheRelease(hStrCache, psz2) == 0); 203 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMem IsAll8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x cRefs=%d\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz, cRefs));203 RTTESTI_CHECK_MSG_RETV((pv2 = ASMMemFirstMismatchingU8(psz, i, 'a')) == NULL && !psz[i], ("i=%#x psz=%p off=%#x cRefs=%d\n", i, psz, (uintptr_t)pv2 - (uintptr_t)psz, cRefs)); 204 204 } 205 205 }
Note:
See TracChangeset
for help on using the changeset viewer.