TAP::Parser::Iterator::Process(3p)

TAP::Parser::Iterator::Process3p

Iterator for process-based tap sources

Usage

  use TAP::Parser::Iterator::Process;
  my %args = (
   command  => ['python', 'setup.py', 'test'],
   merge    => 1,
   setup    => sub { ... },
   teardown => sub { ... },
  );
  my $it   = TAP::Parser::Iterator::Process->new(\%args);
  my $line = $it->next;

Version

Version 3.50

Overview

This is a simple iterator wrapper for executing external processes, used by TAP::Parser. Unless you're writing a plugin or subclassing, you probably won't need to use this module directly.

Methods

Class Methods

"new"

Create an iterator. Expects one argument containing a hashref of the form:

   command  => \@command_to_execute
   merge    => $attempt_merge_stderr_and_stdout?
   setup    => $callback_to_setup_command
   teardown => $callback_to_teardown_command

Tries to uses IPC::Open3 & IO::Select to communicate with the spawned process if they are available. Falls back onto open().

Instance Methods

"next"

Iterate through the process output, of course.

"next_raw"

Iterate raw input without applying any fixes for quirky input syntax.

"wait"

Get the wait status for this iterator's process.

"exit"

Get the exit status for this iterator's process.

"handle_unicode"

Upgrade the input stream to handle UTF8.

"get_select_handles"

Return a list of filehandles that may be used upstream in a select() call to signal that this Iterator is ready. Iterators that are not handle based should return an empty list.

Attribution

Originally ripped off from Test::Harness.

Releases

32 releases since OpenBSD 5.0; the text changed 20 times.

  1. 5.0–5.3
  2. 5.4–5.5
  3. 5.6
  4. 5.7
  5. 5.8–5.9
  6. 6.0
  7. 6.1
  8. 6.2
  9. 6.3–6.4
  10. 6.5
  11. 6.6
  12. 6.7
  13. 6.8
  14. 6.9–7.2
  15. 7.3
  16. 7.4
  17. 7.5
  18. 7.6
  19. 7.7–7.8
  20. 7.9
  21. 8.0

From man 8.0-current-20261101 in OpenBSD 8.0-current (2026-11-01). Parsed by carta from the page's man source.