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
|
||
|
|