Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Yao Qi <yao@codesourcery.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH] native mingw32 gdb, eol format
Date: Sat, 20 Jul 2013 00:38:00 -0000	[thread overview]
Message-ID: <51E9DBD4.4070605@codesourcery.com> (raw)
In-Reply-To: <83ppuj2p7r.fsf@gnu.org>

On 07/16/2013 10:50 AM, Eli Zaretskii wrote:
> No, it's not.  A MinGW GDB is a native Windows program, and should
> behave like one.  Windows programs generally don't expect text coming
> through pipes to have Unix EOL format.  Also, it is terribly confusing
> to have GDB behave differently with its standard handles redirected to
> a pipe as opposed to disk files or the console device.
> 

OK, that makes sense.  I also find something similar was discussed in
2009,

  [RFC] Improve testsuite for poor expect behavior
  http://sourceware.org/ml/gdb-patches/2009-06/msg00346.html

but patches didn't go in then.  I withdraw this patch.

> This is a problem with the test suite, so please fix it in the test
> suite.  If you_must_  make the change in GDB, please introduce some
> specialized option to do that.  But changing the default behavior like
> that is IMO a no-starter.

Looks fixing the testsuite to allow '\r\r\n' is a promising approach,
however it is not a small piece of work.  The patch below is a
proof-of-concept implementation, and we need to apply the change (\r
-> ${cr}) to the testsuite.  Please let me know is it what you
want, and then I can evaluate how much efforts are needed here.

-- 
Yao (齐尧)

gdb/testsuite:

	* gdb.trace/deltrace.exp: Match $cr at the end of each line.
	* lib/gdb.exp: Set cr.
---
 gdb/testsuite/gdb.trace/deltrace.exp |   20 ++++++++++----------
 gdb/testsuite/lib/gdb.exp            |    8 ++++++++
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/gdb/testsuite/gdb.trace/deltrace.exp b/gdb/testsuite/gdb.trace/deltrace.exp
index 1053629..3f2a8b7 100644
--- a/gdb/testsuite/gdb.trace/deltrace.exp
+++ b/gdb/testsuite/gdb.trace/deltrace.exp
@@ -82,12 +82,12 @@ if { $trcpt1 <= 0 || $trcpt2 <= 0 || $trcpt3 <= 0 } then {
 
 gdb_test "info tracepoints" \
     "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
-\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target.
-\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target.
-\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target." \
+\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_c_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}
+\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}
+\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}" \
 			"3.2a: set three tracepoints"
 
 #gdb_test_no_output "delete tracepoint $trcpt1" ""
@@ -105,10 +105,10 @@ gdb_test_multiple "delete tracepoint $trcpt1" "3.2b: delete first tracepoint" {
 
 gdb_test "info tracepoints" \
     "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
-\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target.
-\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+.
-\[\t \]+not installed on target." \
+\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_asm_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}
+\[0-9\]+\[\t \]+tracepoint     keep y.* in gdb_recursion_test at .*$srcfile:\[0-9\]+${cr}
+\[\t \]+not installed on target${cr}" \
 			"3.2c: verify delete first tracepoint"
 
 #gdb_test_no_output "delete tracepoint $trcpt2" ""
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index cb92a94..5d2ad15 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -102,6 +102,14 @@ set octal "\[0-7\]+"
 
 set inferior_exited_re "(\\\[Inferior \[0-9\]+ \\(.*\\) exited)"
 
+# GDB configured for mingw or cygwin host can be run in a Cygwin PTY,
+# which expands '\n' to '\r\n', so the EOL ('\r\n') becomes '\r\r\n'.
+if { [ishost *-*-mingw*] || [ishost *cygwin*] } {
+    set cr "\r+"
+} else {
+    set cr "\r"
+}
+
 ### Only procedures should come after this point.
 
 #
-- 
1.7.7.6


  reply	other threads:[~2013-07-20  0:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-16  1:07 Yao Qi
2013-07-16  2:50 ` Eli Zaretskii
2013-07-20  0:38   ` Yao Qi [this message]
2013-07-20  6:55     ` Eli Zaretskii
2013-07-23 19:03     ` Tom Tromey
2013-07-23 19:08       ` Eli Zaretskii
2013-07-23 20:58         ` Tom Tromey
2013-07-24  3:46           ` Eli Zaretskii
2013-07-24  9:09             ` Yao Qi
2013-09-17 13:07       ` [PATCH 0/4] Match \r\r\n in testsuite Yao Qi
2013-09-17 13:07         ` [PATCH 4/4] Replace "." with "\r+" Yao Qi
2013-09-17 13:07         ` [PATCH 1/4] Use gdb_test_sequence to test "info tracepoints" Yao Qi
2013-09-17 13:07         ` [PATCH 3/4] Transform \r\n in MI variables Yao Qi
2013-09-17 13:07         ` [PATCH 2/4] Transform "\r\n" in pattern to "\r+\n" Yao Qi
2013-09-17 23:11           ` Pierre Muller
2013-09-17 13:35         ` [PATCH 0/4] Match \r\r\n in testsuite Joel Brobecker
2013-09-17 13:59           ` Yao Qi
2013-09-17 14:06             ` Joel Brobecker
2013-09-18  8:21               ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51E9DBD4.4070605@codesourcery.com \
    --to=yao@codesourcery.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox