Beispiel #1
0
int main()
{
    int         cErrors = 0;
    RTR3InitExeNoArguments(0);
    RTPrintf("tstErrUnique: TESTING\n");

    for (uint32_t i = 0; i < RT_ELEMENTS(g_aErrorMessages) - 1; i++)
    {
        if (strIsPermissibleDuplicate(&g_aErrorMessages[i]))
            continue;

        for (uint32_t j = i + 1; j < RT_ELEMENTS(g_aErrorMessages); j++)
        {
            if (strIsPermissibleDuplicate(&g_aErrorMessages[j]))
                continue;

            if (g_aErrorMessages[i].iCode == g_aErrorMessages[j].iCode)
            {
                RTPrintf("tstErrUnique: status code %d can mean '%s' or '%s'\n", g_aErrorMessages[i].iCode, g_aErrorMessages[i].pszMsgShort, g_aErrorMessages[j]);
                cErrors++;
            }
        }
    }

    /*
     * Summary
     */
    if (cErrors == 0)
        RTPrintf("tstErrUnique: SUCCESS\n");
    else
        RTPrintf("tstErrUnique: FAILURE - %d errors\n", cErrors);
    return !!cErrors;
}
int main()
{
    RTTEST hTest;
    RTEXITCODE rcExit = RTTestInitAndCreate("tstRTErrUnique", &hTest);
    if (rcExit != RTEXITCODE_SUCCESS)
        return rcExit;
    RTTestBanner(hTest);

    RTTestSub(hTest, "IPRT status code");
    for (uint32_t i = 0; i < RT_ELEMENTS(g_aErrorMessages) - 1; i++)
        if (!strIsPermissibleDuplicate(&g_aErrorMessages[i]))
            for (uint32_t j = i + 1; j < RT_ELEMENTS(g_aErrorMessages); j++)
                if (   !strIsPermissibleDuplicate(&g_aErrorMessages[j])
                    && g_aErrorMessages[i].iCode == g_aErrorMessages[j].iCode)
                    RTTestFailed(hTest, "Status code %d can mean both '%s' and '%s'",
                                 g_aErrorMessages[i].iCode,
                                 g_aErrorMessages[i].pszDefine,
                                 g_aErrorMessages[j].pszDefine);

    return RTTestSummaryAndDestroy(hTest);
}