|
Packit |
7d6a7d |
################################################################################
|
|
Packit |
7d6a7d |
#
|
|
Packit |
7d6a7d |
# !!!!! Do NOT edit this file directly! !!!!!
|
|
Packit |
7d6a7d |
#
|
|
Packit |
7d6a7d |
# Edit mktests.PL and/or parts/inc/cop 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 (28) {
|
|
Packit |
7d6a7d |
load();
|
|
Packit |
7d6a7d |
plan(tests => 28);
|
|
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 |
my $package;
|
|
Packit |
7d6a7d |
{
|
|
Packit |
7d6a7d |
package MyPackage;
|
|
Packit |
7d6a7d |
$package = &Devel::PPPort::CopSTASHPV();
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
print "# $package\n";
|
|
Packit |
7d6a7d |
ok($package, "MyPackage");
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
my $file = &Devel::PPPort::CopFILE();
|
|
Packit |
7d6a7d |
print "# $file\n";
|
|
Packit |
7d6a7d |
ok($file =~ /cop/i);
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
BEGIN {
|
|
Packit |
7d6a7d |
if ($] < 5.006000) {
|
|
Packit |
7d6a7d |
# Skip
|
|
Packit |
7d6a7d |
for (1..28) {
|
|
Packit |
7d6a7d |
ok(1, 1);
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
exit;
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
BEGIN {
|
|
Packit |
7d6a7d |
package DB;
|
|
Packit |
7d6a7d |
no strict "refs";
|
|
Packit |
7d6a7d |
local $^P = 1;
|
|
Packit |
7d6a7d |
sub sub { &$DB::sub }
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
{ package One; sub one { Devel::PPPort::caller_cx($_[0]) } }
|
|
Packit |
7d6a7d |
{
|
|
Packit |
7d6a7d |
package Two;
|
|
Packit |
7d6a7d |
sub two { One::one(@_) }
|
|
Packit |
7d6a7d |
sub dbtwo {
|
|
Packit |
7d6a7d |
BEGIN { $^P = 1 }
|
|
Packit |
7d6a7d |
One::one(@_);
|
|
Packit |
7d6a7d |
BEGIN { $^P = 0 }
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|
|
Packit |
7d6a7d |
for (
|
|
Packit |
7d6a7d |
# This is rather confusing. The package is the package the call is
|
|
Packit |
7d6a7d |
# made *from*, the sub name is the sub the call is made *to*. When
|
|
Packit |
7d6a7d |
# DB::sub is involved the first call is to DB::sub from the calling
|
|
Packit |
7d6a7d |
# package, the second is to the real sub from package DB.
|
|
Packit |
7d6a7d |
[\&One::one, 0, qw/main one main one/],
|
|
Packit |
7d6a7d |
[\&One::one, 2, ],
|
|
Packit |
7d6a7d |
[\&Two::two, 0, qw/Two one Two one/],
|
|
Packit |
7d6a7d |
[\&Two::two, 1, qw/main two main two/],
|
|
Packit |
7d6a7d |
[\&Two::dbtwo, 0, qw/Two sub DB one/],
|
|
Packit |
7d6a7d |
[\&Two::dbtwo, 1, qw/main dbtwo main dbtwo/],
|
|
Packit |
7d6a7d |
) {
|
|
Packit |
7d6a7d |
my ($sub, $arg, @want) = @$_;
|
|
Packit |
7d6a7d |
my @got = $sub->($arg);
|
|
Packit |
7d6a7d |
ok(@got, @want);
|
|
Packit |
7d6a7d |
for (0..$#want) {
|
|
Packit |
7d6a7d |
ok($got[$_], $want[$_]);
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
}
|
|
Packit |
7d6a7d |
|