xref: /openbsd-src/gnu/usr.bin/perl/t/run/switchDx.t (revision e068048151d29f2562a32185e21a8ba885482260)
1b8851fccSafresh1#!./perl -w
2b8851fccSafresh1BEGIN {
3b8851fccSafresh1    chdir 't' if -d 't';
4b8851fccSafresh1    @INC = '../lib';
5b8851fccSafresh1    require './test.pl';
6b8851fccSafresh1    skip_all_if_miniperl();
7b8851fccSafresh1}
8b8851fccSafresh1
9b8851fccSafresh1use Config;
10b8851fccSafresh1
11b8851fccSafresh1my $perlio_log = "perlio$$.txt";
12b8851fccSafresh1
13b8851fccSafresh1skip_all "DEBUGGING build required"
145759b3d2Safresh1  unless $::Config{ccflags} =~ /(?<!\S)-DDEBUGGING(?!\S)/
15b8851fccSafresh1         or $^O eq 'VMS' && $::Config{usedebugging_perl} eq 'Y';
16b8851fccSafresh1
17eac174f2Safresh1plan tests => 9;
18b8851fccSafresh1
19b8851fccSafresh1END {
20b8851fccSafresh1    unlink $perlio_log;
21b8851fccSafresh1}
22b8851fccSafresh1{
23b8851fccSafresh1    unlink $perlio_log;
24b8851fccSafresh1    local $ENV{PERLIO_DEBUG} = $perlio_log;
25b8851fccSafresh1    fresh_perl_is("print qq(hello\n)", "hello\n",
26b8851fccSafresh1                  { stderr => 1 },
27b8851fccSafresh1                  "No perlio debug file without -Di...");
28b8851fccSafresh1    ok(!-e $perlio_log, "...no perlio.txt found");
295759b3d2Safresh1    fresh_perl_like("print qq(hello\n)", qr/\nEXECUTING...\n{1,2}hello\n?/,
30b8851fccSafresh1                  { stderr => 1, switches => [ "-Di" ] },
31b8851fccSafresh1                  "Perlio debug file with both -Di and PERLIO_DEBUG...");
32b8851fccSafresh1    ok(-e $perlio_log, "... perlio debugging file found with -Di and PERLIO_DEBUG");
33b8851fccSafresh1
34b8851fccSafresh1    unlink $perlio_log;
35eac174f2Safresh1    SKIP: {
36eac174f2Safresh1        if (not $Config{taint_support}) {
37eac174f2Safresh1            skip("Your perl was built without taint support", 2);
38eac174f2Safresh1        }
39b8851fccSafresh1        fresh_perl_like("print qq(hello\n)", qr/define raw/,
40b8851fccSafresh1                      { stderr => 1, switches => [ "-TDi" ] },
41b8851fccSafresh1                      "Perlio debug output to stderr with -TDi (with PERLIO_DEBUG)...");
42b8851fccSafresh1        ok(!-e $perlio_log, "...no perlio debugging file found");
43b8851fccSafresh1    }
44eac174f2Safresh1}
45b8851fccSafresh1
46b8851fccSafresh1{
47b8851fccSafresh1    local $ENV{PERLIO_DEBUG};
48b8851fccSafresh1    fresh_perl_like("print qq(hello)", qr/define raw/,
49b8851fccSafresh1                    { stderr => 1, switches => [ '-Di' ] },
50b8851fccSafresh1                   "-Di defaults to stderr");
51*e0680481Safresh1    SKIP: {
52*e0680481Safresh1        skip("Your perl was built without taint support", 1)
53*e0680481Safresh1            unless $Config{taint_support};
54*e0680481Safresh1
55b8851fccSafresh1        fresh_perl_like("print qq(hello)", qr/define raw/,
56b8851fccSafresh1                    { stderr => 1, switches => [ '-TDi' ] },
57b8851fccSafresh1                   "Perlio debug output to STDERR with -TDi (no PERLIO_DEBUG)");
58b8851fccSafresh1    }
59*e0680481Safresh1}
60eac174f2Safresh1{
61eac174f2Safresh1    # -DXv tests
62eac174f2Safresh1    fresh_perl_like('{ my $n=1; *foo= sub () { $n }; }',
63eac174f2Safresh1                    qr/To: CV=0x[a-f0-9]+ \(ANON\), OUTSIDE=0x0 \(null\)/,
64eac174f2Safresh1                    { stderr => 1, switches => [ '-DXv' ] },
65eac174f2Safresh1                    "-DXv does not assert when dumping anonymous constant sub");
66eac174f2Safresh1}
67