diff --git a/debian/control b/debian/control index 72acf6d..19ca9a8 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: mosh Section: net Priority: optional Maintainer: Keith Winstein -Build-Depends: debhelper (>= 9), autotools-dev, protobuf-compiler, libprotobuf-dev, dh-autoreconf, pkg-config, libutempter-dev, zlib1g-dev, libncurses5-dev, libssl-dev, bash-completion +Build-Depends: debhelper (>= 9), autotools-dev, protobuf-compiler, libprotobuf-dev, dh-autoreconf, pkg-config, libutempter-dev, zlib1g-dev, libncurses5-dev, libssl-dev, bash-completion, locales, tmux, less Standards-Version: 3.9.8 Homepage: https://mosh.org Vcs-Git: https://github.com/mobile-shell/mosh.git diff --git a/src/tests/e2e-test b/src/tests/e2e-test index 678fb13..6e5a4b5 100755 --- a/src/tests/e2e-test +++ b/src/tests/e2e-test @@ -1,5 +1,7 @@ #!/bin/sh +. "$(dirname "$0")/e2e-test-subrs" + # # Validate that mosh produces expected output, using screen captures # in tmux. @@ -106,6 +108,9 @@ mosh_server() } # main +if ! set_locale; then + test_error "e2e-test: no usable locale\n" +fi # Set up environment if [ -z "$srcdir" ]; then diff --git a/src/tests/e2e-test-subrs b/src/tests/e2e-test-subrs index 4ace310..b85938d 100644 --- a/src/tests/e2e-test-subrs +++ b/src/tests/e2e-test-subrs @@ -54,3 +54,24 @@ chr() { printf '%b' "\\0$(printf %03o "$1")" } + +# If the locale is not set to a UTF-8 locale, set it to en_US.UTF-8 +# or C.UTF-8. +set_locale() +{ + # Test for a usable locale. + map=$(locale charmap 2>/dev/null) + if [ "$map" = "utf-8" ] || [ "$map" = "UTF-8" ]; then + return 0 + fi + # Attempt to find/set a usable locale. + for i in en_US.UTF-8 en_US.utf8 C.UTF-8; do + map="$(env LANG=$i locale charmap 2>/dev/null)" + if [ "$map" = "utf-8" ] || [ "$map" = "UTF-8" ]; then + export LANG=$i LC_ALL='' + return 0 + fi + done + # Fail. + return 1 +} diff --git a/src/tests/local.test b/src/tests/local.test index 1046681..c2edecc 100755 --- a/src/tests/local.test +++ b/src/tests/local.test @@ -1,4 +1,11 @@ #!/bin/sh + +. "$(dirname "$0")/e2e-test-subrs" +if ! set_locale; then + echo "$0: no usable locale" >&2 + exit 99 +fi + set -eu out=$( TERM=xterm \