TAP::Parser::SourceHandler::Perl man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]

TAP::Parser::SourceHanUser:Contributed PerlTAP::Parser::SourceHandler::Perl(3)

NAME
       TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable

VERSION
       Version 3.26

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 the TAP::Parser::SourceHandler manpage - it has 2 jobs:

       1. Figure out if the the TAP::Parser::Source manpage it's given is
       actually a Perl script (the can_handle entry elsewhere in this docu‐
       ment).

       2. Creates an iterator for Perl sources (the make_iterator entry else‐
       where in this document).

       Unless you're writing a plugin or subclassing the TAP::Parser manpage,
       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 the TAP::Parser::Iterator::Process manpage
       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 the get_perl entry elsewhere
       in this document.  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 the SUBCLASSING entry in the TAP::Parser manpage for a sub‐
       classing 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
       the TAP::Object manpage, the TAP::Parser manpage, the
       TAP::Parser::IteratorFactory manpage, the TAP::Parser::SourceHandler
       manpage, the TAP::Parser::SourceHandler::Executable manpage, the
       TAP::Parser::SourceHandler::File manpage, the TAP::Parser::SourceHan‐
       dler::Handle manpage, the TAP::Parser::SourceHandler::RawTAP manpage

3rd Berkeley Distribution	  perl v5.6TAP::Parser::SourceHandler::Perl(3)
[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net