VirtualBox

Changeset 9502 in vbox for trunk/src/VBox/Runtime/testcase


Ignore:
Timestamp:
Jun 8, 2008 3:02:19 AM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
31773
Message:

asm strlen. Added a few more string/mem functions to the windows R0 Runtime.

Location:
trunk/src/VBox/Runtime/testcase
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/testcase/Makefile.kmk

    r9138 r9502  
    252252        ../common/string/memcmp.asm \
    253253        ../common/string/strchr.asm \
    254         ../common/string/strcmp.asm
     254        ../common/string/strcmp.asm \
     255        ../common/string/strlen.asm
    255256
    256257tstPath_SOURCES = tstPath.cpp
  • trunk/src/VBox/Runtime/testcase/tstNoCrt-1.cpp

    r8245 r9502  
    115115# ifdef _MSC_VER
    116116#  define mempcpy nocrt_mempcpy
    117 # endif 
     117# endif
    118118#endif
    119119
     
    143143        return 1;
    144144    }
     145
     146#define CHECK_CCH(expect)  \
     147        do \
     148        { \
     149            if (cch != (expect)) \
     150            { \
     151                RTPrintf("tstNoCrt-1(%d): cb=%zu expected=%zu\n", __LINE__, cch, (expect)); \
     152                g_cErrors++; \
     153            } \
     154         } while (0)
     155    size_t cch;
    145156
    146157#define CHECK_PV(expect)  \
     
    400411        for (unsigned j = 0; j <= i; j++)
    401412        {
    402             pv = RT_NOCRT(memchr)(&s_szTest1[j], s_szTest1[i], sizeof(s_szTest1)); 
     413            pv = RT_NOCRT(memchr)(&s_szTest1[j], s_szTest1[i], sizeof(s_szTest1));
    403414            CHECK_PV(&s_szTest1[i]);
    404415        }
     
    412423        for (unsigned j = 0; j <= i; j++)
    413424        {
    414             pv = RT_NOCRT(strchr)(&s_szTest1[j], s_szTest1[i]); 
     425            pv = RT_NOCRT(strchr)(&s_szTest1[j], s_szTest1[i]);
    415426            CHECK_PV(&s_szTest1[i]);
    416427        }
     
    435446    iDiff = RT_NOCRT(strcmp)(s_szTest3, s_szTest1); CHECK_DIFF( > );
    436447
     448    /*
     449     * Some simple strlen checks.
     450     */
     451    RTPrintf("tstNoCrt-1: strlen\n");
     452    cch = RT_NOCRT(strlen)("");             CHECK_CCH(0);
     453    cch = RT_NOCRT(strlen)("1");            CHECK_CCH(1);
     454    cch = RT_NOCRT(strlen)("12");           CHECK_CCH(2);
     455    cch = RT_NOCRT(strlen)("123");          CHECK_CCH(3);
     456    cch = RT_NOCRT(strlen)("1234");         CHECK_CCH(4);
     457    cch = RT_NOCRT(strlen)("12345");        CHECK_CCH(5);
     458    cch = RT_NOCRT(strlen)(s_szTest1);      CHECK_CCH(sizeof(s_szTest1) - 1);
     459    cch = RT_NOCRT(strlen)(&s_szTest1[1]);  CHECK_CCH(sizeof(s_szTest1) - 1 - 1);
     460    cch = RT_NOCRT(strlen)(&s_szTest1[2]);  CHECK_CCH(sizeof(s_szTest1) - 1 - 2);
     461    cch = RT_NOCRT(strlen)(&s_szTest1[3]);  CHECK_CCH(sizeof(s_szTest1) - 1 - 3);
     462    cch = RT_NOCRT(strlen)(&s_szTest1[4]);  CHECK_CCH(sizeof(s_szTest1) - 1 - 4);
     463    cch = RT_NOCRT(strlen)(&s_szTest1[5]);  CHECK_CCH(sizeof(s_szTest1) - 1 - 5);
     464    cch = RT_NOCRT(strlen)(&s_szTest1[6]);  CHECK_CCH(sizeof(s_szTest1) - 1 - 6);
     465    cch = RT_NOCRT(strlen)(&s_szTest1[7]);  CHECK_CCH(sizeof(s_szTest1) - 1 - 7);
     466    cch = RT_NOCRT(strlen)(s_szTest2);      CHECK_CCH(sizeof(s_szTest2) - 1);
     467    cch = RT_NOCRT(strlen)(s_szTest3);      CHECK_CCH(sizeof(s_szTest3) - 1);
    437468
    438469    /*
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette