Boost logo

Boost-Build :

Subject: [Boost-build] Nightly testing oddity
From: Belcourt, Kenneth (kbelco_at_[hidden])
Date: 2012-06-17 13:32:21


I've noticed that the expect-failure rule in testing.jam will, occasionally, split the output of the failed as expected action output

        (failed-as-expected) $(marker) ;

separately from the output for the passed action output

        **passed** $(target) : $(marker) ;

That is, the passed action output doesn't show up in the output file directly after the failed as expected output, it shows up after one or more other targets have output their results. This causes problems for process_jam_log as PJL expects all output for a target to be contiguous in the output file and in cases where the output for a target is split, PJL hangs.

Now we could try to change PJL to look ahead for the expected output, or we could have PJL exit if the expected output is not found, but I think this is less satisfactory than fixing the build tools so that all output is together in one place in the output file.

Here's an example that involves two targets, and InconsistentHistoryTest1Both.o where the latter target is a failed-as-expected target.

(failed-as-expected) /scratch/kbelco/boost/results/boost/bin.v2/libs/statechart/test/InconsistentHistoryTest1Both.test/pathscale-4.0.12/debug/InconsistentHistoryTest1Both.o

    echo failed as expected > "/scratch/kbelco/boost/results/boost/bin.v2/libs/statechart/test/InconsistentHistoryTest1Both.test/pathscale-4.0.12/debug/InconsistentHistoryTest1Both.o"

testing.capture-output /scratch/kbelco/boost/results/boost/bin.v2/libs/statechart/test/TransitionTestBoth.test/pathscale-4.0.12/debug/

[ deleted bunch of TransitionTestBoth output ... ]

...failed testing.capture-output /scratch/kbelco/boost/results/boost/bin.v2/libs/statechart/test/TransitionTestBoth.test/pathscale-4.0.12/debug/

**passed** /scratch/kbelco/boost/results/boost/bin.v2/libs/statechart/test/InconsistentHistoryTest1Both.test/pathscale-4.0.12/debug/InconsistentHistoryTest1Both.test

    echo passed > "/scratch/kbelco/boost/results/boost/bin.v2/libs/statechart/test/InconsistentHistoryTest1Both.test/pathscale-4.0.12/debug/InconsistentHistoryTest1Both.test"

The output for the failed-as-expected target is split across the output for the TransitionTestBoth target leading to random nightly test failures on some platforms. Does anyone have any insight into why this happens or how we might go about fixing it?

-- Noel

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at