Fixes for ext/compress
[p5sagit/p5-mst-13.2.git] / lib / perl5db.t
index 8735e87..fd65ef9 100644 (file)
@@ -14,33 +14,55 @@ BEGIN {
        print "1..0 # Skip: no /dev/null\n";
        exit 0;
     }
+my $dev_tty = '/dev/tty';
+   $dev_tty = 'TT:' if ($^O eq 'VMS');
+    if (!-c $dev_tty) {
+       print "1..0 # Skip: no $dev_tty\n";
+       exit 0;
+    }
+    if ($ENV{PERL5DB}) {
+       print "1..0 # Skip: \$ENV{PERL5DB} is already set to '$ENV{PERL5DB}'\n";
+       exit 0;
+    }
 }
 
-plan(1);
+plan(2);
 
 sub rc {
     open RC, ">", ".perldb" or die $!;
     print RC @_;
     close(RC);
+    # overly permissive perms gives "Must not source insecure rcfile"
+    # and hangs at the DB(1> prompt
+    chmod 0644, ".perldb";
 }
 
+my $target = '../lib/perl5db/t/eval-line-bug';
+
 rc(
     qq|
-    &parse_options("NonStop=0 TTY=/dev/null LineInfo=db.out");
+    &parse_options("NonStop=0 TTY=db.out LineInfo=db.out");
     \n|,
 
     qq|
     sub afterinit {
        push(\@DB::typeahead,
-           "DB::print_lineinfo(\@{'main::_<perl5db/eval-line-bug'})",
            'b 23',
-           'c',
+           'n',
+           'n',
+           'n',
+           'c', # line 23
+           'n',
+           "p \\\@{'main::_<$target'}",
            'q',
        );
     }\n|,
 );
 
-runperl(switches => [ '-d' ], progfile => '../lib/perl5db/eval-line-bug');
+{
+    local $ENV{PERLDB_OPTS} = "ReadLine=0";
+    runperl(switches => [ '-d' ], progfile => $target);
+}
 
 my $contents;
 {
@@ -50,12 +72,18 @@ my $contents;
     close(I);
 }
 
-like($contents, qr/factorial/,
+like($contents, qr/sub factorial/,
     'The ${main::_<filename} variable in the debugger was not destroyed'
 );
 
+{
+    local $ENV{PERLDB_OPTS} = "ReadLine=0";
+    my $output = runperl(switches => [ '-d' ], progfile => '../lib/perl5db/t/lvalue-bug');
+    like($output, qr/foo is defined/, 'lvalue subs work in the debugger');
+}
+
 # clean up.
 
 END {
-    unlink '.perldb', 'db.out';
+    unlink qw(.perldb db.out);
 }