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]

[patch] Get rid of print statements from gdb.cp/exception.cc


Current test gdb.cp/exception.exp matches the output from inferior,
which doesn't work in remote testing, because gdbserver can't catch
target program's output, and push it to gdb.  There is one fail when
running gdb.cp/exception.exp with board file "native-gdbserver.exp".

  FAIL: gdb.cp/exception.exp: continue to second throw

This patch removes print stuffs in gdb.cp/exception.cc. Tested on
i686-pc-linux-gnu.  No fails in gdb.cp/exception.exp anymore.

OK for mainline?

-- 
Yao (éå)
2011-06-27  Yao Qi  <yao@codesourcery.com>

	gdb/testsuite/
	* gdb.cp/exception.cc: Don't include iostream.
	(bar): Remove print statement.
	(catcher): New.
	(main): Remove print statements.  Call function catcher.
	* gdb.cp/exception.exp : Don't match inferior's output in regexp.
	Set breakpoint on catcher, and check the value of parameter.

diff --git a/gdb/testsuite/gdb.cp/exception.cc b/gdb/testsuite/gdb.cp/exception.cc
index 6eb77ab..c366b06 100644
--- a/gdb/testsuite/gdb.cp/exception.cc
+++ b/gdb/testsuite/gdb.cp/exception.cc
@@ -21,7 +21,6 @@
 
 // Test file for exception handling support.
 
-#include <iostream>
 using namespace std;
 
 int foo (int i)
@@ -36,10 +35,14 @@ extern "C" int bar (int k, unsigned long eharg, int flag);
     
 int bar (int k, unsigned long eharg, int flag)
 {
-  cout << "k is " << k << " eharg is " << eharg << " flag is " << flag << endl;
   return 1;
 }
 
+int catcher (int x)
+{
+  return x;
+}
+
 int main()
 {
   int j;
@@ -48,7 +51,7 @@ int main()
     j = foo (20);
   }
   catch (int x) {
-    cout << "Got an except " << x << endl;
+    catcher (x);
   }
   
   try {
@@ -56,12 +59,12 @@ int main()
       j = foo (20);
     }
     catch (int x) {
-      cout << "Got an except " << x << endl;
+      catcher (x);
       throw;
     }
   }
   catch (int y) {
-    cout << "Got an except (rethrown) " << y << endl;
+    catcher (y);
   }
 
   // Not caught 
diff --git a/gdb/testsuite/gdb.cp/exception.exp b/gdb/testsuite/gdb.cp/exception.exp
index 2e49fe8..f71da98 100644
--- a/gdb/testsuite/gdb.cp/exception.exp
+++ b/gdb/testsuite/gdb.cp/exception.exp
@@ -127,6 +127,8 @@ gdb_test_multiple "info breakpoints" $name {
       }
 }
 
+gdb_test "break catcher" "Breakpoint \[0-9\]+ at.*"
+
 # Get the first exception thrown
        
 set name "continue to first throw"
@@ -173,14 +175,17 @@ gdb_test_multiple "backtrace" $name {
     }
 }
 
+# Continue to breakpoint on catcher.
+gdb_test "continue" ".*catcher \\(x=13\\).*" "continue to catcher for the first time"
+
 # Continue to second throw.
 
 set name "continue to second throw"
 gdb_test_multiple "continue" $name {
-    -re "Continuing.${ws}Got an except 13${ws}Catchpoint \[0-9\]+ \\(exception thrown\\), throw location.*${srcfile}:30, catch location .*${srcfile}:58\r\n$gdb_prompt $" {
+    -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception thrown\\), throw location.*${srcfile}:30, catch location .*${srcfile}:58\r\n$gdb_prompt $" {
 	pass $name
     }
-    -re "Continuing.${ws}Got an except 13${ws}Catchpoint \[0-9\]+ \\(exception thrown\\).*\r\n$gdb_prompt $" {
+    -re "Continuing.${ws}Catchpoint \[0-9\]+ \\(exception thrown\\).*\r\n$gdb_prompt $" {
 	pass $name
     }
 }
@@ -217,6 +222,9 @@ gdb_test_multiple "backtrace" $name {
     }
 }
 
+# Continue to breakpoint on catcher.
+gdb_test "continue" ".*catcher \\(x=13\\).*" "continue to catcher for the second time"
+
 # That is all for now.
 # 
 # The original code had:

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