Changeset 4914 in CLRX


Ignore:
Timestamp:
Aug 20, 2019, 6:46:18 PM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCm: Add next testcases for skipping MsgPack? values - maps.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/tests/amdbin/ROCmMsgPack.cpp

    r4913 r4914  
    13151315        }
    13161316    }
     1317    {
     1318        Array<cxbyte> tc18(7 + 3788213*3);
     1319        tc18[0] = 0x81;
     1320        tc18[1] = 0xc0;
     1321        tc18[2] = 0xdd;
     1322        tc18[3] = (3788213)&255;
     1323        tc18[4] = ((3788213)>>8)&255;
     1324        tc18[5] = ((3788213)>>16)&255;
     1325        tc18[6] = (3788213)>>24;
     1326        for (size_t i = 0; i < tc18.size()-7; i+=3)
     1327        {
     1328            tc18[i+7] = 0xcd;
     1329            tc18[i+7+1] = (i&0xff);
     1330            tc18[i+7+2] = ((i>>8)&0xff);
     1331        }
     1332        dataPtr = tc18.data();
     1333        MsgPackMapParser mapParser(dataPtr, dataPtr + tc18.size());
     1334        mapParser.parseKeyNil();
     1335        mapParser.skipValue();
     1336        const cxbyte* dataEnd = tc18.end();
     1337        assertValue("MsgPackSkip", "tc18.DataPtr", dataPtr, dataEnd);
     1338        {
     1339            dataPtr = tc18.data();
     1340            MsgPackMapParser mapParser(dataPtr, dataPtr + tc18.size()-1);
     1341            mapParser.parseKeyNil();
     1342            assertCLRXException("MsgPackSkip", "tc18_1.DataPtr",
     1343                    "MsgPack: Can't skip object",
     1344                    [&mapParser]() { mapParser.skipValue(); });
     1345        }
     1346        {
     1347            dataPtr = tc18.data();
     1348            MsgPackMapParser mapParser(dataPtr, dataPtr + 6);
     1349            mapParser.parseKeyNil();
     1350            assertCLRXException("MsgPackSkip", "tc18_2.DataPtr",
     1351                    "MsgPack: Can't skip object",
     1352                    [&mapParser]() { mapParser.skipValue(); });
     1353        }
     1354    }
     1355    /* skip maps */
     1356    const cxbyte tc19[17] = { 0x81, 0xc0, 0x83, 0xcd, 0x01, 0x33, 0x57,
     1357        0x19, 0x11, 0xd1, 0x4b, 0x5c, 0xd2, 0x01, 0x33, 0x55, 0xbf };
     1358    dataPtr = tc19;
     1359    {
     1360        MsgPackMapParser mapParser(dataPtr, dataPtr + sizeof(tc19));
     1361        mapParser.parseKeyNil();
     1362        mapParser.skipValue();
     1363        assertValue("MsgPackSkip", "tc19.DataPtr", dataPtr, tc19 + sizeof(tc19));
     1364    }
     1365    {
     1366        Array<cxbyte> tc20(5 + 8214*3*2);
     1367        tc20[0] = 0x81;
     1368        tc20[1] = 0xc0;
     1369        tc20[2] = 0xde;
     1370        tc20[3] = (8214)&255;
     1371        tc20[4] = (8214)>>8;
     1372        for (size_t i = 0; i < tc20.size()-5; i+=3)
     1373        {
     1374            tc20[i+5] = 0xcd;
     1375            tc20[i+5+1] = (i&0xff);
     1376            tc20[i+5+2] = ((i>>8)&0xff);
     1377        }
     1378        dataPtr = tc20.data();
     1379        MsgPackMapParser mapParser(dataPtr, dataPtr + tc20.size());
     1380        mapParser.parseKeyNil();
     1381        mapParser.skipValue();
     1382        const cxbyte* dataEnd = tc20.end();
     1383        assertValue("MsgPackSkip", "tc20.DataPtr", dataPtr, dataEnd);
     1384        {
     1385            dataPtr = tc20.data();
     1386            MsgPackMapParser mapParser(dataPtr, dataPtr + tc20.size()-1);
     1387            mapParser.parseKeyNil();
     1388            assertCLRXException("MsgPackSkip", "tc20_1.DataPtr",
     1389                    "MsgPack: Can't skip object",
     1390                    [&mapParser]() { mapParser.skipValue(); });
     1391        }
     1392        {
     1393            dataPtr = tc20.data();
     1394            MsgPackMapParser mapParser(dataPtr, dataPtr + 4);
     1395            mapParser.parseKeyNil();
     1396            assertCLRXException("MsgPackSkip", "tc20_2.DataPtr",
     1397                    "MsgPack: Can't skip object",
     1398                    [&mapParser]() { mapParser.skipValue(); });
     1399        }
     1400    }
     1401    {
     1402        Array<cxbyte> tc21(7 + 1662135*3*2);
     1403        tc21[0] = 0x81;
     1404        tc21[1] = 0xc0;
     1405        tc21[2] = 0xdf;
     1406        tc21[3] = (1662135)&255;
     1407        tc21[4] = ((1662135)>>8)&255;
     1408        tc21[5] = ((1662135)>>16)&255;
     1409        tc21[6] = (1662135)>>24;
     1410        for (size_t i = 0; i < tc21.size()-7; i+=3)
     1411        {
     1412            tc21[i+7] = 0xcd;
     1413            tc21[i+7+1] = (i&0xff);
     1414            tc21[i+7+2] = ((i>>8)&0xff);
     1415        }
     1416        dataPtr = tc21.data();
     1417        MsgPackMapParser mapParser(dataPtr, dataPtr + tc21.size());
     1418        mapParser.parseKeyNil();
     1419        mapParser.skipValue();
     1420        const cxbyte* dataEnd = tc21.end();
     1421        assertValue("MsgPackSkip", "tc21.DataPtr", dataPtr, dataEnd);
     1422        {
     1423            dataPtr = tc21.data();
     1424            MsgPackMapParser mapParser(dataPtr, dataPtr + tc21.size()-1);
     1425            mapParser.parseKeyNil();
     1426            assertCLRXException("MsgPackSkip", "tc21_1.DataPtr",
     1427                    "MsgPack: Can't skip object",
     1428                    [&mapParser]() { mapParser.skipValue(); });
     1429        }
     1430        {
     1431            dataPtr = tc21.data();
     1432            MsgPackMapParser mapParser(dataPtr, dataPtr + 6);
     1433            mapParser.parseKeyNil();
     1434            assertCLRXException("MsgPackSkip", "tc21_2.DataPtr",
     1435                    "MsgPack: Can't skip object",
     1436                    [&mapParser]() { mapParser.skipValue(); });
     1437        }
     1438    }
    13171439}
    13181440
Note: See TracChangeset for help on using the changeset viewer.