This is the mail archive of the gdb-patches@sources.redhat.com 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/testsuite] annota1.exp, annota3.exp: respect nosignals


This patch enhanches gdb.base/annota1.exp and gdb.base/annota3.exp
to honor "gdb,nosignals".

This is based on an earlier patch by Jim Blandy:

  http://sources.redhat.com/gdb/bugs/740
  RFA: respect `nosignals' setting in annota1.exp.

When the tests are suppressed, I return an UNSUPPORTED.

Testing: I tested this on native i686-pc-linux-gnu.  It behaves the same
with default settings (signals enabled).  Then I changed dejagnu's
baseboards/unix.exp to say "set_board_info gdb,nosignals 1" and the
six signals tests came up UNSUPPORTED.

I'll give this 24 hours for comment and then commit it.

Michael C

2004-07-18  Michael Chastain  <mec.gnu@mindspring.com>

	Fix PR cli/740.
	* gdb.base/annota1.exp: Honor gdb,nosignals.
	* gdb.base/annota3.exp: Likewise.

Index: gdb.base/annota1.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v
retrieving revision 1.15
diff -c -3 -p -r1.15 annota1.exp
*** gdb.base/annota1.exp	13 Jul 2004 13:10:53 -0000	1.15
--- gdb.base/annota1.exp	19 Jul 2004 00:15:40 -0000
*************** gdb_expect {
*** 269,303 ****
  # annotate-arg-value
  # annotate-arg-end
  #
- send_gdb "signal SIGUSR1\n"
- gdb_expect {
-     -re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
- 	{ pass "send SIGUSR1" }
-     -re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
- 	{ setup_xfail "*-*-*" 1270
-           fail "send SIGUSR1" }
-   -re ".*$gdb_prompt$"     { fail "send SIGUSR1" }
-   timeout	            { fail "send SIGUSR1 (timeout)" }
- }
- 
  
! #
! # test:
! # annotate-signal-handler-caller
! #
! verbose "match_max local is: [match_max]"
! verbose "match_max default is: [match_max -d]"
! # This is necessary because a 2000 buffer is not enought to get everything
! # up to the prompt ad the test gets a timeout.
! match_max 3000
! verbose "match_max now is: [match_max]"
! send_gdb "backtrace\n"
! gdb_expect {
!     -re "frame-begin 0 $hex\r\n#0.*frame-end.*frame-begin 1 $hex\r\n#1.*(\032\032signal-handler-caller\r\n.signal handler called.\r\n\r\n)+\032\032frame-end\r\n\r\n\032\032frame-begin 2 $hex\r\n#2.*(frame-begin 3 $hex\r\n#3.*)*frame-end.*$gdb_prompt$" {
! 	pass "backtrace @ signal handler"
      }
-     -re ".*$gdb_prompt$"   { fail "backtrace @ signal handler" }
-     timeout                { fail "backtrace @ signal handler (timeout)" }
  }
  
  #
--- 269,308 ----
  # annotate-arg-value
  # annotate-arg-end
  #
  
! if [target_info exists gdb,nosignals] {
!     unsupported "send SIGUSR1"
!     unsupported "backtrace @ signal handler"
! } else {
!     send_gdb "signal SIGUSR1\n"
!     gdb_expect {
! 	-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
! 	    { pass "send SIGUSR1" }
! 	-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
! 	    { setup_xfail "*-*-*" 1270
! 	      fail "send SIGUSR1" }
!       -re ".*$gdb_prompt$"     { fail "send SIGUSR1" }
!       timeout	            { fail "send SIGUSR1 (timeout)" }
!     }
! 
!     #
!     # test:
!     # annotate-signal-handler-caller
!     #
!     verbose "match_max local is: [match_max]"
!     verbose "match_max default is: [match_max -d]"
!     # This is necessary because a 2000 buffer is not enought to get everything
!     # up to the prompt ad the test gets a timeout.
!     match_max 3000
!     verbose "match_max now is: [match_max]"
!     send_gdb "backtrace\n"
!     gdb_expect {
! 	-re "frame-begin 0 $hex\r\n#0.*frame-end.*frame-begin 1 $hex\r\n#1.*(\032\032signal-handler-caller\r\n.signal handler called.\r\n\r\n)+\032\032frame-end\r\n\r\n\032\032frame-begin 2 $hex\r\n#2.*(frame-begin 3 $hex\r\n#3.*)*frame-end.*$gdb_prompt$" {
! 	    pass "backtrace @ signal handler"
! 	}
! 	-re ".*$gdb_prompt$"   { fail "backtrace @ signal handler" }
! 	timeout                { fail "backtrace @ signal handler (timeout)" }
      }
  }
  
  #
*************** gdb_expect {
*** 446,458 ****
  # It has been verified that other signals will be delivered.  However,
  # rather than twiddle the test, I choose to leave it as-is as it
  # exposes an interesting failure on hpux11.
! setup_xfail hppa*-*-hpux11*
! send_gdb "signal SIGTRAP\n"
! gdb_expect {
!   -re ".*\032\032post-prompt\r\nContinuing with signal SIGTRAP.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032signalled\r\n\r\nProgram terminated with signal \r\n\032\032signal-name\r\nSIGTRAP\r\n\032\032signal-name-end\r\n, \r\n\032\032signal-string\r\nTrace.breakpoint trap\r\n\032\032signal-string-end\r\n.\r\nThe program no longer exists.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
! 	  { pass "signal sent" }
!   -re ".*$gdb_prompt$" { fail "signal sent" }
!   timeout { fail "signal sent (timeout)" }
  }
  
  
--- 451,468 ----
  # It has been verified that other signals will be delivered.  However,
  # rather than twiddle the test, I choose to leave it as-is as it
  # exposes an interesting failure on hpux11.
! 
! if [target_info exists gdb,nosignals] {
!     unsupported "signal sent"
! } else {
!     setup_xfail hppa*-*-hpux11*
!     send_gdb "signal SIGTRAP\n"
!     gdb_expect {
!       -re ".*\032\032post-prompt\r\nContinuing with signal SIGTRAP.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032signalled\r\n\r\nProgram terminated with signal \r\n\032\032signal-name\r\nSIGTRAP\r\n\032\032signal-name-end\r\n, \r\n\032\032signal-string\r\nTrace.breakpoint trap\r\n\032\032signal-string-end\r\n.\r\nThe program no longer exists.\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
! 	      { pass "signal sent" }
!       -re ".*$gdb_prompt$" { fail "signal sent" }
!       timeout { fail "signal sent (timeout)" }
!     }
  }
  
  
Index: gdb.base/annota3.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota3.exp,v
retrieving revision 1.4
diff -c -3 -p -r1.4 annota3.exp
*** gdb.base/annota3.exp	13 Jul 2004 13:10:54 -0000	1.4
--- gdb.base/annota3.exp	19 Jul 2004 00:15:40 -0000
*************** gdb_expect_list "backtrace from shlibrar
*** 217,250 ****
  #
  # test printing a frame with some arguments: 
  #
- send_gdb "signal SIGUSR1\n"
- gdb_expect_list "send SIGUSR1" "$gdb_prompt$" {
-     "\r\n\032\032post-prompt\r\n"
-     "Continuing with signal SIGUSR1.\r\n"
-     "\r\n\032\032starting\r\n"
-     "\r\n\032\032frames-invalid\r\n"
-     "\r\n\032\032breakpoint 2\r\n"
-     "Breakpoint 2, handle_USR1 \\(sig=\[0-9\]+\\) at .*annota3.c:\[0-9\]+\r\n"
-     "\r\n\032\032source .*annota3.c:\[0-9\]+:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
-     "\r\n\032\032stopped\r\n"
- }
  
  
! #
! # test:
! #
! verbose "match_max local is: [match_max]"
! verbose "match_max default is: [match_max -d]"
! # This is necessary because a 2000 buffer is not enought to get everything
! # up to the prompt ad the test gets a timeout.
! match_max 3000
! verbose "match_max now is: [match_max]"
! send_gdb "backtrace\n"
! gdb_expect_list "backtrace @ signal handler" "$gdb_prompt$" {
!     "#0 +handle_USR1 \[^\r\n\]+\r\n"
!     "#1 +.signal handler called.\r\n"
!     "#2 .* printf \[^\r\n\]+\r\n"
!     "#3 .* main \[^\r\n\]+\r\n"
  }
  
  #
--- 217,255 ----
  #
  # test printing a frame with some arguments: 
  #
  
+ if [target_info exists gdb,nosignals] {
+     unsupported "send SIGUSR1"
+     unsupported "backtrace @ signal handler"
+ } else {
+     send_gdb "signal SIGUSR1\n"
+     gdb_expect_list "send SIGUSR1" "$gdb_prompt$" {
+ 	"\r\n\032\032post-prompt\r\n"
+ 	"Continuing with signal SIGUSR1.\r\n"
+ 	"\r\n\032\032starting\r\n"
+ 	"\r\n\032\032frames-invalid\r\n"
+ 	"\r\n\032\032breakpoint 2\r\n"
+ 	"Breakpoint 2, handle_USR1 \\(sig=\[0-9\]+\\) at .*annota3.c:\[0-9\]+\r\n"
+ 	"\r\n\032\032source .*annota3.c:\[0-9\]+:\[0-9\]+:beg:0x\[0-9a-z\]+\r\n"
+ 	"\r\n\032\032stopped\r\n"
+     }
  
!     #
!     # test:
!     #
!     verbose "match_max local is: [match_max]"
!     verbose "match_max default is: [match_max -d]"
!     # This is necessary because a 2000 buffer is not enought to get everything
!     # up to the prompt ad the test gets a timeout.
!     match_max 3000
!     verbose "match_max now is: [match_max]"
!     send_gdb "backtrace\n"
!     gdb_expect_list "backtrace @ signal handler" "$gdb_prompt$" {
! 	"#0 +handle_USR1 \[^\r\n\]+\r\n"
! 	"#1 +.signal handler called.\r\n"
! 	"#2 .* printf \[^\r\n\]+\r\n"
! 	"#3 .* main \[^\r\n\]+\r\n"
!     }
  }
  
  #
*************** gdb_expect_list "breakpoint ignore count
*** 369,386 ****
  # It has been verified that other signals will be delivered.  However,
  # rather than twiddle the test, I choose to leave it as-is as it
  # exposes an interesting failure on hpux11.
! setup_xfail hppa*-*-hpux11*
! send_gdb "signal SIGTRAP\n"
! gdb_expect_list "signal sent" "$gdb_prompt$" {
!     "\r\n\032\032post-prompt\r\n"
!     "Continuing with signal SIGTRAP.\r\n"
!     "\r\n\032\032starting\r\n"
!     "\r\n\032\032frames-invalid\r\n"
!     "\r\n\032\032frames-invalid\r\n"
!     "\r\n\032\032signalled\r\n"
!     "\r\nProgram terminated with signal SIGTRAP, Trace.breakpoint trap.\r\n"
!     "The program no longer exists.\r\n"
!     "\r\n\032\032stopped\r\n"
  }
  
  
--- 374,396 ----
  # It has been verified that other signals will be delivered.  However,
  # rather than twiddle the test, I choose to leave it as-is as it
  # exposes an interesting failure on hpux11.
! 
! if [target_info exists gdb,nosignals] {
!     unsupported "signal sent"
! } else {
!     setup_xfail hppa*-*-hpux11*
!     send_gdb "signal SIGTRAP\n"
!     gdb_expect_list "signal sent" "$gdb_prompt$" {
! 	"\r\n\032\032post-prompt\r\n"
! 	"Continuing with signal SIGTRAP.\r\n"
! 	"\r\n\032\032starting\r\n"
! 	"\r\n\032\032frames-invalid\r\n"
! 	"\r\n\032\032frames-invalid\r\n"
! 	"\r\n\032\032signalled\r\n"
! 	"\r\nProgram terminated with signal SIGTRAP, Trace.breakpoint trap.\r\n"
! 	"The program no longer exists.\r\n"
! 	"\r\n\032\032stopped\r\n"
!     }
  }
  
  


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