From: David Levine Date: Mon, 10 Oct 2016 13:54:51 +0000 (-0400) Subject: Changed test suite's require_locale() to set the locale that it X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/97d33c31f4d3fdef03610c1652b5e246184e0097 Changed test suite's require_locale() to set the locale that it finds, and added upper case versions of locale names to each test. This should allow the tests to succeed on old Solaris. --- diff --git a/test/common.sh.in b/test/common.sh.in index 47df61eb..b123aca6 100644 --- a/test/common.sh.in +++ b/test/common.sh.in @@ -110,10 +110,15 @@ require_prog () } # Skip test if none of the offered locales are supported. +# As side effect, use the first locale that is found. Note that +# some platforms allow, by way of example, en_US.UTF-8 to be used +# even though en_US.UTF8 is listed by locale -a. But by setting +# LC_ALL here, we don't rely on that. require_locale () { for locale in "$@"; do if locale -a | grep -i "$locale" >/dev/null; then + LC_ALL="$locale"; export LC_ALL return fi done diff --git a/test/dist/test-dist b/test/dist/test-dist index dc27ae86..fa00b4b3 100755 --- a/test/dist/test-dist +++ b/test/dist/test-dist @@ -389,8 +389,7 @@ run_test 'scan +outbox -width 6 2' ' 2 ' # Check that dist encodes headers using RFC-2047 properly # -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 cat >"$expected" < diff --git a/test/mhbuild/test-attach b/test/mhbuild/test-attach index 3b285ef6..c97ec394 100755 --- a/test/mhbuild/test-attach +++ b/test/mhbuild/test-attach @@ -14,8 +14,7 @@ fi setup_test -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 draft="$MH_TEST_DIR/$$.draft" backup="${MH_TEST_DIR}/`mhparam sbackup`$$.draft.orig" diff --git a/test/mhbuild/test-cte b/test/mhbuild/test-cte index 4d7c6d92..e4a8fbf5 100755 --- a/test/mhbuild/test-cte +++ b/test/mhbuild/test-cte @@ -16,8 +16,7 @@ setup_test set -e -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 draft="$MH_TEST_DIR/$$.draft" backup="${MH_TEST_DIR}/`mhparam sbackup`$$.draft.orig" diff --git a/test/mhbuild/test-ext-params b/test/mhbuild/test-ext-params index 039fe9a9..5be4514b 100755 --- a/test/mhbuild/test-ext-params +++ b/test/mhbuild/test-ext-params @@ -14,8 +14,7 @@ fi setup_test -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 draft="$MH_TEST_DIR/$$.draft" backup="${MH_TEST_DIR}/`mhparam sbackup`$$.draft.orig" diff --git a/test/mhbuild/test-header-encode b/test/mhbuild/test-header-encode index e96783f6..6459bf2a 100755 --- a/test/mhbuild/test-header-encode +++ b/test/mhbuild/test-header-encode @@ -21,8 +21,7 @@ backupname="${MH_TEST_DIR}/`mhparam sbackup`$$" # # We're going to hardcode UTF-8 for this test. # -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 # # Basic test of encoding a short subject diff --git a/test/mhbuild/test-utf8-body b/test/mhbuild/test-utf8-body index cb5aa953..22de535c 100755 --- a/test/mhbuild/test-utf8-body +++ b/test/mhbuild/test-utf8-body @@ -19,8 +19,7 @@ testname="${MH_TEST_DIR}/$$" expected="$MH_TEST_DIR/$$.expected" actual="$MH_TEST_DIR/$$.actual" -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 #### Rely on sendmail/pipe below to override default mts. mts_fakesendmail="${MHMTSCONF}-fakesendmail" diff --git a/test/mhfixmsg/test-mhfixmsg b/test/mhfixmsg/test-mhfixmsg index 167c2379..8d7a3a85 100755 --- a/test/mhfixmsg/test-mhfixmsg +++ b/test/mhfixmsg/test-mhfixmsg @@ -17,8 +17,7 @@ fi setup_test #### Make sure that html-to-text conversion is what we expect. -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 expected="$MH_TEST_DIR/test-mhfixmsg$$.expected" expected_err="$MH_TEST_DIR/test-mhfixmsg$$.expected_err" diff --git a/test/mhical/test-mhical b/test/mhical/test-mhical index 533270ed..c8b09207 100755 --- a/test/mhical/test-mhical +++ b/test/mhical/test-mhical @@ -17,8 +17,7 @@ fi setup_test #### Make sure that html-to-text conversion is what we expect. -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 #### Disable colorized output. TERM=dumb; export TERM diff --git a/test/mhl/test-rfc6532 b/test/mhl/test-rfc6532 index 96ee873d..978f291a 100755 --- a/test/mhl/test-rfc6532 +++ b/test/mhl/test-rfc6532 @@ -19,8 +19,7 @@ setup_test mhl="${MH_LIBEXEC_DIR}/mhl" #### Make sure that html-to-text conversion is what we expect. -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 # check UTF-8 headers diff --git a/test/mhlist/test-ext-params b/test/mhlist/test-ext-params index 73dcf883..fb64d416 100755 --- a/test/mhlist/test-ext-params +++ b/test/mhlist/test-ext-params @@ -16,8 +16,7 @@ fi setup_test -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 expected=$MH_TEST_DIR/$$.expected actual=$MH_TEST_DIR/$$.actual diff --git a/test/mhshow/test-charset b/test/mhshow/test-charset index 6c3c763a..9039764f 100755 --- a/test/mhshow/test-charset +++ b/test/mhshow/test-charset @@ -16,8 +16,7 @@ fi setup_test -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 test "$ICONV_ENABLED" -eq 0 && text_size=10 || text_size=11 diff --git a/test/mhshow/test-textcharset b/test/mhshow/test-textcharset index f8d854fc..8bba1695 100755 --- a/test/mhshow/test-textcharset +++ b/test/mhshow/test-textcharset @@ -20,8 +20,7 @@ if test "$ICONV_ENABLED" -eq 0; then test_skip 'test-textcharset requires that nmh have been built with iconv' fi -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 expected="$MH_TEST_DIR"/$$.expected actual="$MH_TEST_DIR"/$$.actual diff --git a/test/pick/test-pick b/test/pick/test-pick index ca19bb88..6ec67d92 100755 --- a/test/pick/test-pick +++ b/test/pick/test-pick @@ -267,9 +267,9 @@ echo 13 >"$expected" set +e -require_locale en_US.utf-8 en_US.utf8 +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 # Don't use run_prog here because it loses the environment setting. -LC_ALL=en_US.UTF-8 pick -subject foobar 13 >"$actual" 2>&1 +pick -subject foobar 13 >"$actual" 2>&1 set -e check "$expected" "$actual" diff --git a/test/post/test-rfc6531 b/test/post/test-rfc6531 index 135d6f28..89c6e36d 100755 --- a/test/post/test-rfc6531 +++ b/test/post/test-rfc6531 @@ -19,8 +19,7 @@ mhl="${MH_LIBEXEC_DIR}/mhl" SMTPUTF8=1; export SMTPUTF8 #### Make sure that html-to-text conversion is what we expect. -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 #### Enable EAI in mhbuild, via the profile. sed "s%^\(mhbuild: .*\)%\1 -headerencoding utf-8%" "$MH" >"$MH.new" diff --git a/test/repl/test-convert b/test/repl/test-convert index f7c15dc0..dd7c101e 100755 --- a/test/repl/test-convert +++ b/test/repl/test-convert @@ -76,8 +76,7 @@ check "$actual" "$expected" #### Make sure that this works with 8-bit encoding. finish_test -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 # check -convertarg with multiple parts, 7 bit diff --git a/test/scan/test-local-mailbox b/test/scan/test-local-mailbox new file mode 100755 index 00000000..0fbc89a1 --- /dev/null +++ b/test/scan/test-local-mailbox @@ -0,0 +1,41 @@ +#!/bin/sh +###################################################### +# +# Test scan with Local-Mailbox set. +# +###################################################### + +if test -z "${MH_OBJ_DIR}"; then + srcdir=`dirname "$0"`/../.. + MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR +fi + +. "$MH_OBJ_DIR/test/common.sh" + +setup_test + +# est1@example.com is a substring of test1@example.com; the latter +# should not be considered a match for the former (causing 'To:Some +# User' to be printed instead of 'Test1'). +echo 'Local-Mailbox: est1@example.com' >> "$MH" + +expected="$MH_TEST_DIR/$$.expected" +actual="$MH_TEST_DIR/$$.actual" + +cat >"$expected" <> + 2 09/29 Test2 Testing message 2<> + 3 09/29 Test3 Testing message 3<> + 4 09/29 Test4 Testing message 4<> + 5 09/29 Test5 Testing message 5<> + 6 09/29 Test6 Testing message 6<> + 7 09/29 Test7 Testing message 7<> + 8 09/29 Test8 Testing message 8<> + 9 09/29 Test9 Testing message 9<> + 10 09/29 Test10 Testing message 10<> +EOF + +run_prog scan +inbox -width 80 >"$actual" || exit 1 +check "$expected" "$actual" + +exit $failed diff --git a/test/scan/test-scan-multibyte b/test/scan/test-scan-multibyte index 3ce5df76..bab76b6c 100755 --- a/test/scan/test-scan-multibyte +++ b/test/scan/test-scan-multibyte @@ -26,8 +26,7 @@ if test "${MULTIBYTE_ENABLED}" -ne 1; then test_skip "configure did not detect multibyte support" fi -require_locale en_US.utf-8 en_US.utf8 -LC_ALL=en_US.UTF-8; export LC_ALL +require_locale en_US.UTF-8 en_US.UTF8 en_US.utf-8 en_US.utf8 # # Create a test message with RFC 2047 headers we can scan