Changeset 4915 in CLRX


Ignore:
Timestamp:
Aug 20, 2019, 9:22:07 PM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCm: Add routine to test ROCmMetadata MsgPack? parsing. Formatting.

Location:
CLRadeonExtender/trunk/tests/amdbin
Files:
2 edited

Legend:

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

    r4880 r4915  
    14661466        assertValue(testName, caseName+"langVersion[1]", expKernel.langVersion[1],
    14671467                    resKernel.langVersion[1]);
    1468         assertValue(testName, caseName+"reqdWorkGroupSize[0]", 
     1468        assertValue(testName, caseName+"reqdWorkGroupSize[0]",
    14691469                    expKernel.reqdWorkGroupSize[0], resKernel.reqdWorkGroupSize[0]);
    1470         assertValue(testName, caseName+"reqdWorkGroupSize[1]", 
     1470        assertValue(testName, caseName+"reqdWorkGroupSize[1]",
    14711471                    expKernel.reqdWorkGroupSize[1], resKernel.reqdWorkGroupSize[1]);
    1472         assertValue(testName, caseName+"reqdWorkGroupSize[2]", 
     1472        assertValue(testName, caseName+"reqdWorkGroupSize[2]",
    14731473                    expKernel.reqdWorkGroupSize[2], resKernel.reqdWorkGroupSize[2]);
    1474         assertValue(testName, caseName+"workGroupSizeHint[0]", 
     1474        assertValue(testName, caseName+"workGroupSizeHint[0]",
    14751475                    expKernel.workGroupSizeHint[0], resKernel.workGroupSizeHint[0]);
    1476         assertValue(testName, caseName+"workGroupSizeHint[1]", 
     1476        assertValue(testName, caseName+"workGroupSizeHint[1]",
    14771477                    expKernel.workGroupSizeHint[1], resKernel.workGroupSizeHint[1]);
    1478         assertValue(testName, caseName+"workGroupSizeHint[2]", 
     1478        assertValue(testName, caseName+"workGroupSizeHint[2]",
    14791479                    expKernel.workGroupSizeHint[2], resKernel.workGroupSizeHint[2]);
    14801480        assertValue(testName, caseName+"vecTypeHint",
  • CLRadeonExtender/trunk/tests/amdbin/ROCmMsgPack.cpp

    r4914 r4915  
    14391439}
    14401440
     1441struct ROCmMsgPackMDTestCase
     1442{
     1443    size_t inputSize;
     1444    const cxbyte* input;      // input metadata string
     1445    ROCmMetadata expected;
     1446    bool good;
     1447    const char* error;
     1448};
     1449
     1450static const ROCmMsgPackMDTestCase rocmMsgPackMDTestCases[] =
     1451{
     1452};
     1453
     1454static void testParseROCmMsgPackMDCase(cxuint testId, const ROCmMsgPackMDTestCase& testCase)
     1455{
     1456    //
     1457    ROCmMetadata result{};
     1458    result.initialize();
     1459    bool good = true;
     1460    std::string error;
     1461    try
     1462    { result.parseMsgPack(testCase.inputSize, testCase.input); }
     1463    catch(const std::exception& ex)
     1464    {
     1465        good = false;
     1466        error = ex.what();
     1467    }
     1468    const ROCmMetadata& expected = testCase.expected;
     1469    char testName[30];
     1470    snprintf(testName, 30, "Test #%u", testId);
     1471    assertValue(testName, "good", testCase.good, good);
     1472    assertString(testName, "error", testCase.error, error.c_str());
     1473    if (!good)
     1474        // do not check if test failed
     1475        return;
     1476   
     1477    assertValue(testName, "version[0]", expected.version[0], result.version[0]);
     1478    assertValue(testName, "version[1]", expected.version[1], result.version[1]);
     1479    assertValue(testName, "printfInfosNum", expected.printfInfos.size(),
     1480                result.printfInfos.size());
     1481    char buf[32];
     1482    for (cxuint i = 0; i < expected.printfInfos.size(); i++)
     1483    {
     1484        snprintf(buf, 32, "Printf[%u].", i);
     1485        std::string caseName(buf);
     1486        const ROCmPrintfInfo& expPrintf = expected.printfInfos[i];
     1487        const ROCmPrintfInfo& resPrintf = result.printfInfos[i];
     1488        assertValue(testName, caseName+"id", expPrintf.id, resPrintf.id);
     1489        assertValue(testName, caseName+"argSizesNum", expPrintf.argSizes.size(),
     1490                    resPrintf.argSizes.size());
     1491        char buf2[32];
     1492        for (cxuint j = 0; j < expPrintf.argSizes.size(); j++)
     1493        {
     1494            snprintf(buf2, 32, "argSizes[%u]", j);
     1495            std::string caseName2(caseName);
     1496            caseName2 += buf2;
     1497            assertValue(testName, caseName2, expPrintf.argSizes[j], resPrintf.argSizes[j]);
     1498        }
     1499        assertValue(testName, caseName+"format", expPrintf.format, resPrintf.format);
     1500    }
     1501   
     1502    assertValue(testName, "kernelsNum", expected.kernels.size(), result.kernels.size());
     1503    // kernels
     1504    for (cxuint i = 0; i < expected.kernels.size(); i++)
     1505    {
     1506        snprintf(buf, 32, "Kernel[%u].", i);
     1507        std::string caseName(buf);
     1508        const ROCmKernelMetadata& expKernel = expected.kernels[i];
     1509        const ROCmKernelMetadata& resKernel = result.kernels[i];
     1510       
     1511        assertValue(testName, caseName+"name", expKernel.name, resKernel.name);
     1512        assertValue(testName, caseName+"symbolName",
     1513                    expKernel.symbolName, resKernel.symbolName);
     1514        assertValue(testName, caseName+"argsNum",
     1515                    expKernel.argInfos.size(), resKernel.argInfos.size());
     1516       
     1517        char buf2[32];
     1518        for (cxuint j = 0; j < expKernel.argInfos.size(); j++)
     1519        {
     1520            snprintf(buf2, 32, "args[%u].", j);
     1521            std::string caseName2(caseName);
     1522            caseName2 += buf2;
     1523            const ROCmKernelArgInfo& expArgInfo = expKernel.argInfos[j];
     1524            const ROCmKernelArgInfo& resArgInfo = resKernel.argInfos[j];
     1525            assertValue(testName, caseName2+"name", expArgInfo.name, resArgInfo.name);
     1526            assertValue(testName, caseName2+"typeName",
     1527                        expArgInfo.typeName, resArgInfo.typeName);
     1528            assertValue(testName, caseName2+"size",
     1529                        expArgInfo.size, resArgInfo.size);
     1530            assertValue(testName, caseName2+"offset",
     1531                        expArgInfo.offset, resArgInfo.offset);
     1532            assertValue(testName, caseName2+"pointeeAlign",
     1533                        expArgInfo.pointeeAlign, resArgInfo.pointeeAlign);
     1534            assertValue(testName, caseName2+"valueKind",
     1535                        cxuint(expArgInfo.valueKind), cxuint(resArgInfo.valueKind));
     1536            assertValue(testName, caseName2+"valueType",
     1537                        cxuint(expArgInfo.valueType), cxuint(resArgInfo.valueType));
     1538            assertValue(testName, caseName2+"addressSpace",
     1539                        cxuint(expArgInfo.addressSpace), cxuint(resArgInfo.addressSpace));
     1540            assertValue(testName, caseName2+"accessQual",
     1541                        cxuint(expArgInfo.accessQual), cxuint(resArgInfo.accessQual));
     1542            assertValue(testName, caseName2+"actualAccessQual",
     1543                cxuint(expArgInfo.actualAccessQual), cxuint(resArgInfo.actualAccessQual));
     1544            assertValue(testName, caseName2+"isConst",
     1545                        cxuint(expArgInfo.isConst), cxuint(resArgInfo.isConst));
     1546            assertValue(testName, caseName2+"isRestrict",
     1547                        cxuint(expArgInfo.isRestrict), cxuint(resArgInfo.isRestrict));
     1548            assertValue(testName, caseName2+"isPipe",
     1549                        cxuint(expArgInfo.isPipe), cxuint(resArgInfo.isPipe));
     1550            assertValue(testName, caseName2+"isVolatile",
     1551                        cxuint(expArgInfo.isVolatile), cxuint(resArgInfo.isVolatile));
     1552        }
     1553       
     1554        assertValue(testName, caseName+"language", expKernel.language, resKernel.language);
     1555        assertValue(testName, caseName+"langVersion[0]", expKernel.langVersion[0],
     1556                    resKernel.langVersion[0]);
     1557        assertValue(testName, caseName+"langVersion[1]", expKernel.langVersion[1],
     1558                    resKernel.langVersion[1]);
     1559        assertValue(testName, caseName+"reqdWorkGroupSize[0]",
     1560                    expKernel.reqdWorkGroupSize[0], resKernel.reqdWorkGroupSize[0]);
     1561        assertValue(testName, caseName+"reqdWorkGroupSize[1]",
     1562                    expKernel.reqdWorkGroupSize[1], resKernel.reqdWorkGroupSize[1]);
     1563        assertValue(testName, caseName+"reqdWorkGroupSize[2]",
     1564                    expKernel.reqdWorkGroupSize[2], resKernel.reqdWorkGroupSize[2]);
     1565        assertValue(testName, caseName+"workGroupSizeHint[0]",
     1566                    expKernel.workGroupSizeHint[0], resKernel.workGroupSizeHint[0]);
     1567        assertValue(testName, caseName+"workGroupSizeHint[1]",
     1568                    expKernel.workGroupSizeHint[1], resKernel.workGroupSizeHint[1]);
     1569        assertValue(testName, caseName+"workGroupSizeHint[2]",
     1570                    expKernel.workGroupSizeHint[2], resKernel.workGroupSizeHint[2]);
     1571        assertValue(testName, caseName+"vecTypeHint",
     1572                    expKernel.vecTypeHint, resKernel.vecTypeHint);
     1573        assertValue(testName, caseName+"runtimeHandle",
     1574                    expKernel.runtimeHandle, resKernel.runtimeHandle);
     1575        assertValue(testName, caseName+"deviceEnqueueSymbol",
     1576                    expKernel.deviceEnqueueSymbol, resKernel.deviceEnqueueSymbol);
     1577        assertValue(testName, caseName+"kernargSegmentSize",
     1578                    expKernel.kernargSegmentSize, resKernel.kernargSegmentSize);
     1579        assertValue(testName, caseName+"groupSegmentFixedSize",
     1580                    expKernel.groupSegmentFixedSize, resKernel.groupSegmentFixedSize);
     1581        assertValue(testName, caseName+"privateSegmentFixedSize",
     1582                    expKernel.privateSegmentFixedSize, resKernel.privateSegmentFixedSize);
     1583        assertValue(testName, caseName+"kernargSegmentAlign",
     1584                    expKernel.kernargSegmentAlign, resKernel.kernargSegmentAlign);
     1585        assertValue(testName, caseName+"wavefrontSize",
     1586                    expKernel.wavefrontSize, resKernel.wavefrontSize);
     1587        assertValue(testName, caseName+"sgprsNum", expKernel.sgprsNum, resKernel.sgprsNum);
     1588        assertValue(testName, caseName+"vgprsNum", expKernel.vgprsNum, resKernel.vgprsNum);
     1589        assertValue(testName, caseName+"maxFlatWorkGroupSize",
     1590                    expKernel.maxFlatWorkGroupSize, resKernel.maxFlatWorkGroupSize);
     1591        assertValue(testName, caseName+"fixedWorkGroupSize[0]",
     1592                    expKernel.fixedWorkGroupSize[0], resKernel.fixedWorkGroupSize[0]);
     1593        assertValue(testName, caseName+"fixedWorkGroupSize[1]",
     1594                    expKernel.fixedWorkGroupSize[1], resKernel.fixedWorkGroupSize[1]);
     1595        assertValue(testName, caseName+"fixedWorkGroupSize[2]",
     1596                    expKernel.fixedWorkGroupSize[2], resKernel.fixedWorkGroupSize[2]);
     1597        assertValue(testName, caseName+"spilledSgprs",
     1598                    expKernel.spilledSgprs, resKernel.spilledSgprs);
     1599        assertValue(testName, caseName+"spilledVgprs",
     1600                    expKernel.spilledVgprs, resKernel.spilledVgprs);
     1601    }
     1602};
     1603
    14411604int main(int argc, const char** argv)
    14421605{
     
    14441607    retVal |= callTest(testMsgPackBytes);
    14451608    retVal |= callTest(testMsgPackSkip);
     1609    for (cxuint i = 0; i < sizeof(rocmMsgPackMDTestCases)/
     1610                            sizeof(ROCmMsgPackMDTestCase); i++)
     1611        try
     1612        { testParseROCmMsgPackMDCase(i, rocmMsgPackMDTestCases[i]); }
     1613        catch(const std::exception& ex)
     1614        {
     1615            std::cerr << ex.what() << std::endl;
     1616            retVal = 1;
     1617        }
    14461618    return retVal;
    14471619}
Note: See TracChangeset for help on using the changeset viewer.