TAP::Parser::SourceHandler::Perl



TAP::Parser::SourceHandler::Perl

NAME
VERSION
SYNOPSIS
DESCRIPTION
METHODS
SUBCLASSING
SEE ALSO

NAME

TAP::Parser::SourceHandler::Perl − Stream TAP from a Perl executable

VERSION

Version 3.23

SYNOPSIS

  use TAP::Parser::Source;
  use TAP::Parser::SourceHandler::Perl;
  my $source = TAP::Parser::Source−>new−>raw( \'script.pl' );
  $source−>assemble_meta;
  my $class = 'TAP::Parser::SourceHandler::Perl';
  my $vote  = $class−>can_handle( $source );
  my $iter  = $class−>make_iterator( $source );

DESCRIPTION

This is a Perl TAP::Parser::SourceHandler − it has 2 jobs:

1. Figure out if the TAP::Parser::Source it’s given is actually a Perl script ("can_handle").

2. Creates an iterator for Perl sources ("make_iterator").

Unless you’re writing a plugin or subclassing TAP::Parser, you probably won’t need to use this module directly.

METHODS

Class Methods
"can_handle"

  my $vote = $class−>can_handle( $source );

Only votes if $source looks like a file. Casts the following votes:

  0.9  if it has a shebang ala "#!...perl"
  0.75 if it has any shebang
  0.8  if it's a .t file
  0.9  if it's a .pl file
  0.75 if it's in a 't' directory
  0.25 by default (backwards compat)

"make_iterator"

  my $iterator = $class−>make_iterator( $source );

Constructs & returns a new TAP::Parser::Iterator::Process for the source. Assumes "$source−>raw" contains a reference to the perl script. "croak"s if the file could not be found.

The command to run is built as follows:

  $perl @switches $perl_script @test_args

The perl command to use is determined by "get_perl". The command generated is guaranteed to preserve:

  PERL5LIB
  PERL5OPT
  Taint Mode, if set in the script's shebang

Note: the command generated will not respect any shebang line defined in your Perl script. This is only a problem if you have compiled a custom version of Perl or if you want to use a specific version of Perl for one test and a different version for another, for example:

  #!/path/to/a/custom_perl −−some −−args
  #!/usr/local/perl−5.6/bin/perl −w

Currently you need to write a plugin to get around this.

"get_taint"

Decode any taint switches from a Perl shebang line.

  # $taint will be 't'
  my $taint = TAP::Parser::SourceHandler::Perl−>get_taint( '#!/usr/bin/perl −t' );
  # $untaint will be undefined
  my $untaint = TAP::Parser::SourceHandler::Perl−>get_taint( '#!/usr/bin/perl' );

"get_perl"

Gets the version of Perl currently running the test suite.

SUBCLASSING

Please see " SUBCLASSING " in TAP::Parser for a subclassing overview.

Example

  package MyPerlSourceHandler;
  use strict;
  use vars '@ISA';
  use TAP::Parser::SourceHandler::Perl;
  @ISA = qw( TAP::Parser::SourceHandler::Perl );
  # use the version of perl from the shebang line in the test file
  sub get_perl {
      my $self = shift;
      if (my $shebang = $self−>shebang( $self−>{file} )) {
          $shebang =~ /^#!(.*\bperl.*?)(?:(?:\s)|(?:$))/;
          return $1 if $1;
      }
      return $self−>SUPER::get_perl(@_);
  }

SEE ALSO

TAP::Object, TAP::Parser, TAP::Parser::IteratorFactory, TAP::Parser::SourceHandler, TAP::Parser::SourceHandler::Executable, TAP::Parser::SourceHandler::File, TAP::Parser::SourceHandler::Handle, TAP::Parser::SourceHandler::RawTAP



More Linux Commands

manpages/gnutls_certificate_server_set_retrieve_function.3.html
gnutls_certificate_server_set_retrieve_function.3...........
gnutls_certificate_server_set_retrieve_function.3 - This function sets a callback to be called in order to retrieve the certificate to be used in the handshake.

manpages/CPU_SET_S.3.html
CPU_SET_S(3) - macros for manipulating CPU sets (Man Page)
The cpu_set_t data structure represents a set of CPUs. CPU sets are used by sched_setaffinity(2) and similar interfaces. The cpu_set_t data type is implemented

manpages/audit_log_user_avc_message.3.html
audit_log_user_avc_message(3) - log a user avc message......
This function will log a message to the audit system using a predefined message format. This function should be used by all apps that are SE Linux object manage

manpages/keyctl_get_keyring_ID.3.html
keyctl_get_keyring_ID(3) - Get the ID of a special keyring
keyctl_get_keyring_ID() maps a special key or keyring ID to the serial number of the key actually representing that feature. The serial number will be returned

manpages/glEnable.3gl.html
glEnable(3gl) - enable or disable server-side GL capabilitie
glEnable and glDisable enable and disable various capabilities. Use glIsEnabled or glGet to determine the current setting of any capability. The initial value f

manpages/securetty.5.html
securetty(5) - file which lists ttys from which root can log
The file /etc/securetty is used by (some versions of) login(1). The file contains the device names of terminal lines (one per line, without leading /dev/) on wh

manpages/pamfix.1.html
pamfix(1) repair a Netpbm image with various corruptions....
This program is part of Netpbm(1) pamfix reads a stream that is mostly a Netpbm image but may have certain types of corruptions and produces a valid Netpbm imag

manpages/isendwin.3ncurses.html
isendwin(3ncurses) - curses screen initialization and manipu
initscr is normally the first curses routine to call when initializing a program. A few special routines sometimes need to be called before it; these are slk_in

manpages/lua5.2.1.html
lua5.2(1) Lua interpreter (Commands - Linux manual page)....
lua is the standalone Lua interpreter. It loads and executes Lua programs, either in textual source form or in precompiled binary form. (Precompiled binaries ar

manpages/gnutls_pkcs7_init.3.html
gnutls_pkcs7_init(3) - API function - Linux manual page.....
This function will initialize a PKCS7 structure. PKCS7 structures usually contain lists of X.509 Certificates and X.509 Certificate revocation lists. RETURNS On

manpages/XtVaAppInitialize.3.html
XtVaAppInitialize(3) - initialize, open, or close a display
The XtAppInitialize function calls XtToolkitInitialize followed by XtCreateApplicationContext, then calls XtOpenDisplay with display_string NULL and application

manpages/XtWindowOfObject.3.html
XtWindowOfObject(3) - obtain window information about a widg
XtDisplay returns the display pointer for the specified widget. XtDisplayOfObject returns the display pointer for the specified object. XtScreen returns the scr





We can't live, work or learn in freedom unless the software we use is free.