testsuite: Restore gdb_is_target_remote_prompt
authorSimon Marchi <simon.marchi@ericsson.com>
Wed, 28 Feb 2018 13:58:25 +0000 (08:58 -0500)
committerSimon Marchi <simon.marchi@ericsson.com>
Wed, 28 Feb 2018 14:00:02 +0000 (09:00 -0500)
In patch

  Add test for load command
  3275ef477498e0500d7ea440f1bc51787acf4610

I removed gdb_is_target_remote_prompt, but did not realize it was used
in mi_is_target_remote.  This makes the gdb.mi/mi-nonstop.exp crash, for
example:

  ERROR: (DejaGnu) proc "gdb_is_target_remote_prompt {[(]gdb[)]
  }" does not exist.
  The error code is TCL LOOKUP COMMAND gdb_is_target_remote_prompt
  The info on the error is:
  invalid command name "gdb_is_target_remote_prompt"
      while executing
  "::tcl_unknown gdb_is_target_remote_prompt {[(]gdb[)]
  }"
      ("uplevel" body line 1)
      invoked from within
  "uplevel 1 ::tcl_unknown $args"

This patch restores it.

gdb/testsuite/ChangeLog:

* lib/gdb.exp (gdb_is_target_1): Add prompt_regexp parameter and
use it.
(gdb_is_target_remote_prompt): New proc.
(gdb_is_target_remote): Use gdb_is_target_remote_prompt.
(gdb_is_target_native): Pass prompt parameter to
gdb_is_target_1.

gdb/testsuite/ChangeLog
gdb/testsuite/lib/gdb.exp

index 44435570d9c12a046f35c6c8d92fa90585a6a3c2..59bbc6e99dc28d498d251895c2a92688c388b758 100644 (file)
@@ -1,3 +1,12 @@
+2018-02-28  Simon Marchi  <simon.marchi@ericsson.com>
+
+       * lib/gdb.exp (gdb_is_target_1): Add prompt_regexp parameter and
+       use it.
+       (gdb_is_target_remote_prompt): New proc.
+       (gdb_is_target_remote): Use gdb_is_target_remote_prompt.
+       (gdb_is_target_native): Pass prompt parameter to
+       gdb_is_target_1.
+
 2018-02-26  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * gdb.base/load-command.c: New file.
index 3cd10dcafbb8c0d705dd6ca5b0ee2dee859596ae..9102e549f3a2cf0b42a6cc27c4b6177c19a80427 100644 (file)
@@ -3157,13 +3157,10 @@ proc skip_compile_feature_tests {} {
 # Helper for gdb_is_target_* procs.  TARGET_NAME is the name of the target
 # we're looking for (used to build the test name).  TARGET_STACK_REGEXP
 # is a regexp that will match the output of "maint print target-stack" if
-# the target in question is currently pushed.
-
-proc gdb_is_target_1 { target_name target_stack_regexp } {
-    global gdb_prompt
-
-    set prompt_regexp "$gdb_prompt $"
+# the target in question is currently pushed.  PROMPT_REGEXP is a regexp
+# matching the expected prompt after the command output.
 
+proc gdb_is_target_1 { target_name target_stack_regexp prompt_regexp } {
     set test "probe for target ${target_name}"
     gdb_test_multiple "maint print target-stack" $test {
        -re "${target_stack_regexp}${prompt_regexp}" {
@@ -3177,17 +3174,27 @@ proc gdb_is_target_1 { target_name target_stack_regexp } {
     return 0
 }
 
+# Helper for gdb_is_target_remote where the expected prompt is variable.
+
+proc gdb_is_target_remote_prompt { prompt_regexp } {
+    return [gdb_is_target_1 "remote" ".*emote serial target in gdb-specific protocol.*" $prompt_regexp]
+}
+
 # Check whether we're testing with the remote or extended-remote
 # targets.
 
 proc gdb_is_target_remote { } {
-    return [gdb_is_target_1 "remote" ".*emote serial target in gdb-specific protocol.*"]
+    global gdb_prompt
+
+    return [gdb_is_target_remote_prompt "$gdb_prompt $"]
 }
 
 # Check whether we're testing with the native target.
 
 proc gdb_is_target_native { } {
-    return [gdb_is_target_1 "native" ".*native \\(Native process\\).*"]
+    global gdb_prompt
+
+    return [gdb_is_target_1 "native" ".*native \\(Native process\\).*" "$gdb_prompt $"]
 }
 
 # Return the effective value of use_gdb_stub.