From 47b8c99ab3221188ad3926108dd9d36da3b528ec Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Thu, 8 Dec 2016 15:48:34 +1100 Subject: [PATCH] Check for utf8 local support before testing it. Check for utf8 local support and if not found, do not attempt to run the utf8 tests. Suggested by djm@ --- Makefile.in | 2 ++ configure.ac | 18 ++++++++++++++++++ regress/Makefile | 4 +++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 3990f5525..e10f3742a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -580,6 +580,7 @@ tests interop-tests t-exec: regress-prep regress-binaries $(TARGETS) TEST_SSH_PUTTYGEN="puttygen"; \ TEST_SSH_CONCH="conch"; \ TEST_SSH_IPV6="@TEST_SSH_IPV6@" ; \ + TEST_SSH_UTF8="@TEST_SSH_UTF8@" ; \ TEST_SSH_ECC="@TEST_SSH_ECC@" ; \ cd $(srcdir)/regress || exit $$?; \ $(MAKE) \ @@ -604,6 +605,7 @@ tests interop-tests t-exec: regress-prep regress-binaries $(TARGETS) TEST_SSH_PUTTYGEN="$${TEST_SSH_PUTTYGEN}" \ TEST_SSH_CONCH="$${TEST_SSH_CONCH}" \ TEST_SSH_IPV6="$${TEST_SSH_IPV6}" \ + TEST_SSH_UTF8="$${TEST_SSH_UTF8}" \ TEST_SSH_ECC="$${TEST_SSH_ECC}" \ TEST_SHELL="${TEST_SHELL}" \ EXEEXT="$(EXEEXT)" \ diff --git a/configure.ac b/configure.ac index 4d9382ca7..9c8d1173b 100644 --- a/configure.ac +++ b/configure.ac @@ -1776,6 +1776,23 @@ CFLAGS="$CFLAGS -D_XOPEN_SOURCE" AC_CHECK_FUNCS([mblen mbtowc nl_langinfo wcwidth]) CFLAGS="$saved_CFLAGS" +TEST_SSH_UTF8=yes +AC_MSG_CHECKING([for utf8 locale support]) +AC_RUN_IFELSE( + [AC_LANG_PROGRAM([[ +#include + ]], [[ + char *loc = setlocale(LC_CTYPE, "en_US.UTF-8"); + if (loc != NULL) + exit(0); + exit(1); + ]])], + AC_MSG_RESULT(yes), + [AC_MSG_RESULT(no) + TEST_SSH_UTF8=no], + AC_MSG_WARN([cross compiling: assuming yes]) +) + AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include ]], @@ -5009,6 +5026,7 @@ else fi AC_CHECK_DECL([BROKEN_GETADDRINFO], [TEST_SSH_IPV6=no]) AC_SUBST([TEST_SSH_IPV6], [$TEST_SSH_IPV6]) +AC_SUBST([TEST_SSH_UTF8], [$TEST_SSH_UTF8]) AC_SUBST([TEST_MALLOC_OPTIONS], [$TEST_MALLOC_OPTIONS]) AC_SUBST([UNSUPPORTED_ALGORITHMS], [$unsupported_algorithms]) diff --git a/regress/Makefile b/regress/Makefile index 1f71761fa..bb8806818 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -225,5 +225,7 @@ unit: $$V ${.OBJDIR}/unittests/hostkeys/test_hostkeys \ -d ${.CURDIR}/unittests/hostkeys/testdata ; \ $$V ${.OBJDIR}/unittests/match/test_match ; \ - $$V ${.OBJDIR}/unittests/utf8/test_utf8 ; \ + if test "x${TEST_SSH_UTF8}" = "xyes" ; then \ + $$V ${.OBJDIR}/unittests/utf8/test_utf8 ; \ + fi \ fi