]> diplodocus.org Git - nmh/blobdiff - test/common.sh.in
pending-release-notes: add mhshow's "-prefer", and mh-format's %(kibi/kilo)
[nmh] / test / common.sh.in
index 67b18a8239d6bce3629b860585b376dab1e80c6c..e84d8e62c2d2e2fcad88a73dcf8e96f1acc982d2 100644 (file)
@@ -1,33 +1,32 @@
-# Common helper routines for test shell scripts -- intended to be sourced by them
+# Common helper routines for test shell scripts -- to be sourced by them
 # @configure_input@
 
 
-#### The following exported variables are set by "make check".  Ensure
+#### The following variables are set by "make check".  Ensure
 #### that they are set here so that individual tests can be run
 #### outside of make.  Requires that MH_OBJ_DIR be set on entry.
 test -z "$MH_TEST_DIR"  &&  MH_TEST_DIR="$MH_OBJ_DIR/test/testdir"
+test -z "$MH_INST_DIR"  &&  MH_INST_DIR="${MH_TEST_DIR}/inst"
 test -z "$prefix"  &&  prefix=@prefix@
 test -z "$datarootdir"  &&  datarootdir=@datarootdir@
 test -z "$exec_prefix"  &&  exec_prefix=@exec_prefix@
-test -z "$auxexecdir"  &&  auxexecdir="@libdir@"
 test -z "$bindir"  &&  bindir="@bindir@"
 test -z "$mandir"  &&  mandir="@mandir@"
-test -z "$sysconfdir"  &&  sysconfdir="@sysconfdir@"
+test -z "$nmhetcdir"  &&  nmhetcdir="@sysconfdir@/nmh"
+#### The following doesn't support running the distcheck version of
+#### test-mhparam standalone, but only via make distcheck.
+test -z "$nmhetcdirinst"  &&  nmhetcdirinst="@nmhetcdirinst@$nmhetcdir"
+test -z "$nmhlibexecdir"  &&  nmhlibexecdir="@libexecdir@/nmh"
 test -z "$supported_locks"  &&  supported_locks="@supported_locks@"
 test -z "$default_locking"  &&  default_locking="@default_locking@"
 test -z "$MULTIBYTE_ENABLED"  &&  MULTIBYTE_ENABLED="@MULTIBYTE_ENABLED@"
 test -z "$ICONV_ENABLED"  &&  ICONV_ENABLED="@ICONV_ENABLED@"
-export MH_TEST_DIR auxexecdir bindir mandir sysconfdir
-export MULTIBYTE_ENABLED ICONV_ENABLED
-
-test -z "$MH_INST_DIR"  &&  MH_INST_DIR="${MH_TEST_DIR}/inst"
-export MH_INST_DIR
 
-unset MHBUILD MHCONTEXT MHMTSUSERCONF MHN MHSHOW MHSTORE
+unset MAILDROP MHBUILD MHCONTEXT MHMTSUSERCONF MHN MHSHOW MHSTORE
 unset MHLDEBUG MHPDEBUG MHWDEBUG PAGER
 #### Set LC_ALL in individual tests as needed.  Unset these so
 #### that we don't depend on user's settings in other tests.
-unset LANG LC_ALL LC_TYPE
+unset LANG LC_ALL LC_CTYPE
 
 #### Use a test dir for tmp files when MHTMPDIR applies.
 MHTMPDIR=$MH_TEST_DIR/Mail
@@ -85,6 +84,18 @@ require_prog ()
   fi
 }
 
+# Skip test if none of the offered locales are supported.
+require_locale ()
+{
+  for locale in "$@"; do
+    if locale -a | grep -i "$locale" >/dev/null; then
+        return
+    fi
+  done
+
+  test_skip "no suitable locale available"
+}
+
 # Some stuff for doing silly progress indicators
 if [ -t 1 ] ; then
   progress_update ()
@@ -234,9 +245,9 @@ run_test() {
 setup_test ()
 {
   MH="${MH_TEST_DIR}/Mail/.mh_profile"
-  MHMTSCONF="${MH_INST_DIR}${sysconfdir}/mts.conf"
-  MH_LIB_DIR="${MH_INST_DIR}${auxexecdir}"
-  export MH MHMTSCONF MH_LIB_DIR
+  MHMTSCONF="${MH_INST_DIR}${nmhetcdir}/mts.conf"
+  MH_LIBEXEC_DIR="${MH_INST_DIR}${nmhlibexecdir}"
+  export MH MHMTSCONF MH_LIBEXEC_DIR
 
   #
   # Only install once
@@ -273,22 +284,22 @@ setup_test ()
 Path: ${MH_TEST_DIR}/Mail
 buildmimeproc: ${MH_INST_DIR}${bindir}/mhbuild
 fileproc: ${MH_INST_DIR}${bindir}/refile
-libdir: ${MH_LIB_DIR}
+libexecdir: ${MH_LIBEXEC_DIR}
 mhbuild: -nocontentid
-mhlproc: ${MH_LIB_DIR}/mhl
+mhlproc: ${MH_LIBEXEC_DIR}/mhl
 moreproc: cat
-postproc: ${MH_LIB_DIR}/post
-showproc: ${MH_LIB_DIR}/mhl
+postproc: ${MH_LIBEXEC_DIR}/post
+showproc: ${MH_LIBEXEC_DIR}/mhl
 EOF
 
-  for f in MailAliases components digestcomps distcomps forwcomps mhl.body \
-           mhl.digest mhl.format mhl.forward mhl.headers mhl.reply \
-           mhn.defaults rcvdistcomps replcomps replgroupcomps scan.MMDDYY \
-           scan.YYYYMMDD scan.curses scan.default scan.highlighted scan.mailx \
-          scan.nomime scan.size scan.time scan.timely scan.unseen
-  do
-    cp "${MH_INST_DIR}${sysconfdir}/${f}" "${MH_TEST_DIR}/Mail" || exit 1
-  done
+  if test -z '@nmhetcdirinst@'; then
+    #### This isn't used with make distcheck, so that we can use it to
+    #### be sure that etc files are not used from an existing nmh
+    #### installation.
+    #### posh doesn't like "${MH_INST_DIR}${nmhetcdir}"/*, so cd to
+    #### the directory and provide an argument without quotes to cp.
+    (cd "${MH_INST_DIR}${nmhetcdir}/"  &&  cp * "${MH_TEST_DIR}/Mail")
+  fi
 
   folder -create +inbox > /dev/null
   # create 10 basic messages