Changeset 4902 in CLRX


Ignore:
Timestamp:
Aug 18, 2019, 8:57:44 AM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCm: Add next testcases for ROCm MsgPack? parser - byte-array.

File:
1 edited

Legend:

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

    r4901 r4902  
    401401        assertValue("MsgPack0", "tc16_1.DataPtr", dataPtr, tc16_1 + sizeof(tc16_1));
    402402    }
     403   
     404    // parseData
     405    const cxbyte tc17[8] = { 0x91, 0xc4, 0x05, 0x91, 0xff, 0xa1, 0x5e, 0x1b };
     406    dataPtr = tc17;
     407    {
     408        MsgPackArrayParser arrParser(dataPtr, dataPtr + sizeof(tc17));
     409        assertArray("MsgPack0", "tc17.value", arrParser.parseData(),
     410                    Array<cxbyte>(tc17+3, tc17+sizeof(tc17)));
     411        assertValue("MsgPack0", "tc17.DataPtr", dataPtr, tc17 + sizeof(tc17));
     412    }
     413    for (cxuint i = 1; i <= 5; i ++)
     414    {
     415        dataPtr = tc17;
     416        MsgPackArrayParser arrParser(dataPtr, dataPtr + sizeof(tc17)-i);
     417        assertCLRXException("MsgPack0", "tc17_1.Ex", "MsgPack: Can't parse byte-array",
     418                    [&arrParser]() { arrParser.parseData(); });
     419        assertValue("MsgPack0", "tc17_1.DataPtr", dataPtr, tc17 + 3);
     420    }
     421    // longer data (16-bit size)
     422    {
     423        Array<cxbyte> tc18(4 + 12615);
     424        tc18[0] = 0x91;
     425        tc18[1] = 0xc5;
     426        tc18[2] = (12615&0xff);
     427        tc18[3] = (12615>>8);
     428        for (cxuint i = 0; i < tc18.size()-4; i++)
     429            tc18[i+4] = ((i*0x71f)^i) + (12342%(i+1));
     430        dataPtr = tc18.data();
     431        const cxbyte* dataEnd = tc18.end();
     432        MsgPackArrayParser arrParser(dataPtr, dataPtr + tc18.size());
     433        assertArray("MsgPack0", "tc18.value", arrParser.parseData(),
     434                    Array<cxbyte>(tc18.begin()+4, tc18.end()));
     435        assertValue("MsgPack0", "tc18.DataPtr", dataPtr, dataEnd);
     436        for (cxuint i = 1; i <= 5; i ++)
     437        {
     438            dataPtr = tc18.data();
     439            dataEnd = tc18.begin()+4;
     440            MsgPackArrayParser arrParser(dataPtr, dataPtr + tc18.size()-i);
     441            assertCLRXException("MsgPack0", "tc18_1.Ex", "MsgPack: Can't parse byte-array",
     442                        [&arrParser]() { arrParser.parseData(); });
     443            assertValue("MsgPack0", "tc18_1.DataPtr", dataPtr, dataEnd);
     444        }
     445    }
     446    // longer data (32-bit size)
     447    {
     448        Array<cxbyte> tc19(6 + 20818241);
     449        tc19[0] = 0x91;
     450        tc19[1] = 0xc6;
     451        tc19[2] = (20818241&0xff);
     452        tc19[3] = (20818241>>8)&0xff;
     453        tc19[4] = (20818241>>16)&0xff;
     454        tc19[5] = (20818241>>24);
     455        for (cxuint i = 0; i < tc19.size()-6; i++)
     456            tc19[i+6] = ((i*0x11f)^i)*3 + (1334123421%(i*5+1));
     457        dataPtr = tc19.data();
     458        const cxbyte* dataEnd = tc19.end();
     459        MsgPackArrayParser arrParser(dataPtr, dataPtr + tc19.size());
     460        assertArray("MsgPack0", "tc19.value", arrParser.parseData(),
     461                    Array<cxbyte>(tc19.begin()+6, tc19.end()));
     462        assertValue("MsgPack0", "tc19.DataPtr", dataPtr, dataEnd);
     463        for (cxuint i = 1; i <= 5; i ++)
     464        {
     465            dataPtr = tc19.data();
     466            dataEnd = tc19.begin()+6;
     467            MsgPackArrayParser arrParser(dataPtr, dataPtr + tc19.size()-i);
     468            assertCLRXException("MsgPack0", "tc19_1.Ex", "MsgPack: Can't parse byte-array",
     469                        [&arrParser]() { arrParser.parseData(); });
     470            assertValue("MsgPack0", "tc19_1.DataPtr", dataPtr, dataEnd);
     471        }
     472    }
    403473}
    404474
Note: See TracChangeset for help on using the changeset viewer.