[testsuite] Disable Ctrl-V use for mingw hosts.

Message ID 1395712934-29531-1-git-send-email-yao@codesourcery.com
State Committed
Headers

Commit Message

Yao Qi March 25, 2014, 2:02 a.m. UTC
  From: Pierre Muller <muller@sourceware.org>

On mingw host, we have seen two fails as below,

p int1dim[0]^V@2
Invalid character '^V' in expression.
(gdb) FAIL: gdb.base/printcmds.exp: p int1dim[0]@2
p int1dim[0]^V@2^V@3
Invalid character '^V' in expression.
(gdb) FAIL: gdb.base/printcmds.exp: p int1dim[0]@2@3

In the test, the comment says "# Send \026@ instead of just @ in case
the kill character is @".  Historically, kill character was @, and
Ctrl-V (\026) is to escape the next character.  However, we don't have
to do so on mingw.  This patch is to disable ctrl-v usage on mingw
hots.  With this patch applied, it becomes:

p int1dim[0]@2
$607 = {0, 1}
(gdb) PASS: gdb.base/printcmds.exp: p int1dim[0]@2
p int1dim[0]@2@3
$608 = {{0, 1}, {2, 3}, {4, 5}}

Note that this patch is picked from Pierre's submission,

  [RFC 6/6] Fix remaining failures in gdb.base/printcmds.exp for mingw hosts.
  https://www.sourceware.org/ml/gdb-patches/2013-09/msg00943.html

gdb/testsuite:

2014-03-25  Pierre Muller  <muller@sourceware.org>

	* gdb.base/printcmds.exp (test_artificial_arrays): Disable
	Ctrl-V use for mingw hosts.
---
 gdb/testsuite/gdb.base/printcmds.exp |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
  

Comments

Yao Qi April 1, 2014, 2:24 a.m. UTC | #1
On 03/25/2014 10:02 AM, Yao Qi wrote:
> On mingw host, we have seen two fails as below,
> 
> p int1dim[0]^V@2
> Invalid character '^V' in expression.
> (gdb) FAIL: gdb.base/printcmds.exp: p int1dim[0]@2
> p int1dim[0]^V@2^V@3
> Invalid character '^V' in expression.
> (gdb) FAIL: gdb.base/printcmds.exp: p int1dim[0]@2@3
> 
> In the test, the comment says "# Send \026@ instead of just @ in case
> the kill character is @".  Historically, kill character was @, and
> Ctrl-V (\026) is to escape the next character.  However, we don't have
> to do so on mingw.  This patch is to disable ctrl-v usage on mingw
> hots.  With this patch applied, it becomes:
> 
> p int1dim[0]@2
> $607 = {0, 1}
> (gdb) PASS: gdb.base/printcmds.exp: p int1dim[0]@2
> p int1dim[0]@2@3
> $608 = {{0, 1}, {2, 3}, {4, 5}}
> 
> Note that this patch is picked from Pierre's submission,
> 
>   [RFC 6/6] Fix remaining failures in gdb.base/printcmds.exp for mingw hosts.
>   https://www.sourceware.org/ml/gdb-patches/2013-09/msg00943.html
> 
> gdb/testsuite:
> 
> 2014-03-25  Pierre Muller  <muller@sourceware.org>
> 
> 	* gdb.base/printcmds.exp (test_artificial_arrays): Disable
> 	Ctrl-V use for mingw hosts.

Ping.  https://sourceware.org/ml/gdb-patches/2014-03/msg00590.html
  
Joel Brobecker April 7, 2014, 4:39 p.m. UTC | #2
> > 2014-03-25  Pierre Muller  <muller@sourceware.org>
> > 
> > 	* gdb.base/printcmds.exp (test_artificial_arrays): Disable
> > 	Ctrl-V use for mingw hosts.
> 
> Ping.  https://sourceware.org/ml/gdb-patches/2014-03/msg00590.html

Sorry about the wait. OK, but with a small change in the comment
to say that the ctrl-v character is not only unnecessary on MinGW
but actually harmful for the test because that character isn't
recognized as an escape character.

It'd be nice to know when @ is actually an escape character (just
thinking out loud, not asking you to do the research - a google
research doesn't quite clarify this for me).
  

Patch

diff --git a/gdb/testsuite/gdb.base/printcmds.exp b/gdb/testsuite/gdb.base/printcmds.exp
index 8f38aca..653b235 100644
--- a/gdb/testsuite/gdb.base/printcmds.exp
+++ b/gdb/testsuite/gdb.base/printcmds.exp
@@ -631,8 +631,14 @@  proc test_print_typedef_arrays {} {
 
 proc test_artificial_arrays {} {
     # Send \026@ instead of just @ in case the kill character is @.
-    gdb_test_escape_braces "p int1dim\[0\]\026@2" " = {0, 1}" {p int1dim[0]@2}
-    gdb_test_escape_braces "p int1dim\[0\]\026@2\026@3" \
+    # \026 (ctrl-v) is to escape the next character (@), but it is
+    # unnecessary to do so on MingW hosts.
+    set ctrlv "\026"
+    if [ishost *-*-mingw*] {
+	set ctrlv ""
+    }
+    gdb_test_escape_braces "p int1dim\[0\]${ctrlv}@2" " = {0, 1}" {p int1dim[0]@2}
+    gdb_test_escape_braces "p int1dim\[0\]${ctrlv}@2${ctrlv}@3" \
 	"({{0, 1}, {2, 3}, {4, 5}}|\[Cc\]annot.*)" \
 	{p int1dim[0]@2@3}
     gdb_test_escape_braces {p/x (short [])0x12345678} \