Changeset 4911 in CLRX


Ignore:
Timestamp:
Aug 20, 2019, 4:23:14 PM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCm: Add next testcases for skipping MsgPack? values - strings and bindatas.

File:
1 edited

Legend:

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

    r4910 r4911  
    10611061                    [&mapParser]() { mapParser.skipValue(); });
    10621062    }
     1063    {
     1064        Array<cxbyte> tc11(5 + 11232);
     1065        tc11[0] = 0x81;
     1066        tc11[1] = 0xc0;
     1067        tc11[2] = 0xda;
     1068        tc11[3] = (11232)&255;
     1069        tc11[4] = (11232)>>8;
     1070        for (size_t i = 0; i < tc11.size()-5; i++)
     1071            tc11[i+5] = (i&0x80)&0xff;
     1072        dataPtr = tc11.data();
     1073        MsgPackMapParser mapParser(dataPtr, dataPtr + tc11.size());
     1074        mapParser.parseKeyNil();
     1075        mapParser.skipValue();
     1076        const cxbyte* dataEnd = tc11.end();
     1077        assertValue("MsgPackSkip", "tc11.DataPtr", dataPtr, dataEnd);
     1078        {
     1079            dataPtr = tc11.data();
     1080            MsgPackMapParser mapParser(dataPtr, dataPtr + tc11.size()-1);
     1081            mapParser.parseKeyNil();
     1082            assertCLRXException("MsgPackSkip", "tc11_1.DataPtr",
     1083                    "MsgPack: Can't skip object",
     1084                    [&mapParser]() { mapParser.skipValue(); });
     1085        }
     1086        {
     1087            dataPtr = tc11.data();
     1088            MsgPackMapParser mapParser(dataPtr, dataPtr + 4);
     1089            mapParser.parseKeyNil();
     1090            assertCLRXException("MsgPackSkip", "tc11_2.DataPtr",
     1091                    "MsgPack: Can't skip object",
     1092                    [&mapParser]() { mapParser.skipValue(); });
     1093        }
     1094    }
     1095    {
     1096        Array<cxbyte> tc12(7 + 4511232);
     1097        tc12[0] = 0x81;
     1098        tc12[1] = 0xc0;
     1099        tc12[2] = 0xdb;
     1100        tc12[3] = (4511232)&255;
     1101        tc12[4] = ((4511232)>>8)&255;
     1102        tc12[5] = ((4511232)>>16)&255;
     1103        tc12[6] = ((4511232)>>24);
     1104        for (size_t i = 0; i < tc12.size()-7; i++)
     1105            tc12[i+7] = (i&0x80)&0xff;
     1106        dataPtr = tc12.data();
     1107        MsgPackMapParser mapParser(dataPtr, dataPtr + tc12.size());
     1108        mapParser.parseKeyNil();
     1109        mapParser.skipValue();
     1110        const cxbyte* dataEnd = tc12.end();
     1111        assertValue("MsgPackSkip", "tc12.DataPtr", dataPtr, dataEnd);
     1112        {
     1113            dataPtr = tc12.data();
     1114            MsgPackMapParser mapParser(dataPtr, dataPtr + tc12.size()-1);
     1115            mapParser.parseKeyNil();
     1116            assertCLRXException("MsgPackSkip", "tc12_1.DataPtr",
     1117                    "MsgPack: Can't skip object",
     1118                    [&mapParser]() { mapParser.skipValue(); });
     1119        }
     1120        {
     1121            dataPtr = tc12.data();
     1122            MsgPackMapParser mapParser(dataPtr, dataPtr + 6);
     1123            mapParser.parseKeyNil();
     1124            assertCLRXException("MsgPackSkip", "tc12_2.DataPtr",
     1125                    "MsgPack: Can't skip object",
     1126                    [&mapParser]() { mapParser.skipValue(); });
     1127        }
     1128    }
     1129    /* skip bin data */
     1130    const cxbyte tc13[38] = { 0x81, 0xc0, 0xc4, 0x22,
     1131        0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
     1132        0x01, 0x02, 0x03, 0x54, 0x05, 0x06, 0x07, 0x08,
     1133        0x01, 0x04, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
     1134        0x01, 0x02, 0x03, 0x04, 0xf5, 0x06, 0x07, 0x08,
     1135        0x33, 0x66 };
     1136    dataPtr = tc13;
     1137    {
     1138        MsgPackMapParser mapParser(dataPtr, dataPtr + sizeof(tc13));
     1139        mapParser.parseKeyNil();
     1140        mapParser.skipValue();
     1141        assertValue("MsgPackSkip", "tc9.DataPtr", dataPtr, tc13 + sizeof(tc13));
     1142    }
     1143    dataPtr = tc13;
     1144    {
     1145        MsgPackMapParser mapParser(dataPtr, dataPtr + sizeof(tc13)-1);
     1146        mapParser.parseKeyNil();
     1147        assertCLRXException("MsgPackSkip", "tc13_1.DataPtr", "MsgPack: Can't skip object",
     1148                    [&mapParser]() { mapParser.skipValue(); });
     1149    }
     1150    dataPtr = tc13;
     1151    {
     1152        MsgPackMapParser mapParser(dataPtr, dataPtr + 3);
     1153        mapParser.parseKeyNil();
     1154        assertCLRXException("MsgPackSkip", "tc13_2.DataPtr", "MsgPack: Can't skip object",
     1155                    [&mapParser]() { mapParser.skipValue(); });
     1156    }
     1157    {
     1158        Array<cxbyte> tc14(5 + 11232);
     1159        tc14[0] = 0x81;
     1160        tc14[1] = 0xc0;
     1161        tc14[2] = 0xc5;
     1162        tc14[3] = (11232)&255;
     1163        tc14[4] = (11232)>>8;
     1164        for (size_t i = 0; i < tc14.size()-5; i++)
     1165            tc14[i+5] = (i&0x80)&0xff;
     1166        dataPtr = tc14.data();
     1167        MsgPackMapParser mapParser(dataPtr, dataPtr + tc14.size());
     1168        mapParser.parseKeyNil();
     1169        mapParser.skipValue();
     1170        const cxbyte* dataEnd = tc14.end();
     1171        assertValue("MsgPackSkip", "tc14.DataPtr", dataPtr, dataEnd);
     1172        {
     1173            dataPtr = tc14.data();
     1174            MsgPackMapParser mapParser(dataPtr, dataPtr + tc14.size()-1);
     1175            mapParser.parseKeyNil();
     1176            assertCLRXException("MsgPackSkip", "tc14_1.DataPtr",
     1177                    "MsgPack: Can't skip object",
     1178                    [&mapParser]() { mapParser.skipValue(); });
     1179        }
     1180        {
     1181            dataPtr = tc14.data();
     1182            MsgPackMapParser mapParser(dataPtr, dataPtr + 4);
     1183            mapParser.parseKeyNil();
     1184            assertCLRXException("MsgPackSkip", "tc14_2.DataPtr",
     1185                    "MsgPack: Can't skip object",
     1186                    [&mapParser]() { mapParser.skipValue(); });
     1187        }
     1188    }
     1189    {
     1190        Array<cxbyte> tc15(7 + 4511232);
     1191        tc15[0] = 0x81;
     1192        tc15[1] = 0xc0;
     1193        tc15[2] = 0xc6;
     1194        tc15[3] = (4511232)&255;
     1195        tc15[4] = ((4511232)>>8)&255;
     1196        tc15[5] = ((4511232)>>16)&255;
     1197        tc15[6] = ((4511232)>>24);
     1198        for (size_t i = 0; i < tc15.size()-7; i++)
     1199            tc15[i+7] = (i&0x80)&0xff;
     1200        dataPtr = tc15.data();
     1201        MsgPackMapParser mapParser(dataPtr, dataPtr + tc15.size());
     1202        mapParser.parseKeyNil();
     1203        mapParser.skipValue();
     1204        const cxbyte* dataEnd = tc15.end();
     1205        assertValue("MsgPackSkip", "tc15.DataPtr", dataPtr, dataEnd);
     1206        {
     1207            dataPtr = tc15.data();
     1208            MsgPackMapParser mapParser(dataPtr, dataPtr + tc15.size()-1);
     1209            mapParser.parseKeyNil();
     1210            assertCLRXException("MsgPackSkip", "tc15_1.DataPtr",
     1211                    "MsgPack: Can't skip object",
     1212                    [&mapParser]() { mapParser.skipValue(); });
     1213        }
     1214        {
     1215            dataPtr = tc15.data();
     1216            MsgPackMapParser mapParser(dataPtr, dataPtr + 6);
     1217            mapParser.parseKeyNil();
     1218            assertCLRXException("MsgPackSkip", "tc15_2.DataPtr",
     1219                    "MsgPack: Can't skip object",
     1220                    [&mapParser]() { mapParser.skipValue(); });
     1221        }
     1222    }
     1223    /* skip arrays */
    10631224}
    10641225
Note: See TracChangeset for help on using the changeset viewer.