demerphq wrote:
>> I found that the suggested code for saving and restoring STDOUT and
>> STDERR given in "perldoc -f open" seems to work OK.  This is essentially
>> what IPC::Run3 is doing -- capturing to an external file and then
>> reading it back in and making it available.
> 
> Yeah, but thats a can of worms in of itself. Using backticks is
> simple, and requires no special stuff. If you dont mind blocking until
> the other process completes,  I see no reason to use another more
> complex approach.

We do mind blocking until the other process (ie. the test) completes.  
Otherwise you don't get that nice "30/309 tests" progress counter.

I'm surprised simply tying STDOUT and STDERR doesn't work...  Well, its 
testable.

Talk with the CPANPLUS guys.  They had to solve this problem I believe.  Some 
combination of IPC::Run, IPC::Run3 and IPC::Open3 should do it.

Something to consider in all this is that TAPx::Parser needs to know to display 
what goes to STDERR and suppress what goes to STDOUT.  This means you simply 
can't mash the two streams together, you have to read them separately and get 
the order right.  This is Hard and one of the reasons Test::Harness just leaves 
STDERR alone.

Once again, you will probably be best served by just leaving STDERR alone and 
working on a real TAP diagnostic syntax.

Reply via email to