unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH] test: set LD_LIBRARY_PATH early and keep its old contents
@ 2016-04-15 16:46 Tomi Ollila
  2016-04-15 21:18 ` [PATCH] test: test_python: set PYTHONPATH for the duration python is executed Tomi Ollila
  2016-05-15 13:50 ` [PATCH] test: set LD_LIBRARY_PATH early and keep its old contents David Bremner
  0 siblings, 2 replies; 3+ messages in thread
From: Tomi Ollila @ 2016-04-15 16:46 UTC (permalink / raw)
  To: notmuch; +Cc: tomi.ollila

Previously LD_LIBRARY_PATH was set in the middle of test case
execution, when a function setting it was called.

Previously the old contents of LD_LIBRARY_PATH was lost (if any)
when it was re-set. In some systems the old contents of
LD_LIBRARY_PATH was needed to e.g. locate suitable gmime library.
---

These changes scratch the particular itch I have with these when
running this on Scientific Linux 6.2. Before this I got quite a
few lines of noise, and notmuch printing empty strings breaking
the test suite even more. Now I get

Notmuch test suite complete.
765/768 tests passed.
1 broken test failed as expected.
2 tests failed.

Which is pretty good. Those 2 failing tests (and some skipped)
is just "normal" in this system.

 test/T360-symbol-hiding.sh | 5 ++---
 test/test-lib-common.sh    | 5 +++++
 test/test-lib.sh           | 3 ---
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/test/T360-symbol-hiding.sh b/test/T360-symbol-hiding.sh
index 3f18ec1a34fc..9c10e8eda07f 100755
--- a/test/T360-symbol-hiding.sh
+++ b/test/T360-symbol-hiding.sh
@@ -13,9 +13,8 @@ test_description='exception symbol hiding'
 
 test_begin_subtest 'running test' run_test
 mkdir -p ${PWD}/fakedb/.notmuch
-( LD_LIBRARY_PATH="$TEST_DIRECTORY/../lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" \
-		 $TEST_DIRECTORY/symbol-test ${PWD}/fakedb ${PWD}/nonexistent \
-		 2>&1 | notmuch_dir_sanitize | sed -e "s,\`,\',g" -e "s,${NOTMUCH_DEFAULT_XAPIAN_BACKEND},backend,g") > OUTPUT
+$TEST_DIRECTORY/symbol-test ${PWD}/fakedb ${PWD}/nonexistent 2>&1 \
+	| notmuch_dir_sanitize | sed -e "s,\`,\',g" -e "s,${NOTMUCH_DEFAULT_XAPIAN_BACKEND},backend,g" > OUTPUT
 
 cat <<EOF > EXPECTED
 A Xapian exception occurred opening database: Couldn't stat 'CWD/fakedb/.notmuch/xapian'
diff --git a/test/test-lib-common.sh b/test/test-lib-common.sh
index 0cdd36a74655..f5eca50066bc 100644
--- a/test/test-lib-common.sh
+++ b/test/test-lib-common.sh
@@ -58,6 +58,11 @@ restore_database () {
 TEST_DIRECTORY=$(pwd -P)
 notmuch_path=`find_notmuch_path "$TEST_DIRECTORY"`
 
+# Prepend $TEST_DIRECTORY/../lib to LD_LIBRARY_PATH, to make tests work
+# on systems where ../notmuch depends on LD_LIBRARY_PATH.
+LD_LIBRARY_PATH=${TEST_DIRECTORY%/*}/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
+export LD_LIBRARY_PATH
+
 # configure output
 . $notmuch_path/sh.config || exit 1
 
diff --git a/test/test-lib.sh b/test/test-lib.sh
index 235149b7b837..e8003237b24d 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -1175,7 +1175,6 @@ test_emacs () {
 }
 
 test_python() {
-	export LD_LIBRARY_PATH=$TEST_DIRECTORY/../lib
 	export PYTHONPATH=$TEST_DIRECTORY/../bindings/python
 
 	(echo "import sys; _orig_stdout=sys.stdout; sys.stdout=open('OUTPUT', 'w')"; cat) \
@@ -1183,7 +1182,6 @@ test_python() {
 }
 
 test_ruby() {
-    export LD_LIBRARY_PATH=$TEST_DIRECTORY/../lib
     MAIL_DIR=$MAIL_DIR ruby -I $TEST_DIRECTORY/../bindings/ruby> OUTPUT
 }
 
@@ -1191,7 +1189,6 @@ test_C () {
     exec_file="test${test_count}"
     test_file="${exec_file}.c"
     cat > ${test_file}
-    export LD_LIBRARY_PATH=${TEST_DIRECTORY}/../lib
     ${TEST_CC} ${TEST_CFLAGS} -I${TEST_DIRECTORY}/../lib -o ${exec_file} ${test_file} -L${TEST_DIRECTORY}/../lib/ -lnotmuch -ltalloc
     echo "== stdout ==" > OUTPUT.stdout
     echo "== stderr ==" > OUTPUT.stderr
-- 
2.6.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] test: test_python: set PYTHONPATH for the duration python is executed
  2016-04-15 16:46 [PATCH] test: set LD_LIBRARY_PATH early and keep its old contents Tomi Ollila
@ 2016-04-15 21:18 ` Tomi Ollila
  2016-05-15 13:50 ` [PATCH] test: set LD_LIBRARY_PATH early and keep its old contents David Bremner
  1 sibling, 0 replies; 3+ messages in thread
From: Tomi Ollila @ 2016-04-15 21:18 UTC (permalink / raw)
  To: notmuch; +Cc: tomi.ollila

Set PYTHONPATH for the duration python is executed so environment is
not changed. This also allows appending the old value of PYTHONPATH
to it in case it is set (otherwise it would have been append again and
again when test_python is called).

At the same time, use -B option to avoid writing .pyc files to
bindings/python/* (which are not cleared out by distclean).

Drop the (unused) prefix code which preserved the original stdout of the
python program and opened sys.stdout to OUTPUT. In place of that there
is now note how (debug) information can be printed to original stdout.
---

when doing LD_LIBRARY_PATH this kept irritating me -- and it looks like
this is the last place where environment is changed (using export)
in mid-execution.


 test/test-lib.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/test/test-lib.sh b/test/test-lib.sh
index 562fde7b8878..5560a9dac3db 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -1164,10 +1164,10 @@ test_emacs () {
 }
 
 test_python() {
-	export PYTHONPATH=$TEST_DIRECTORY/../bindings/python
-
-	(echo "import sys; _orig_stdout=sys.stdout; sys.stdout=open('OUTPUT', 'w')"; cat) \
-		| $NOTMUCH_PYTHON -
+    # Note: if there is need to print debug information from python program,
+    # use stdout = os.fdopen(6, 'w') or stderr = os.fdopen(7, 'w')
+    PYTHONPATH="$TEST_DIRECTORY/../bindings/python${PYTHONPATH:+:$PYTHONPATH}" \
+	$NOTMUCH_PYTHON -B - > OUTPUT
 }
 
 test_ruby() {
-- 
2.6.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] test: set LD_LIBRARY_PATH early and keep its old contents
  2016-04-15 16:46 [PATCH] test: set LD_LIBRARY_PATH early and keep its old contents Tomi Ollila
  2016-04-15 21:18 ` [PATCH] test: test_python: set PYTHONPATH for the duration python is executed Tomi Ollila
@ 2016-05-15 13:50 ` David Bremner
  1 sibling, 0 replies; 3+ messages in thread
From: David Bremner @ 2016-05-15 13:50 UTC (permalink / raw)
  To: Tomi Ollila, notmuch; +Cc: tomi.ollila

Tomi Ollila <tomi.ollila@iki.fi> writes:

> Previously LD_LIBRARY_PATH was set in the middle of test case
> execution, when a function setting it was called.
>
> Previously the old contents of LD_LIBRARY_PATH was lost (if any)
> when it was re-set. In some systems the old contents of
> LD_LIBRARY_PATH was needed to e.g. locate suitable gmime library.

Maybe I'm too fussy today, but isn't the important difference here
whether LD_LIBRARY_PATH is exported or not?

d

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-05-15 13:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-15 16:46 [PATCH] test: set LD_LIBRARY_PATH early and keep its old contents Tomi Ollila
2016-04-15 21:18 ` [PATCH] test: test_python: set PYTHONPATH for the duration python is executed Tomi Ollila
2016-05-15 13:50 ` [PATCH] test: set LD_LIBRARY_PATH early and keep its old contents David Bremner

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).