Make indirect play nice with Devel::CallParser
[perl/modules/indirect.git] / t / 50-external.t
1 #!perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 3;
7
8 use lib 't/lib';
9 use VPIT::TestHelpers;
10
11 BEGIN { delete $ENV{PERL_INDIRECT_PM_DISABLE} }
12
13 sub run_perl {
14  my $code = shift;
15
16  my ($SystemRoot, $PATH) = @ENV{qw<SystemRoot PATH>};
17  local %ENV;
18  $ENV{SystemRoot} = $SystemRoot if $^O eq 'MSWin32' and defined $SystemRoot;
19  $ENV{PATH}       = $PATH       if $^O eq 'cygwin'  and defined $PATH;
20
21  system { $^X } $^X, '-T', map("-I$_", @INC), '-e', $code;
22 }
23
24 {
25  my $status = run_perl 'no indirect; qq{a\x{100}b} =~ /\A[\x00-\x7f]*\z/;';
26  is $status, 0, 'RT #47866';
27 }
28
29 SKIP:
30 {
31  skip 'Fixed in core only since 5.12' => 1 unless "$]" >= 5.012;
32  my $status = run_perl 'no indirect hook => sub { exit 2 }; new X';
33  is $status, 2 << 8, 'no semicolon at the end of -e';
34 }
35
36 SKIP:
37 {
38  load_or_skip('Devel::CallParser', undef, undef, 1);
39  my $status = run_perl "use Devel::CallParser (); no indirect; sub ok { } ok 1";
40  is $status, 0, 'indirect is not getting upset by Devel::CallParser';
41 }