Khaaaaan! Change 34230 wasn't right. The tests all passed because I
[p5sagit/p5-mst-13.2.git] / lib / perl5db.t
index 5323f79..2cf7958 100644 (file)
@@ -14,6 +14,16 @@ 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);
@@ -27,23 +37,32 @@ sub rc {
     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;
 {
@@ -53,12 +72,12 @@ my $contents;
     close(I);
 }
 
-like($contents, qr/factorial/,
+like($contents, qr/sub factorial/,
     'The ${main::_<filename} variable in the debugger was not destroyed'
 );
 
 # clean up.
 
 END {
-    unlink '.perldb', 'db.out';
+    unlink qw(.perldb db.out);
 }