102 lines
3.1 KiB
Diff
102 lines
3.1 KiB
Diff
From 7b58d7c4e3ad14ac3c60f1ea5d1032205a086e71 Mon Sep 17 00:00:00 2001
|
|
From: Tony Cook <tony@develop-help.com>
|
|
Date: Tue, 14 Jan 2014 09:24:40 +1100
|
|
Subject: [PATCH] [perl #118817] avoid using 2 handles to write to the debug
|
|
output
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Previously the tests were run with the following config:
|
|
|
|
NonStop=0 TTY=db.out LineInfo=db.out
|
|
|
|
This meant that the debugger would write the prologue, command prompts
|
|
and their results and the epilogue to one handle, and any line trace
|
|
information to the second handle. Since those handles didn't share
|
|
file a file position, the line trace info would overwrite the
|
|
prologue, and the epilogue would overwrite part of the line trace
|
|
info.
|
|
|
|
When TTY=vt100 on Redhat systems, this made the epilogue just long
|
|
enough to overwrite the line trace data that a test matched against,
|
|
causing the test to fail.
|
|
|
|
To fix this, I avoided setting LineInfo:
|
|
|
|
NonStop=0 TTY=db.out
|
|
|
|
and since LineInfo defaults to using the TTY handle, both type of
|
|
content are written to db.out *without* overwriting each other.
|
|
|
|
Unfortunately this broke some other tests, since now the command
|
|
prompts which were overwritten by line trace information are mixed in
|
|
with the line traces - I've modified the tests that failed to account
|
|
for the included command lines.
|
|
|
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
|
---
|
|
lib/perl5db.t | 15 ++++++++++++---
|
|
1 file changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/lib/perl5db.t b/lib/perl5db.t
|
|
index 17fa744..95d2030 100644
|
|
--- a/lib/perl5db.t
|
|
+++ b/lib/perl5db.t
|
|
@@ -72,7 +72,7 @@ sub _out_contents
|
|
rc(
|
|
<<'EOF',
|
|
|
|
-&parse_options("NonStop=0 ReadLine=0 TTY=db.out LineInfo=db.out");
|
|
+&parse_options("NonStop=0 ReadLine=0 TTY=db.out");
|
|
|
|
sub afterinit {
|
|
push(@DB::typeahead,
|
|
@@ -267,7 +267,7 @@ sub _quote
|
|
sub _run {
|
|
my $self = shift;
|
|
|
|
- my $rc = qq{&parse_options("NonStop=0 TTY=db.out LineInfo=db.out");\n};
|
|
+ my $rc = qq{&parse_options("NonStop=0 TTY=db.out");\n};
|
|
|
|
$rc .= join('',
|
|
map { "$_\n"}
|
|
@@ -1235,6 +1235,7 @@ DebugWrap->new({
|
|
$wrapper->contents_like(
|
|
qr/
|
|
$line_out
|
|
+ auto\(-\d+\)\s+DB<\d+>\s+\.\n
|
|
$line_out
|
|
/msx,
|
|
'Test the "." command',
|
|
@@ -2380,6 +2381,10 @@ DebugWrap->new({
|
|
$wrapper->contents_like(qr/
|
|
^main::\([^:]+:28\):\n
|
|
28:\s+myfunc\(\);\n
|
|
+ auto\(-\d+\)\s+DB<1>\s+t\n
|
|
+ Trace\ =\ on\n
|
|
+ auto\(-\d+\)\s+DB<1>\s+b\ 18\n
|
|
+ auto\(-\d+\)\s+DB<2>\s+c\n
|
|
main::myfunc\([^:]+:25\):\n
|
|
25:\s+bar\(\);\n
|
|
/msx,
|
|
@@ -2407,10 +2412,14 @@ DebugWrap->new({
|
|
$wrapper->contents_like(qr/
|
|
^main::\([^:]+:28\):\n
|
|
28:\s+myfunc\(\);\n
|
|
+ auto\(-\d+\)\s+DB<1>\s+o\ AutoTrace\n
|
|
+ \s+AutoTrace\s+=\s+'1'\n
|
|
+ auto\(-\d+\)\s+DB<2>\s+b\ 18\n
|
|
+ auto\(-\d+\)\s+DB<3>\s+c\n
|
|
main::myfunc\([^:]+:25\):\n
|
|
25:\s+bar\(\);\n
|
|
/msx,
|
|
- 'Test the t command with function calls.',
|
|
+ 'Test the o AutoTrace command with function calls.',
|
|
);
|
|
}
|
|
|
|
--
|
|
1.8.4.2
|
|
|