Boost logo

Boost-Build :

Subject: Re: [Boost-build] Nightly testing oddity
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2012-06-17 14:49:20


AMDG

On 06/17/2012 10:32 AM, Belcourt, Kenneth wrote:
> Hi,
>
> 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.
>

I disagree. The behavior of Boost.Build is a direct
consequence of the Jam target/updating action model.

> Here's an example that involves two targets, TransitionTestBoth.run 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/TransitionTestBoth.run
>
>
> [ 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/TransitionTestBoth.run...
>
> **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?
>

They're printed separately, because the granularity
of the output is per updating action. I don't
think that the behavior of Boost.Build should
be changed.

In Christ,
Steven Watanabe


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