Changeset 4903 in CLRX


Ignore:
Timestamp:
Aug 18, 2019, 3:05:29 PM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCm: Add next testcases for ROCm MsgPack? parser - string. fixed some previous testcases.

File:
1 edited

Legend:

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

    r4902 r4903  
    407407    {
    408408        MsgPackArrayParser arrParser(dataPtr, dataPtr + sizeof(tc17));
    409         assertArray("MsgPack0", "tc17.value", arrParser.parseData(),
    410                     Array<cxbyte>(tc17+3, tc17+sizeof(tc17)));
     409        assertArray("MsgPack0", "tc17.value", Array<cxbyte>(tc17+3, tc17+sizeof(tc17)),
     410                        arrParser.parseData());
    411411        assertValue("MsgPack0", "tc17.DataPtr", dataPtr, tc17 + sizeof(tc17));
    412412    }
     
    431431        const cxbyte* dataEnd = tc18.end();
    432432        MsgPackArrayParser arrParser(dataPtr, dataPtr + tc18.size());
    433         assertArray("MsgPack0", "tc18.value", arrParser.parseData(),
    434                     Array<cxbyte>(tc18.begin()+4, tc18.end()));
     433        assertArray("MsgPack0", "tc18.value", Array<cxbyte>(tc18.begin()+4, tc18.end()),
     434                    arrParser.parseData());
    435435        assertValue("MsgPack0", "tc18.DataPtr", dataPtr, dataEnd);
    436436        for (cxuint i = 1; i <= 5; i ++)
     
    458458        const cxbyte* dataEnd = tc19.end();
    459459        MsgPackArrayParser arrParser(dataPtr, dataPtr + tc19.size());
    460         assertArray("MsgPack0", "tc19.value", arrParser.parseData(),
    461                     Array<cxbyte>(tc19.begin()+6, tc19.end()));
     460        assertArray("MsgPack0", "tc19.value", Array<cxbyte>(tc19.begin()+6, tc19.end()),
     461                        arrParser.parseData());
    462462        assertValue("MsgPack0", "tc19.DataPtr", dataPtr, dataEnd);
    463463        for (cxuint i = 1; i <= 5; i ++)
     
    471471        }
    472472    }
     473    // parseString
     474    const cxbyte tc20[7] = { 0x91, 0xa5, 0x91, 0x7b, 0xa1, 0x5e, 0x1b };
     475    dataPtr = tc20;
     476    {
     477        MsgPackArrayParser arrParser(dataPtr, dataPtr + sizeof(tc20));
     478        const std::string v = arrParser.parseString();
     479        assertArray("MsgPack0", "tc20.value", Array<cxbyte>(tc20+2, tc20+sizeof(tc20)),
     480                        v.size(), reinterpret_cast<const cxbyte*>(v.c_str()));
     481        assertValue("MsgPack0", "tc20.DataPtr", dataPtr, tc20 + sizeof(tc20));
     482    }
     483    const cxbyte tc21[0x2c] = { 0x91, 0xd9, 0x29,
     484        0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x99,
     485        0x17, 0x27, 0x73, 0x54, 0x55, 0x56, 0x33, 0xab,
     486        0xff, 0xaa, 0xcc, 0x32, 0x44, 0x55, 0x66, 0x53,
     487        0x32, 0x41, 0x52, 0x56, 0x6a, 0x7b, 0x4a, 0x49,
     488        0x41, 0x9a, 0x12, 0x0f, 0x05, 0x0d, 0x13, 0x14, 0x12 };
     489    dataPtr = tc21;
     490    {
     491        MsgPackArrayParser arrParser(dataPtr, dataPtr + sizeof(tc21));
     492        const std::string v = arrParser.parseString();
     493        assertArray("MsgPack0", "tc21.value", Array<cxbyte>(tc21+3, tc21+sizeof(tc21)),
     494                        v.size(), reinterpret_cast<const cxbyte*>(v.c_str()));
     495        assertValue("MsgPack0", "tc21.DataPtr", dataPtr, tc21 + sizeof(tc21));
     496    }
     497    // longer data (16-bit size)
     498    {
     499        Array<cxbyte> tc22(4 + 12615);
     500        tc22[0] = 0x91;
     501        tc22[1] = 0xda;
     502        tc22[2] = (12615&0xff);
     503        tc22[3] = (12615>>8);
     504        for (cxuint i = 0; i < tc22.size()-4; i++)
     505            tc22[i+4] = ((i*0x71f)^i) + (12342%(i+1));
     506        dataPtr = tc22.data();
     507        const cxbyte* dataEnd = tc22.end();
     508        MsgPackArrayParser arrParser(dataPtr, dataPtr + tc22.size());
     509        const std::string v = arrParser.parseString();
     510        assertArray("MsgPack0", "tc22.value", Array<cxbyte>(tc22.begin()+4, tc22.end()),
     511                    v.size(), reinterpret_cast<const cxbyte*>(v.c_str()));
     512        assertValue("MsgPack0", "tc22.DataPtr", dataPtr, dataEnd);
     513        for (cxuint i = 1; i <= 5; i ++)
     514        {
     515            dataPtr = tc22.data();
     516            dataEnd = tc22.begin()+4;
     517            MsgPackArrayParser arrParser(dataPtr, dataPtr + tc22.size()-i);
     518            assertCLRXException("MsgPack0", "tc22_1.Ex", "MsgPack: Can't parse string",
     519                        [&arrParser]() { arrParser.parseString(); });
     520            assertValue("MsgPack0", "tc22_1.DataPtr", dataPtr, dataEnd);
     521        }
     522    }
     523    // longer data (32-bit size)
     524    {
     525        Array<cxbyte> tc23(6 + 20818241);
     526        tc23[0] = 0x91;
     527        tc23[1] = 0xdb;
     528        tc23[2] = (20818241&0xff);
     529        tc23[3] = (20818241>>8)&0xff;
     530        tc23[4] = (20818241>>16)&0xff;
     531        tc23[5] = (20818241>>24);
     532        for (cxuint i = 0; i < tc23.size()-6; i++)
     533            tc23[i+6] = ((i*0x11f)^i)*3 + (1334123421%(i*5+1));
     534        dataPtr = tc23.data();
     535        const cxbyte* dataEnd = tc23.end();
     536        MsgPackArrayParser arrParser(dataPtr, dataPtr + tc23.size());
     537        const std::string v = arrParser.parseString();
     538        assertArray("MsgPack0", "tc23.value", Array<cxbyte>(tc23.begin()+6, tc23.end()),
     539                        v.size(), reinterpret_cast<const cxbyte*>(v.c_str()));
     540        assertValue("MsgPack0", "tc23.DataPtr", dataPtr, dataEnd);
     541        for (cxuint i = 1; i <= 5; i ++)
     542        {
     543            dataPtr = tc23.data();
     544            dataEnd = tc23.begin()+6;
     545            MsgPackArrayParser arrParser(dataPtr, dataPtr + tc23.size()-i);
     546            assertCLRXException("MsgPack0", "tc23_1.Ex", "MsgPack: Can't parse string",
     547                        [&arrParser]() { arrParser.parseString(); });
     548            assertValue("MsgPack0", "tc23_1.DataPtr", dataPtr, dataEnd);
     549        }
     550    }
    473551}
    474552
Note: See TracChangeset for help on using the changeset viewer.