diff --git a/icu4c/source/configure.ac b/icu4c/source/configure.ac index 8ffacf8795a9..8a9aa091564f 100644 --- a/icu4c/source/configure.ac +++ b/icu4c/source/configure.ac @@ -1103,6 +1103,21 @@ If set, it will REPLACE any automatic list of libraries.], *) AC_MSG_ERROR(bad value ${enableval} for --enable-samples) ;; esac], samples=true) + +# Enable Automake-compatible test output format +AC_ARG_ENABLE([automake-test-format], + AS_HELP_STRING([--enable-automake-test-format], + [Generate test output in Automake format (PASS / FAIL: testname) ]), + [ + if test "x$enableval" = "xyes"; then + UCONFIG_CPPFLAGS="${UCONFIG_CPPFLAGS} -DU_AUTOMAKE_TEST_FORMAT=1" + AC_MSG_RESULT([Automake test format is enabled]) + else + AC_MSG_RESULT([Automake test format is disabled]) + fi + ], + [enable_automake_test_format=no]) + ICU_CONDITIONAL(SAMPLES, test "$samples" = true) ICUDATA_CHAR=$U_ENDIAN_CHAR @@ -1366,3 +1381,5 @@ then fi $as_unset _CXX_CXXSUFFIX + + diff --git a/icu4c/source/test/intltest/intltest.cpp b/icu4c/source/test/intltest/intltest.cpp index a856715837e8..75a6c686b064 100644 --- a/icu4c/source/test/intltest/intltest.cpp +++ b/icu4c/source/test/intltest/intltest.cpp @@ -824,11 +824,19 @@ UBool IntlTest::runTestLoop( char* testname, char* par, char *baseName ) saveBaseLoc[0]=0; /* reset path */ if (lastErrorCount == errorCount) { - snprintf( msg, sizeof(msg), " } OK: %s ", name ); + #ifdef U_AUTOMAKE_TEST_FORMAT + snprintf(msg, sizeof(msg), "PASS: %s\n }", name); + #else + snprintf(msg, sizeof(msg), " } OK: %s ", name ); + #endif if(!no_time) str_timeDelta(msg+strlen(msg),timeStop-timeStart); lastTestFailed = false; }else{ + #ifdef U_AUTOMAKE_TEST_FORMAT + snprintf(msg, sizeof(msg), "FAIL: %s\n } (ERRORS: %li)", name, static_cast(errorCount - lastErrorCount)); + #else snprintf(msg, sizeof(msg), " } ERRORS (%li) in %s", static_cast(errorCount - lastErrorCount), name); + #endif if(!no_time) str_timeDelta(msg+strlen(msg),timeStop-timeStart); for(int i=0;iname,ERROR_COUNT - myERROR_COUNT); + #else + log_testinfo_i("} ---[%d ERRORS in %s] ", ERROR_COUNT - myERROR_COUNT,pathToFunction); + #endif strcpy(ERROR_LOG[ERRONEOUS_FUNCTION_COUNT++], pathToFunction); } else { + #ifdef U_AUTOMAKE_TEST_FORMAT + log_testinfo_i("\nPASS: %s\n", root->name); + #endif if(!ON_LINE) { /* had some output */ int spaces = FLAG_INDENT-(depth-1); log_testinfo_i("} %*s[OK] ", spaces, "---");