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]

[RFA] More watchpoint test tweaks



Following on to my last patch, these two tests can benefit from
having hardware watchpoints optionally turned off.

I also replaced some single-letter commands in display.exp
with more verbose ones, because I hate single-letter commands.
They're hard to decypher.

2000-10-17  Michael Snyder  <msnyder@cleaver.cygnus.com>

        * gdb.base/recurse.exp (proc recurse_test): Optionally disable
        hardware watchpoints if un-available.
        * gdb.base/display.exp: Ditto.  Also replace single-letter 
        GDB commands with more complete ones (because I hate single-letter
        commands and variables).

Refer previous patch:
        * gdb.base/watchpoint.exp (proc initialize): This nit allows
        default hardware watchpoints to be disabled if appropriate.
        (proc test_watchpoint_triggered_in_syscall): Use new gdb.exp
        routine gdb_skip_stdio_test.

Index: display.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/display.exp,v
retrieving revision 1.14
diff -c -3 -p -r1.14 display.exp
*** display.exp	2000/01/07 23:10:40	1.14
--- display.exp	2000/10/18 00:21:47
*************** if ![runto_main] then {
*** 70,82 ****
      continue
  }
  
! gdb_test "b 14" ".*Breakpoint 2.*" "break do_loops"
! gdb_test "c"          ".*Breakpoint 2, do_loops.*" "get to do_loops"
  
  # Create stopping points.
  #
! gdb_test "wat sum"    ".*\[Ww\]atchpoint 3: sum.*" "set watch"
! gdb_test "b 19"       ".*Breakpoint 4.*" "break 19"
  
  # Create displays for those points
  #
--- 70,87 ----
      continue
  }
  
! # Disable hardware watchpoints if necessary.
! if [target_info exists gdb,no_hardware_watchpoints] {
!     gdb_test "set can-use-hw-watchpoints 0" "" ""
! }
! 
! gdb_test "break 14" ".*Breakpoint 2.*"           "break  do_loops"
! gdb_test "cont"     ".*Breakpoint 2, do_loops.*" "get to do_loops"
  
  # Create stopping points.
  #
! gdb_test "watch sum"    ".*\[Ww\]atchpoint 3: sum.*" "set watch"
! gdb_test "break 19"     ".*Breakpoint 4.*" "break 19"
  
  # Create displays for those points
  #
*************** gdb_test "disp/s &sum" ".*5: x/s &sum  $
*** 89,96 ****
  
  # Hit the displays
  #
! gdb_test "c" ".*\[Ww\]atchpoint 3: sum.*\[1-9\]*: x/s &sum.*\[1-9\]*: /f sum = 1.40129846e.45\r\n\[1-9\]*: x/i &k.*\r\n\[1-9\]*: /x j = 0x0\r\n\[1-9\]*: i = 0.*" "first disp"
! gdb_test "c" ".*\[Ww\]atchpoint 3: sum.*\[1-9\]*: x/s &sum.*\[1-9\]*: /f sum = 2.80259693e.45\r\n\[1-9\]*: x/i &k.*\r\n\[1-9\]*: /x j = 0x0.*\[1-9\]*: i = 0.*" "second disp"
  
  gdb_test "enab  disp 6" ".*No display number 6..*" "catch err"
  gdb_test "disab disp 1" ".*" "disab disp 1"
--- 94,101 ----
  
  # Hit the displays
  #
! gdb_test "cont" ".*\[Ww\]atchpoint 3: sum.*\[1-9\]*: x/s &sum.*\[1-9\]*: /f sum = 1.40129846e.45\r\n\[1-9\]*: x/i &k.*\r\n\[1-9\]*: /x j = 0x0\r\n\[1-9\]*: i = 0.*" "first disp"
! gdb_test "cont" ".*\[Ww\]atchpoint 3: sum.*\[1-9\]*: x/s &sum.*\[1-9\]*: /f sum = 2.80259693e.45\r\n\[1-9\]*: x/i &k.*\r\n\[1-9\]*: /x j = 0x0.*\[1-9\]*: i = 0.*" "second disp"
  
  gdb_test "enab  disp 6" ".*No display number 6..*" "catch err"
  gdb_test "disab disp 1" ".*" "disab disp 1"
*************** gdb_test "disab disp 2" ".*" "disab disp
*** 98,106 ****
  gdb_test "enab disp 1"  ".*" "re-enab"
  gdb_test "enab disp 1"  ".*" "re-enab of enab"
  gdb_test "undisp 5"     ".*" "undisp"
! gdb_test "i disp"       ".*Auto-display expressions now in effect.*y  /f sum.*y  /1bi &k.*n  /x j.*y  i.*" "info disp"
  
! gdb_test "c" ".*\[Ww\]atch.*4.20389539e-45.*.*i = 0.*" "next hit"
  
  send_gdb "undisp\n"
  gdb_expect {
--- 103,111 ----
  gdb_test "enab disp 1"  ".*" "re-enab"
  gdb_test "enab disp 1"  ".*" "re-enab of enab"
  gdb_test "undisp 5"     ".*" "undisp"
! gdb_test "info disp"    ".*Auto-display expressions now in effect.*y  /f sum.*y  /1bi &k.*n  /x j.*y  i.*" "info disp"
  
! gdb_test "cont" ".*\[Ww\]atch.*4.20389539e-45.*.*i = 0.*" "next hit"
  
  send_gdb "undisp\n"
  gdb_expect {
*************** gdb_expect {
*** 126,132 ****
  }
  
  gdb_test "disab 3" ".*.*" "disab 3"
! gdb_test "c" ".*Breakpoint 4.*" "watch off"
  
  # Now the printf tests
  #
--- 131,137 ----
  }
  
  gdb_test "disab 3" ".*.*" "disab 3"
! gdb_test "cont" ".*Breakpoint 4.*" "watch off"
  
  # Now the printf tests
  #
*************** gdb_expect {
*** 153,161 ****
      }
  }
  
! gdb_test "s" ".*do_vars.*.*27.*"
! gdb_test "tb 37" ".*Breakpoint 5 a.*"
! gdb_test "c" ".*do_vars.*37.*37.*"
  
  # Beat on printf a bit
  #
--- 158,166 ----
      }
  }
  
! gdb_test "step"      ".*do_vars.*.*27.*"
! gdb_test "tbreak 37" ".*Breakpoint 5 a.*"
! gdb_test "cont"      ".*do_vars.*37.*37.*"
  
  # Beat on printf a bit
  #
*************** gdb_test "printf \"\"" ".*" "re-set term
*** 168,177 ****
  gdb_test "printf \"\\w\"" ".*Unrecognized escape character.*"
  gdb_test "printf \"%d\" j" ".*Invalid argument syntax.*"
  
! # play with "p", too
  #
! gdb_test "p/r j" ".*Undefined output format.*"
! gdb_test "p j" ".*" "debug test output"
  
  # x/0 j doesn't produce any output and terminates PA64 process when testing
  if [istarget "hppa2.0w-hp-hpux11*"] {
--- 173,182 ----
  gdb_test "printf \"\\w\"" ".*Unrecognized escape character.*"
  gdb_test "printf \"%d\" j" ".*Invalid argument syntax.*"
  
! # play with "print", too
  #
! gdb_test "print/r j" ".*Undefined output format.*"
! gdb_test "print j"   ".*" "debug test output"
  
  # x/0 j doesn't produce any output and terminates PA64 process when testing
  if [istarget "hppa2.0w-hp-hpux11*"] {
*************** if [istarget "hppa*-hp-hpux*"] {
*** 183,197 ****
      # on HP-UX you could access the first page without getting an error
      gdb_test "x/rx j" ".*(Cannot access|Error accessing) memory.*|.*0xa:\[ \t\]*\[0-9\]+.*"
  }
! gdb_test "p/0 j" ".*Item count other than 1 is meaningless.*" "p/0 j"
! gdb_test "p/s sum" ".*Format letter.*is meaningless.*" " no s"
! gdb_test "p/i sum" ".*Format letter.*is meaningless.*.*" "no i"
! gdb_test "p/a &sum" ".*= $hex.*<sum>.*"
  # If the constant below is larger than the length of main, then
  # this test will (incorrectly) fail.  So use a small number.
! gdb_test "p/a main+4" ".*= $hex.*<.*>.*"
! gdb_test "p/a \$pc" ".*= $hex.*<do_vars+.*>.*"
! gdb_test "p/a &&j" ".*A .* error in expression.*"
  
  # Done!
  #
--- 188,202 ----
      # on HP-UX you could access the first page without getting an error
      gdb_test "x/rx j" ".*(Cannot access|Error accessing) memory.*|.*0xa:\[ \t\]*\[0-9\]+.*"
  }
! gdb_test "print/0 j" ".*Item count other than 1 is meaningless.*" "print/0 j"
! gdb_test "print/s sum" ".*Format letter.*is meaningless.*" " no s"
! gdb_test "print/i sum" ".*Format letter.*is meaningless.*.*" "no i"
! gdb_test "print/a &sum" ".*= $hex.*<sum>.*"
  # If the constant below is larger than the length of main, then
  # this test will (incorrectly) fail.  So use a small number.
! gdb_test "print/a main+4" ".*= $hex.*<.*>.*"
! gdb_test "print/a \$pc" ".*= $hex.*<do_vars+.*>.*"
! gdb_test "print/a &&j" ".*A .* error in expression.*"
  
  # Done!
  #
Index: recurse.exp
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/testsuite/gdb.base/recurse.exp,v
retrieving revision 1.22
diff -c -3 -p -r1.22 recurse.exp
*** recurse.exp	2000/08/11 00:28:29	1.22
--- recurse.exp	2000/10/18 00:21:47
*************** gdb_load ${binfile}
*** 42,47 ****
--- 42,52 ----
  
  proc recurse_tests {} {
  
+     # Disable hardware watchpoints if necessary.
+     if [target_info exists gdb,no_hardware_watchpoints] {
+ 	gdb_test "set can-use-hw-watchpoints 0" "" ""
+     }
+ 
      if [runto recurse] then {
  	# First we need to step over the assignment of b, so it has a known
  	# value.

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