|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
#
|
|
Packit |
7d6a7d |
# !!!!! Do NOT edit this file directly! !!!!!
|
|
Packit |
7d6a7d |
#
|
|
Packit |
7d6a7d |
# Edit mktests.PL and/or parts/inc/call instead.
|
|
Packit |
7d6a7d |
#
|
|
Packit |
7d6a7d |
# This file was automatically generated from the definition files in the
|
|
Packit |
7d6a7d |
# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
|
|
Packit |
7d6a7d |
# works, please read the F<HACKERS> file that came with this distribution.
|
|
Packit |
7d6a7d |
#
|
|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
BEGIN {
|
|
Packit |
7d6a7d |
if ($ENV{'PERL_CORE'}) {
|
|
Packit |
7d6a7d |
chdir 't' if -d 't';
|
|
Packit |
7d6a7d |
@INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
|
|
Packit |
7d6a7d |
require Config; import Config;
|
|
Packit |
7d6a7d |
use vars '%Config';
|
|
Packit |
7d6a7d |
if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
|
|
Packit |
7d6a7d |
print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
|
|
Packit |
7d6a7d |
exit 0;
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
else {
|
|
Packit |
7d6a7d |
unshift @INC, 't';
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
sub load {
|
|
Packit |
7d6a7d |
eval "use Test";
|
|
Packit |
7d6a7d |
require 'testutil.pl' if $@;
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
if (52) {
|
|
Packit |
7d6a7d |
load();
|
|
Packit |
7d6a7d |
plan(tests => 52);
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
use Devel::PPPort;
|
|
Packit |
7d6a7d |
use strict;
|
|
Packit |
7d6a7d |
$^W = 1;
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
package Devel::PPPort;
|
|
Packit |
7d6a7d |
use vars '@ISA';
|
|
Packit |
7d6a7d |
require DynaLoader;
|
|
Packit |
7d6a7d |
@ISA = qw(DynaLoader);
|
|
Packit |
7d6a7d |
bootstrap Devel::PPPort;
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
package main;
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
sub eq_array
|
|
Packit |
7d6a7d |
{
|
|
Packit |
7d6a7d |
my($a, $b) = @_;
|
|
Packit |
7d6a7d |
join(':', @$a) eq join(':', @$b);
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
sub f
|
|
Packit |
7d6a7d |
{
|
|
Packit |
7d6a7d |
shift;
|
|
Packit |
7d6a7d |
unshift @_, 'b';
|
|
Packit |
7d6a7d |
pop @_;
|
|
Packit |
7d6a7d |
@_, defined wantarray ? wantarray ? 'x' : 'y' : 'z';
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
my $obj = bless [], 'Foo';
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
sub Foo::meth
|
|
Packit |
7d6a7d |
{
|
|
Packit |
7d6a7d |
return 'bad_self' unless @_ && ref $_[0] && ref($_[0]) eq 'Foo';
|
|
Packit |
7d6a7d |
shift;
|
|
Packit |
7d6a7d |
shift;
|
|
Packit |
7d6a7d |
unshift @_, 'b';
|
|
Packit |
7d6a7d |
pop @_;
|
|
Packit |
7d6a7d |
@_, defined wantarray ? wantarray ? 'x' : 'y' : 'z';
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
my $test;
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
for $test (
|
|
Packit |
7d6a7d |
# flags args expected description
|
|
Packit |
7d6a7d |
[ &Devel::PPPort::G_SCALAR, [ ], [ qw(y 1) ], '0 args, G_SCALAR' ],
|
|
Packit |
7d6a7d |
[ &Devel::PPPort::G_SCALAR, [ qw(a p q) ], [ qw(y 1) ], '3 args, G_SCALAR' ],
|
|
Packit |
7d6a7d |
[ &Devel::PPPort::G_ARRAY, [ ], [ qw(x 1) ], '0 args, G_ARRAY' ],
|
|
Packit |
7d6a7d |
[ &Devel::PPPort::G_ARRAY, [ qw(a p q) ], [ qw(b p x 3) ], '3 args, G_ARRAY' ],
|
|
Packit |
7d6a7d |
[ &Devel::PPPort::G_DISCARD, [ ], [ qw(0) ], '0 args, G_DISCARD' ],
|
|
Packit |
7d6a7d |
[ &Devel::PPPort::G_DISCARD, [ qw(a p q) ], [ qw(0) ], '3 args, G_DISCARD' ],
|
|
Packit |
7d6a7d |
)
|
|
Packit |
7d6a7d |
{
|
|
Packit |
7d6a7d |
my ($flags, $args, $expected, $description) = @$test;
|
|
Packit |
7d6a7d |
print "# --- $description ---\n";
|
|
Packit |
7d6a7d |
ok(eq_array( [ &Devel::PPPort::call_sv(\&f, $flags, @$args) ], $expected));
|
|
Packit |
7d6a7d |
ok(eq_array( [ &Devel::PPPort::call_sv(*f, $flags, @$args) ], $expected));
|
|
Packit |
7d6a7d |
ok(eq_array( [ &Devel::PPPort::call_sv('f', $flags, @$args) ], $expected));
|
|
Packit |
7d6a7d |
ok(eq_array( [ &Devel::PPPort::call_pv('f', $flags, @$args) ], $expected));
|
|
Packit |
7d6a7d |
ok(eq_array( [ &Devel::PPPort::call_argv('f', $flags, @$args) ], $expected));
|
|
Packit |
7d6a7d |
ok(eq_array( [ &Devel::PPPort::eval_sv("f(qw(@$args))", $flags) ], $expected));
|
|
Packit |
7d6a7d |
ok(eq_array( [ &Devel::PPPort::call_method('meth', $flags, $obj, @$args) ], $expected));
|
|
Packit |
7d6a7d |
ok(eq_array( [ &Devel::PPPort::call_sv_G_METHOD('meth', $flags, $obj, @$args) ], $expected));
|
|
Packit |
7d6a7d |
};
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
ok(&Devel::PPPort::eval_pv('f()', 0), 'y');
|
|
Packit |
7d6a7d |
ok(&Devel::PPPort::eval_pv('f(qw(a b c))', 0), 'y');
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
ok(!defined $::{'less::'}, 1, "Hadn't loaded less yet");
|
|
Packit |
7d6a7d |
Devel::PPPort::load_module(0, "less", undef);
|
|
Packit |
7d6a7d |
ok(defined $::{'less::'}, 1, "Have now loaded less");
|
|
Packit |
7d6a7d |
|