Boost logo

Boost-Build :

From: K. Noel Belcourt (kbelco_at_[hidden])
Date: 2007-11-09 22:44:13


On Nov 9, 2007, at 5:59 PM, Rene Rivera wrote:

> K. Noel Belcourt wrote:
>> There's a problem in execunix.c where I don't set the correct process
>> termination status if the process crashes or otherwise fails to exit
>> through normal channels (by calling exit() or_exit(), or exiting
>> through main). This patch marks the process termination status as
>> having failed if it doesn't exit through normal channels.
>>
>> If there's no objection, I'll get this committed to trunk.
>
> No objection, only a question. Is this something that affects testing
> results?

Hi Rene,

Yes, I'm seeing some inconsistent testing results. Here's an example
of this inconsistency. This test (test/prg_exec_fail2.test) ran and
appears to have failed with a divide by zero error (according to the
results/bjam.log:

[ from bjam.log ]

testing.capture-output /var/scratch2/boost/results/boost/bin.v2/libs/
test/test/prg_exec_fail2.test/pathscale-2.5/debug/prg_exec_fail2.run

      "/var/scratch2/boost/results/boost/bin.v2/libs/test/test/
prg_exec_fail2.test/pathscale-2.5/debug/prg_exec_fail2" > "/var/
scratch2/boost/results/boost/bin.v2/libs/test/test/
prg_exec_fail2.test/pathscale-2.5/debug/prg_exec_fail2.output" 2>&1
     status=$?
     echo >> "/var/scratch2/boost/results/boost/bin.v2/libs/test/test/
prg_exec_fail2.test/pathscale-2.5/debug/prg_exec_fail2.output"
     echo EXIT STATUS: $status >> "/var/scratch2/boost/results/boost/
bin.v2/libs/test/test/prg_exec_fail2.test/pathscale-2.5/debug/
prg_exec_fail2.output"
     if test $status -eq 0 ; then
         cp "/var/scratch2/boost/results/boost/bin.v2/libs/test/test/
prg_exec_fail2.test/pathscale-2.5/debug/prg_exec_fail2.output" "/var/
scratch2/boost/results/boost/bin.v2/libs/test/test/
prg_exec_fail2.test/pathscale-2.5/debug/prg_exec_fail2.run"
     fi
     verbose=0
     if test $status -ne 0 ; then
         verbose=1
     fi
     if test $verbose -eq 1 ; then
         echo ====== BEGIN OUTPUT ======
         cat "/var/scratch2/boost/results/boost/bin.v2/libs/test/test/
prg_exec_fail2.test/pathscale-2.5/debug/prg_exec_fail2.output"
         echo ====== END OUTPUT ======
     fi
     exit $status

====== BEGIN OUTPUT ======

**** exception(210): signal: integer divide by zero; address of
failing instruction: 0x0040265a
******** errors detected; see standard output for details ********

EXIT STATUS: 200

The test result in bjam.log has an EXIT STATUS of 200 yet, according
to the Sandia-pathscale 2.5 results at beta.boost.org, this test
passed. I can't figure out how the page results are generated (and
I'm not sure if the change I want to make to execunix.c will actually
fix it anyway).

-- 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