File: switchDx.t

package info (click to toggle)
perl 5.42.0-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 128,392 kB
  • sloc: perl: 534,963; ansic: 240,563; sh: 72,042; pascal: 6,934; xml: 2,428; yacc: 1,360; makefile: 1,197; cpp: 208; lisp: 1
file content (66 lines) | stat: -rw-r--r-- 2,193 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!./perl -w
BEGIN {
    chdir 't' if -d 't';
    @INC = '../lib';
    require './test.pl';
    skip_all_if_miniperl();
}

use Config;

my $perlio_log = "perlio$$.txt";

skip_all "DEBUGGING build required"
  unless $::Config{ccflags} =~ /(?<!\S)-DDEBUGGING(?!\S)/
         or $^O eq 'VMS' && $::Config{usedebugging_perl} eq 'Y';

plan tests => 9;

END {
    unlink $perlio_log;
}
{
    unlink $perlio_log;
    local $ENV{PERLIO_DEBUG} = $perlio_log;
    fresh_perl_is("print qq(hello\n)", "hello\n",
                  { stderr => 1 },
                  "No perlio debug file without -Di...");
    ok(!-e $perlio_log, "...no perlio.txt found");
    fresh_perl_like("print qq(hello\n)", qr/\nEXECUTING...\n{1,2}hello\n?/,
                  { stderr => 1, switches => [ "-Di" ] },
                  "Perlio debug file with both -Di and PERLIO_DEBUG...");
    ok(-e $perlio_log, "... perlio debugging file found with -Di and PERLIO_DEBUG");

    unlink $perlio_log;
    SKIP: {
        if (not $Config{taint_support}) {
            skip("Your perl was built without taint support", 2);
        }
        fresh_perl_like("print qq(hello\n)", qr/define raw/,
                      { stderr => 1, switches => [ "-TDi" ] },
                      "Perlio debug output to stderr with -TDi (with PERLIO_DEBUG)...");
        ok(!-e $perlio_log, "...no perlio debugging file found");
    }
}

{
    local $ENV{PERLIO_DEBUG};
    fresh_perl_like("print qq(hello)", qr/define raw/,
                    { stderr => 1, switches => [ '-Di' ] },
                   "-Di defaults to stderr");
    SKIP: {
        skip("Your perl was built without taint support", 1)
            unless $Config{taint_support};

        fresh_perl_like("print qq(hello)", qr/define raw/,
                    { stderr => 1, switches => [ '-TDi' ] },
                   "Perlio debug output to STDERR with -TDi (no PERLIO_DEBUG)");
    }
}
{
    # -DXv tests
    fresh_perl_like('{ my $n=1; *foo= sub () { $n }; }',
                    qr/To: CV=0x[a-f0-9]+ \(ANON\), OUTSIDE=0x0 \(null\)/,
                    { stderr => 1, switches => [ '-DXv' ] },
                    "-DXv does not assert when dumping anonymous constant sub");
}