1 ################################################################################
3 # !!!!! Do NOT edit this file directly! !!!!!
5 # Edit mktests.PL and/or parts/inc/call instead.
7 ################################################################################
10 if ($ENV{'PERL_CORE'}) {
12 @INC = ('../lib', '../ext/Devel/PPPort/t') if -d '../lib' && -d '../ext';
13 require Config; import Config;
15 if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
16 print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
26 require 'testutil.pl' if $@;
42 join(':', @$a) eq join(':', @$b);
50 @_, defined wantarray ? wantarray ? 'x' : 'y' : 'z';
53 my $obj = bless [], 'Foo';
57 return 'bad_self' unless @_ && ref $_[0] && ref($_[0]) eq 'Foo';
62 @_, defined wantarray ? wantarray ? 'x' : 'y' : 'z';
68 # flags args expected description
69 [ &Devel::PPPort::G_SCALAR, [ ], [ qw(y 1) ], '0 args, G_SCALAR' ],
70 [ &Devel::PPPort::G_SCALAR, [ qw(a p q) ], [ qw(y 1) ], '3 args, G_SCALAR' ],
71 [ &Devel::PPPort::G_ARRAY, [ ], [ qw(x 1) ], '0 args, G_ARRAY' ],
72 [ &Devel::PPPort::G_ARRAY, [ qw(a p q) ], [ qw(b p x 3) ], '3 args, G_ARRAY' ],
73 [ &Devel::PPPort::G_DISCARD, [ ], [ qw(0) ], '0 args, G_DISCARD' ],
74 [ &Devel::PPPort::G_DISCARD, [ qw(a p q) ], [ qw(0) ], '3 args, G_DISCARD' ],
77 my ($flags, $args, $expected, $description) = @$test;
78 print "# --- $description ---\n";
79 ok(eq_array( [ &Devel::PPPort::call_sv(\&f, $flags, @$args) ], $expected));
80 ok(eq_array( [ &Devel::PPPort::call_sv(*f, $flags, @$args) ], $expected));
81 ok(eq_array( [ &Devel::PPPort::call_sv('f', $flags, @$args) ], $expected));
82 ok(eq_array( [ &Devel::PPPort::call_pv('f', $flags, @$args) ], $expected));
83 ok(eq_array( [ &Devel::PPPort::call_argv('f', $flags, @$args) ], $expected));
84 ok(eq_array( [ &Devel::PPPort::eval_sv("f(qw(@$args))", $flags) ], $expected));
85 ok(eq_array( [ &Devel::PPPort::call_method('meth', $flags, $obj, @$args) ], $expected));
88 ok(&Devel::PPPort::eval_pv('f()', 0), 'y');
89 ok(&Devel::PPPort::eval_pv('f(qw(a b c))', 0), 'y');