Changeset 4957 in CLRX


Ignore:
Timestamp:
Sep 11, 2019, 8:58:21 PM (2 months ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCmBin: Add next testcases to ROCmMsgPackWrite (for MsgPackMapWriter?).

File:
1 edited

Legend:

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

    r4956 r4957  
    2121#include <iostream>
    2222#include <cstring>
     23#include <cstdio>
    2324#include <vector>
    2425#include <memory>
     
    161162    }
    162163    /* map writer class */
     164    {
     165        static const cxbyte outBytes10[21] = { 0x83,
     166            0xa4, 'a', 'b', 'a', 'b', 15,
     167            0xa3, 'c', 'o', 'b', 0xcd, 0xe9, 0x11,
     168            0xa5, 'e', 'x', 't', 'r', 'a', 11 };
     169        std::vector<cxbyte> out;
     170        MsgPackMapWriter mwriter(3, out);
     171        mwriter.putKeyString("abab");
     172        mwriter.putValueUInt(15);
     173        mwriter.putKeyString("cob");
     174        mwriter.putValueUInt(0xe911);
     175        mwriter.putKeyString("extra");
     176        mwriter.putValueUInt(11);
     177        assertArray("MsgPackWrite0", "tc10",
     178                    Array<cxbyte>(outBytes10, outBytes10 + sizeof(outBytes10)), out);
     179    }
     180    // longer map testcase
     181    {
     182        Array<cxbyte> outBytes11(14821*10+3);
     183        outBytes11[0] = 0xde;
     184        outBytes11[1] = 14821>>8;
     185        outBytes11[2] = 14821&0xff;
     186        std::vector<cxbyte> out;
     187        MsgPackMapWriter mwriter(14821, out);
     188        for (cxuint i = 0; i < 14821; i++)
     189        {
     190            char kbuf[8], vbuf[8];
     191            ::snprintf(kbuf, 8, "%04x", i);
     192            ::snprintf(vbuf, 8, "%04x", i^0xdca1);
     193            outBytes11[3+i*10] = 0xa4;
     194            std::copy(kbuf, kbuf+4, ((char*)outBytes11.data())+3 + i*10 + 1);
     195            outBytes11[3+i*10 + 5] = 0xa4;
     196            std::copy(vbuf, vbuf+4, ((char*)outBytes11.data())+3 + i*10 + 6);
     197           
     198            mwriter.putKeyString(kbuf);
     199            mwriter.putValueString(vbuf);
     200        }
     201        assertArray("MsgPackWrite0", "tc11", outBytes11, out);
     202    }
     203    // longer map testcase
     204    {
     205        Array<cxbyte> outBytes12(793894*14+5);
     206        outBytes12[0] = 0xdf;
     207        outBytes12[1] = 793894>>24;
     208        outBytes12[2] = (793894>>16)&0xff;
     209        outBytes12[3] = (793894>>8)&0xff;
     210        outBytes12[4] = 793894&0xff;
     211        std::vector<cxbyte> out;
     212        MsgPackMapWriter mwriter(793894, out);
     213        for (cxuint i = 0; i < 793894; i++)
     214        {
     215            char kbuf[10], vbuf[10];
     216            ::snprintf(kbuf, 10, "%06x", i);
     217            ::snprintf(vbuf, 10, "%06x", (i^0x11b3dca1U)&0xffffffU);
     218            outBytes12[5+i*14] = 0xa6;
     219            std::copy(kbuf, kbuf+6, ((char*)outBytes12.data())+5 + i*14 + 1);
     220            outBytes12[5+i*14 + 7] = 0xa6;
     221            std::copy(vbuf, vbuf+6, ((char*)outBytes12.data())+5 + i*14 + 8);
     222           
     223            mwriter.putKeyString(kbuf);
     224            mwriter.putValueString(vbuf);
     225        }
     226        assertArray("MsgPackWrite0", "tc12", outBytes12, out);
     227    }
    163228}
    164229
Note: See TracChangeset for help on using the changeset viewer.