Example #1
0
int __cdecl main(int argc, char *argv[])
{
    WCHAR *checkstr;
    WCHAR buf[256] = { 0 };
    int ret;

    if (PAL_Initialize(argc, argv) != 0)
    {
        return(FAIL);
    }

    checkstr = convert("hello world");
    TestVsnwprintf(buf, 256, checkstr);
    if (memcmp(checkstr, buf, wcslen(checkstr)*2+2) != 0)
    {
        Fail("ERROR: Expected \"%s\", got \"%s\"\n",
            convertC(checkstr), convertC(buf));
    }

    TestVsnwprintf(buf, 256, convert("xxxxxxxxxxxxxxxxx"));
    ret = TestVsnwprintf(buf, 8, checkstr);
    if (memcmp(checkstr, buf, 16) != 0)
    {
        Fail("ERROR: Expected \"%8s\", got \"%8s\"\n",
            convertC(checkstr), convertC(buf));
    }
    if (ret >= 0)
    {
        Fail("ERROR: Expected negative return value, got %d.\n", ret);
    }
    if (buf[8] != (WCHAR) 'x')
    {
        Fail("ERROR: buffer overflow using \"%s\" with length 8.\n", 
            convertC(checkstr));
    }

    
    PAL_Terminate();
    return PASS;
}
Example #2
0
static void DoI64DoubleTest(WCHAR *formatstr, INT64 value, WCHAR *valuestr,
                            WCHAR *checkstr1)
{
    WCHAR buf[256] = { 0 };

    TestVsnwprintf(buf, 256, formatstr, value);
    if (memcmp(buf, checkstr1, wcslen(checkstr1) + 2) != 0)
    {
        Fail("ERROR: failed to insert %s into \"%s\"\n"
            "Expected \"%s\", got \"%s\".\n",
                value,
                convertC(formatstr),
                convertC(checkstr1),
                convertC(buf));
    }
}
Example #3
0
/* ditto with wcslen */
static void DoPointerTest(WCHAR *formatstr, void* param, WCHAR* paramstr,
                   WCHAR *checkstr1)
{
    WCHAR buf[256] = { 0 };

    TestVsnwprintf(buf, 256, formatstr, param);
    if (memcmp(buf, checkstr1, wcslen(checkstr1) + 2) != 0)

    {
        Fail("ERROR: failed to insert pointer to %#p into \"%s\"\n"
            "Expected \"%s\" got \"%s\".\n",
                paramstr,
                convertC(formatstr),
                convertC(checkstr1),
                convertC(buf));
    }
}
Example #4
0
void DoArgumentPrecDoubleTest(WCHAR *formatstr, int precision, double param,
                              WCHAR *checkstr1, WCHAR *checkstr2)
{
    WCHAR buf[256];

    TestVsnwprintf(buf, 256, formatstr, precision, param);
    if (memcmp(buf, checkstr1, wcslen(checkstr1) + 2) != 0 &&
        memcmp(buf, checkstr2, wcslen(checkstr2) + 2) != 0)
    {
        Fail("ERROR: failed to insert %f into \"%s\" with precision %d\n"
            "Expected \"%s\" or \"%s\", got \"%s\".\n",
            param, convertC(formatstr),
            precision,
            convertC(checkstr1),
            convertC(checkstr2),
            convertC(buf));
    }            
}
Example #5
0
static void DoShortTest(WCHAR *formatstr, int param, WCHAR *checkstr)
{
    WCHAR buf[256] = { 0 };
    short int n = -1;

    TestVsnwprintf(buf, 256, formatstr, &n);

    if (n != param)
    {
        Fail("ERROR: Expected count parameter to resolve to %d, got %d\n",
             param, n);
    }

    if (memcmp(buf, checkstr, wcslen(buf)*2 + 2) != 0)
    {
        Fail("ERROR: Expected \"%s\" got \"%s\".\n",
            convertC(checkstr), convertC(buf));
    }    
}