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); }