void T_CTEST_EXPORT2 log_err_status(UErrorCode status, const char* pattern, ...) { va_list ap; va_start(ap, pattern); if ((status == U_FILE_ACCESS_ERROR || status == U_MISSING_RESOURCE_ERROR)) { ++DATA_ERROR_COUNT; /* for informational message at the end */ if (WARN_ON_MISSING_DATA == 0) { first_line_err(); /* Fatal error. */ if (strchr(pattern, '\n') != NULL) { ++ERROR_COUNT; } else { ++ONE_ERROR; } vlog_err(NULL, pattern, ap); /* no need for prefix in default case */ } else { vlog_info("[DATA] ", pattern, ap); } } else { first_line_err(); /* Fatal error. */ if(strchr(pattern, '\n') != NULL) { ++ERROR_COUNT; } else { ++ONE_ERROR; } vlog_err(NULL, pattern, ap); /* no need for prefix in default case */ } }
void T_CTEST_EXPORT2 log_err(const char* pattern, ...) { va_list ap; if(strchr(pattern, '\n') != NULL) { /* * Count errors only if there is a line feed in the pattern * so that we do not exaggerate our error count. */ ++ERROR_COUNT; } va_start(ap, pattern); vlog_err(NULL, pattern, ap); }
void T_CTEST_EXPORT2 log_data_err(const char* pattern, ...) { va_list ap; va_start(ap, pattern); ++DATA_ERROR_COUNT; /* for informational message at the end */ if(WARN_ON_MISSING_DATA == 0) { /* Fatal error. */ if(strchr(pattern, '\n') != NULL) { ++ERROR_COUNT; } vlog_err(NULL, pattern, ap); /* no need for prefix in default case */ } else { vlog_info("[DATA] ", pattern, ap); } }