static void TestFCDCrash(void) { static const char *test[] = { "Gr\\u00F6\\u00DFe", "Grossist" }; char *icuDataDir = safeGetICUDataDirectory(); UErrorCode status = U_ZERO_ERROR; UCollator *coll = ucol_open("es", &status); if(U_FAILURE(status)) { log_err("Couldn't open collator\n"); return; } ucol_close(coll); coll = NULL; u_cleanup(); u_setDataDirectory(icuDataDir); coll = ucol_open("de_DE", &status); if(U_FAILURE(status)) { log_err("Couldn't open collator\n"); return; } ucol_setAttribute(coll, UCOL_NORMALIZATION_MODE, UCOL_ON, &status); genericOrderingTest(coll, test, 2); ucol_close(coll); free(icuDataDir); }
static void TestFCDCrash(void) { static const char *test[] = { "Gr\\u00F6\\u00DFe", "Grossist" }; UErrorCode status = U_ZERO_ERROR; UCollator *coll = ucol_open("es", &status); if(U_FAILURE(status)) { log_err_status(status, "Couldn't open collator -> %s\n", u_errorName(status)); return; } ucol_close(coll); coll = NULL; ctest_resetICU(); coll = ucol_open("de_DE", &status); if(U_FAILURE(status)) { log_err_status(status, "Couldn't open collator -> %s\n", u_errorName(status)); return; } ucol_setAttribute(coll, UCOL_NORMALIZATION_MODE, UCOL_ON, &status); genericOrderingTest(coll, test, 2); ucol_close(coll); }
void genericLocaleStarter(const char *locale, const char * const s[], uint32_t size) { UErrorCode status = U_ZERO_ERROR; UCollator *coll = ucol_open(locale, &status); log_verbose("Locale starter for %s\n", locale); if(U_SUCCESS(status)) { genericOrderingTest(coll, s, size); } else if(status == U_FILE_ACCESS_ERROR) { log_data_err("Is your data around?\n"); return; } else { log_err("Unable to open collator for locale %s\n", locale); } ucol_close(coll); }