RFA: parse output from `info sources' one filename at a time

Jim Blandy jimb@zwingli.cygnus.com
Wed Feb 13 16:10:00 GMT 2002


This eliminates an `ERROR' when the test is run under Linux.  The
output from `info sources' includes all the shared library source
files, making it so long that it overflows Expect's buffer.

2002-02-13  Jim Blandy  <jimb@redhat.com>

	* gdb.asm/asm-source.exp: Parse the output from `info sources' one
	filename at a time, and watch for the ones we want to see.

Index: gdb/testsuite/gdb.asm/asm-source.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.asm/asm-source.exp,v
retrieving revision 1.17
diff -c -r1.17 asm-source.exp
*** gdb/testsuite/gdb.asm/asm-source.exp	2002/01/18 00:13:00	1.17
--- gdb/testsuite/gdb.asm/asm-source.exp	2002/02/14 00:05:30
***************
*** 202,211 ****
  	"Current source file is .*asmsrc2.s.*Source language is asm.*" \
  	"info source asmsrc2.s"
  
! # Try 'info sources'
! gdb_test "info sources" \
! 	"Source files .*asmsrc\[12\].s.*asmsrc\[12\].s.*" \
! 	"info sources"
  
  # Try 'info line'
  gdb_test "info line" \
--- 202,238 ----
  	"Current source file is .*asmsrc2.s.*Source language is asm.*" \
  	"info source asmsrc2.s"
  
! # Try 'info sources'.  This can produce a lot of output on systems
! # with dynamic linking, where the system's shared libc was compiled
! # with debugging info; for example, on Linux, this produces 47kb of
! # output.  So we consume it as we go.
! send_gdb "info sources\n"
! set seen_asmsrc_1 0
! set seen_asmsrc_2 0
! gdb_expect {
!     -re "^\[^,\]*asmsrc1.s(, |\[\r\n\]+)" {
!         set seen_asmsrc_1 1
!         exp_continue
!     }
!     -re "^\[^,\]*asmsrc2.s(, |\[\r\n\]+)" {
!         set seen_asmsrc_2 1
!         exp_continue
!     }
!     -re ", " { 
!         exp_continue
!     }
!     -re "$gdb_prompt $" {
!         if {$seen_asmsrc_1 && $seen_asmsrc_2} {
!             pass "info sources"
!         } else {
!             fail "info sources"
!         }
!     }
!     timeout {
!             fail "info sources (timeout)"
!     }
! }
!         
  
  # Try 'info line'
  gdb_test "info line" \



More information about the Gdb-patches mailing list