Boost logo

Boost-Build :

Subject: [Boost-build] User environment ignored during testing
From: K. Noel Belcourt (kbelco_at_[hidden])
Date: 2008-12-15 12:45:15


Hi,

It appears that the users environment is being ignored when running
unit tests. For example, on Darwin with intel-11.0, this test fails
because test_segments can't find the intel runtime libraries.

testing.capture-output ../bin.v2/libs/mesh/test/test_segments.test/
intel-darwin-11.0/debug/test_segments.run

     DYLD_LIBRARY_PATH=/usr/lib:$DYLD_LIBRARY_PATH
export DYLD_LIBRARY_PATH

      "../bin.v2/libs/mesh/test/test_segments.test/intel-darwin-11.0/
debug/test_segments" > "../bin.v2/libs/mesh/test/test_segments.test/
intel-darwin-11.0/debug/test_segments.output" 2>&1
     status=$?
     echo >> "../bin.v2/libs/mesh/test/test_segments.test/intel-
darwin-11.0/debug/test_segments.output"
     echo EXIT STATUS: $status >> "../bin.v2/libs/mesh/test/
test_segments.test/intel-darwin-11.0/debug/test_segments.output"
     if test $status -eq 0 ; then
         cp "../bin.v2/libs/mesh/test/test_segments.test/intel-
darwin-11.0/debug/test_segments.output" "../bin.v2/libs/mesh/test/
test_segments.test/intel-darwin-11.0/debug/test_segments.run"
     fi
     verbose=0
     if test $status -ne 0 ; then
         verbose=1
     fi
     if test $verbose -eq 1 ; then
         echo ====== BEGIN OUTPUT ======
         cat "../bin.v2/libs/mesh/test/test_segments.test/intel-
darwin-11.0/debug/test_segments.output"
         echo ====== END OUTPUT ======
     fi
     exit $status

====== BEGIN OUTPUT ======
dyld: Library not loaded: libimf.dylib
   Referenced from: /Users/kbelco/boost/status/../bin.v2/libs/mesh/
test/test_segments.test/intel-darwin-11.0/debug/test_segments
   Reason: image not found

EXIT STATUS: 133
====== END OUTPUT ======
...failed updating 5 targets...

But my environment has the correct DYLD_LIBRARY_PATH set:

s896822:~/boost kbelco$ env | grep DYLD
DYLD_LIBRARY_PATH=/opt/intel/Compiler/11.0/056/lib

and the executable works if I just run it from the command line.

s896822:~/boost kbelco$ bin.v2/libs/mesh/test/test_segments.test/
intel-darwin-11.0/debug/test_segments
s896822:~/boost kbelco$

Is there something I need to do to get Boost.build to use the users
environment when running tests?

-- Noel


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk