fix two issues in gdb.ada/mi_catch_ex.exp (re: "exception-message")
authorJoel Brobecker <brobecker@adacore.com>
Mon, 27 Nov 2017 19:38:54 +0000 (11:38 -0800)
committerJoel Brobecker <brobecker@adacore.com>
Mon, 27 Nov 2017 19:39:45 +0000 (11:39 -0800)
The following patch introduced a new feature related to Ada exception
catchpoints:

    commit e547c119d043f2ecffb70452020ab9150d083a91
    Author: Joel Brobecker <brobecker@adacore.com>
    Date:   Fri Nov 24 17:09:42 2017 -0500
    Subject: (Ada) provide the exception message when hitting an exception catchpoint

Unfortunately, the patch left 2 errors in gdb.ada/mi_catch_ex.exp,
both inside the "continue_to_exception" function:

  1. The exception message on the console can include the exception
     message, and thus this patch adjust the expected output in
     the corresponding gdb_expect call to allow it;
     to allow it.

  2. There was a TCL syntax confusion in "$exception_name(..."
     that caused TCL to evaluate "exception_name as an array,
     rather than as a variable. This patch fixes this by escaping
     the '(' (and the corresponding closing parenthesis, for
     consistency).

gdb/testsuite/ChangeLog:

        * gdb.ada/mi_catch_ex.exp (continue_to_exception): Adjust
        expected output in gdb_expect call to allow the exception
        message to be present as well.  Fix syntax confusion to avoid
        TCL thinking that exception_name is an array.

Tested on x86_64-linux, with:

    DejaGnu version  1.6
    Expect version   5.45
    Tcl version      8.6

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/mi_catch_ex.exp

index 76e2883..16c93dc 100644 (file)
@@ -1,3 +1,10 @@
+2017-11-27  Joel Brobecker  <brobecker@adacore.com>
+
+       * gdb.ada/mi_catch_ex.exp (continue_to_exception): Adjust
+       expected output in gdb_expect call to allow the exception
+       message to be present as well.  Fix syntax confusion to avoid
+       TCL thinking that exception_name is an array.
+
 2017-11-26  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * gdb.arch/spu-info.c: Include <unistd.h>.
index 2ca3b6c..2440be5 100644 (file)
@@ -87,7 +87,7 @@ proc continue_to_exception { exception_name exception_message test } {
 
     # Match console stream output.
     gdb_expect {
-       -re " $exception_name at $hex in foo " {
+       -re " $exception_name\( \\($exception_message\\)\)? at $hex in foo " {
        }
        timeout {
            fail "$test (timeout)"
@@ -97,7 +97,7 @@ proc continue_to_exception { exception_name exception_message test } {
 
     # Now MI stream output.
     mi_expect_stop \
-       "breakpoint-hit\",disp=\"keep\",bkptno=\"$any_nb\",exception-name=\"$exception_name(\",exception-message=\"$exception_message)?" \
+       "breakpoint-hit\",disp=\"keep\",bkptno=\"$any_nb\",exception-name=\"$exception_name\(\",exception-message=\"$exception_message\)?" \
        "foo" "" ".*" ".*" \
        ".*" \
        $test