This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commit/testsuite] lib/gdb.exp: New gdb_test_no_output function.


This implements the suggestion provided by Pedro on how to test a command
which is expected to generate no output.  I can now see why my own attempts
so far have failed: the output being matched by gdb_test_multiple actually
contains the command itself.  This is something that I managed to never
actually notice :-/.

2010-05-20  Pedro Alves  <pedro@codesourcery.com>
            Joel Brobecker  <brobecker@adacore.com>

        * lib/gdb.exp (gdb_test_no_output): New function.
        * lib/gdb.ada/arrayidx.exp: Use gdb_test_no_output instead of gdb_test
        when testing commands that should produce no output.

Tested on x86_64-linux.
---
 gdb/testsuite/ChangeLog            |    7 +++++++
 gdb/testsuite/gdb.ada/arrayidx.exp |    8 ++------
 gdb/testsuite/lib/gdb.exp          |   25 +++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index b6f9469..93df121 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2010-05-20  Pedro Alves  <pedro@codesourcery.com>
+            Joel Brobecker  <brobecker@adacore.com>
+
+	* lib/gdb.exp (gdb_test_no_output): New function.
+	* lib/gdb.ada/arrayidx.exp: Use gdb_test_no_output instead of gdb_test
+	when testing commands that should produce no output.
+
 2010-05-19  Michael Snyder  <msnyder@vmware.com>
 
 	* gdb.base/whatis.exp: Replace send_gdb with gdb_test.
diff --git a/gdb/testsuite/gdb.ada/arrayidx.exp b/gdb/testsuite/gdb.ada/arrayidx.exp
index 13be845..3d45461 100644
--- a/gdb/testsuite/gdb.ada/arrayidx.exp
+++ b/gdb/testsuite/gdb.ada/arrayidx.exp
@@ -41,9 +41,7 @@ runto "p.adb:$bp_location"
 
 # First, print all the arrays without indexes
 
-gdb_test "set print array-indexes off" \
-         ""  \
-         "set print array-indexes to off"
+gdb_test_no_output "set print array-indexes off"
 
 gdb_test "print one_two_three" \
          "= \\(1, 2, 3\\)" \
@@ -79,9 +77,7 @@ gdb_test "print empty" \
 
 # Next, print all the arrays with the indexes
 
-gdb_test "set print array-indexes on" \
-         ""  \
-         "set print array-indexes to on"
+gdb_test_no_output "set print array-indexes on"
 
 gdb_test "print one_two_three" \
          "= \\(1 => 1, 2 => 2, 3 => 3\\)" \
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 70df5ea..563ffa7 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -877,6 +877,31 @@ proc gdb_test { args } {
 	}
      }]
 }
+
+# gdb_test_no_output COMMAND MESSAGE
+# Send a command to GDB and verify that this command generated no output.
+#
+# See gdb_test_multiple for a description of the COMMAND and MESSAGE
+# parameters.  If MESSAGE is ommitted, then COMMAND will be used as
+# the message.
+
+proc gdb_test_no_output { args } {
+    global gdb_prompt
+    set command [lindex $args 0]
+    if [llength $args]>1 then {
+	set message [lindex $args 1]
+    } else {
+	set message $command
+    }
+
+    set command_regex [string_to_regexp $command]
+    gdb_test_multiple $command $message {
+        -re "^$command_regex\r\n$gdb_prompt $" {
+            pass $message
+        }
+    }
+}
+
 
 # Test that a command gives an error.  For pass or fail, return
 # a 1 to indicate that more tests can proceed.  However a timeout
-- 
1.7.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]