Eirik Berg Hanssen > Test-Trap > Test::Trap::Builder::SystemSafe

Download:
Test-Trap-v0.2.4.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  2
Open  2
View/Report Bugs
Module Version: v0.2.4   Source   Latest Release: Test-Trap-v0.2.4.0_1

NAME ^

Test::Trap::Builder::SystemSafe - "Safe" output layer backend using File::Temp

VERSION ^

Version 0.2.4

DESCRIPTION ^

This module provides an implementation systemsafe, based on File::Temp, for the trap's output layers. This implementation insists on reopening the output file handles with the same descriptors, and therefore, unlike Test::Trap::Builder::TempFile and Test::Trap::Builder::PerlIO, is able to trap output from forked-off processes, including system().

See also Test::Trap (:stdout and :stderr) and Test::Trap::Builder (output_layer).

CAVEATS ^

Using File::Temp, we need privileges to create tempfiles.

We need disk space for the output of every trap (it should clean up after the trap is sprung).

Disk access may be slow -- certainly compared to the in-memory files of PerlIO.

If the file handle we try to trap using this backend is on an in-memory file, it would not be available to other processes in any case. Rather than change the semantics of the trapped code or silently fail to trap output from forked-off processes, we just raise an exception in this case.

If there is another file handle with the same descriptor (f ex after an open OTHER, '>&=', THIS), we can't get that file descriptor. Rather than silently fail, we again raise an exception.

Threads? No idea. It might even work correctly.

BUGS ^

Please report any bugs or feature requests directly to the author.

AUTHOR ^

Eirik Berg Hanssen, <ebhanssen@cpan.org>

COPYRIGHT & LICENSE ^

Copyright 2006-2014 Eirik Berg Hanssen, All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

syntax highlighting: