test: generate run_emacs script once on test startup
authorDmitry Kurochkin <dmitry.kurochkin@gmail.com>
Tue, 28 Jun 2011 04:45:10 +0000 (08:45 +0400)
committerCarl Worth <cworth@cworth.org>
Tue, 28 Jun 2011 22:06:47 +0000 (15:06 -0700)
Instead of generating auxiliary run_emacs script every time
test_emacs is run, do it once in the beginning of the test.

Also, use absolute paths in the script to make it more robust.

test/test-lib.sh

index 7c8a86f6f282b680ea302e2a39f8923b9f153fe5..48bace2c9368915d16ccaa9d9f9ec0dd67ca0e99 100755 (executable)
@@ -839,11 +839,11 @@ test_done () {
        fi
 }
 
-test_emacs () {
+emacs_generate_script () {
        # Construct a little test script here for the benefit of the user,
        # (who can easily run "run_emacs" to get the same emacs environment
        # for investigating any failures).    
-       cat <<EOF > run_emacs
+       cat <<EOF >"$TMP_DIRECTORY/run_emacs"
 #!/bin/sh
 export PATH=$PATH
 export NOTMUCH_CONFIG=$NOTMUCH_CONFIG
@@ -867,12 +867,15 @@ fi
 # --load               Force loading of notmuch.el and test-lib.el
 
 emacs \$BATCH --no-init-file --no-site-file \
-       --directory ../../emacs --load notmuch.el \
-       --directory .. --load test-lib.el \
+       --directory "$TMP_DIRECTORY/../../emacs" --load notmuch.el \
+       --directory "$TMP_DIRECTORY/.." --load test-lib.el \
        --eval "(progn \$@)"
 EOF
-       chmod a+x ./run_emacs
-       ./run_emacs "$@"
+       chmod a+x "$TMP_DIRECTORY/run_emacs"
+}
+
+test_emacs () {
+       "$TMP_DIRECTORY/run_emacs" "$@"
 }
 
 
@@ -1000,6 +1003,8 @@ primary_email=test_suite@notmuchmail.org
 other_email=test_suite_other@notmuchmail.org;test_suite@otherdomain.org
 EOF
 
+emacs_generate_script
+
 
 # Use -P to resolve symlinks in our working directory so that the cwd
 # in subprocesses like git equals our $PWD (for pathname comparisons).