[perl] Use upstream patch to fix a test failure in perl5db.t when TERM=vt100

Petr Pisar ppisar at fedoraproject.org
Tue Jan 14 08:19:30 UTC 2014


commit e17570c9529dcadabd188dc193cddab9d44e30bd
Author: Petr Písař <ppisar at redhat.com>
Date:   Tue Jan 14 09:17:28 2014 +0100

    Use upstream patch to fix a test failure in perl5db.t when TERM=vt100

 ...able-ornaments-on-perl5db-AutoTrace-tests.patch |   57 -----------
 ...-avoid-using-2-handles-to-write-to-the-de.patch |  101 ++++++++++++++++++++
 perl.spec                                          |   10 ++-
 3 files changed, 108 insertions(+), 60 deletions(-)
---
diff --git a/perl-5.19.7-avoid-using-2-handles-to-write-to-the-de.patch b/perl-5.19.7-avoid-using-2-handles-to-write-to-the-de.patch
new file mode 100644
index 0000000..5726567
--- /dev/null
+++ b/perl-5.19.7-avoid-using-2-handles-to-write-to-the-de.patch
@@ -0,0 +1,101 @@
+From 7b58d7c4e3ad14ac3c60f1ea5d1032205a086e71 Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony at 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 at 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
+
diff --git a/perl.spec b/perl.spec
index 1052e4a..6f7f85e 100644
--- a/perl.spec
+++ b/perl.spec
@@ -30,7 +30,7 @@
 Name:           perl
 Version:        %{perl_version}
 # release number must be even higher, because dual-lived modules will be broken otherwise
-Release:        291%{?dist}
+Release:        292%{?dist}
 Epoch:          %{perl_epoch}
 Summary:        Practical Extraction and Report Language
 Group:          Development/Languages
@@ -85,8 +85,9 @@ Patch10:        perl-5.19.0-Synchronize-h2ph-POD-text-with-usage-output.patch
 # Update pod2html(1) documentation, rhbz#948538, RT#117623
 Patch11:        perl-5.16.3-Synchronize-pod2html-usage-output-and-its-POD-text.patch
 
-# Fix a test failure in perl5db.t when TERM=vt100, RT#118817
-Patch12:        perl-5.18.0-Disable-ornaments-on-perl5db-AutoTrace-tests.patch
+# Fix a test failure in perl5db.t when TERM=vt100, RT#118817,
+# in upstream after 5.19.7
+Patch12:        perl-5.19.7-avoid-using-2-handles-to-write-to-the-de.patch
 
 # Prevent from loading system Term::ReadLine::Gnu while running tests,
 # RT#118821
@@ -3626,6 +3627,9 @@ sed \
 
 # Old changelog entries are preserved in CVS.
 %changelog
+* Tue Jan 14 2014 Petr Pisar <ppisar at redhat.com> - 4:5.18.2-292
+- Use upstream patch to fix a test failure in perl5db.t when TERM=vt100
+
 * Tue Dec 10 2013 Jitka Plesnikova <jplesnik at redhat.com> - 4:5.18.2-291
 - 5.18.2 bump (see <http://search.cpan.org/dist/perl-5.18.2/pod/perldelta.pod>
   for release notes)


More information about the scm-commits mailing list