Reverted TZ hack to tests, 9ea2daf5e74e3ff03043cfa6fb68033aea0da52a. A code fix...
[mmh] / test / setup-test
index 2636a5d..bf405f3 100755 (executable)
@@ -1,14 +1,46 @@
 #!/bin/sh
+#
+# Copy our sources and configuration, but change the installation
+# prefix so that we can test with a completely independent
+# installation.
 
-set -e
+# Get full pathnames that we'll need.  Assumes that this script is
+# located in the nmh test subdirectory.
+cd `dirname $0`
+testdir=`pwd`
+srcdir=`dirname $testdir`
+builddir=$testdir/testbuild
+installdir=$testdir/testinstall
 
-TEMPDIR=`mktemp -d /tmp/nmh-test-XXXXXXXX`
-echo $TEMPDIR > test-temp-dir
+#### Set up builddir.
+[ -d $builddir ]  ||  mkdir -p $builddir
+cd $builddir
 
-cd ..
-autoheader && autoconf && date > stamp-h.in
-./configure --prefix=$TEMPDIR --with-locking=fcntl --enable-debug
-make clean
-make install
+#### Expedient way to copy the sources and configuration.
+if rsync -h >/dev/null 2>&1; then
+  rsync -a $srcdir/ --exclude .git --exclude test --exclude .deps \
+                    --exclude '*.gz' --exclude '*.*o' .
+else
+  (cd $srcdir && tar cf - \
+    `find . -name .git -prune -o -name test -prune -o -name .deps -prune -o \
+       \( ! -type d ! -name '*.gz' ! -name '*.*o' -print \)`) | \
+  tar xpf -
+fi
 
-echo "Path: $TEMPDIR/Mail" > $TEMPDIR/mh_profile
+#### Set up new configuration.
+#### Put it in a file so we don't have to mess with shell quoting.  It
+#### would get tricky with configure options that can contain embedded
+#### spaces, such as --enable-masquerade and --with-smtpservers.
+reconfig=reconfig-for-test
+echo 'set '/bin/sh' './configure' \' > $reconfig
+#### Configure allows multiple --prefix but ignores all but the last.
+#### So add the one we want to use.  This is easier than trying to change
+#### an existing --prefix, esp. if it has quoted characters.
+echo $(./config.status --config) \'--prefix="$installdir"\' >> $reconfig
+echo 'exec "$@"' >> $reconfig
+
+echo configuring the test installation in "$installdir" . . .
+/bin/sh $reconfig > /dev/null
+
+echo building the test installation . . .
+make install > /dev/null