diff options
author | Tom de Vries <tdevries@suse.de> | 2020-03-12 13:51:46 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2020-03-12 13:51:46 +0100 |
commit | e515d67ed61f7c588a3154589a8a25c7bef66d20 (patch) | |
tree | 1ea9e2c71a3bf45c08d1f7b04dbd04d03daeb9a4 /gdb/testsuite | |
parent | 307eafd8df3ec820bb62a71324aeed06b86ec050 (diff) | |
download | gdb-e515d67ed61f7c588a3154589a8a25c7bef66d20.zip gdb-e515d67ed61f7c588a3154589a8a25c7bef66d20.tar.gz gdb-e515d67ed61f7c588a3154589a8a25c7bef66d20.tar.bz2 |
[gdb/testsuite] Fix internal buffer full error in gdb.fortran/module.exp
With test-case gdb.fortran/module.exp, I run into:
...
PASS: gdb.fortran/module.exp: fully qualified name of DW_TAG_constant
ERROR: internal buffer is full.
UNRESOLVED: gdb.fortran/module.exp: info variables -n
...
Fix this by using exp_continue while matching the output of "info variable
-n".
Tested on x86_64-linux, using make targets check and check-read1.
gdb/testsuite/ChangeLog:
2020-03-12 Tom de Vries <tdevries@suse.de>
* gdb.fortran/module.exp: Use exp_continue during matching of output
of "info variable -n".
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.fortran/module.exp | 37 |
2 files changed, 33 insertions, 9 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 5b67cb1..f6b1a56 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2020-03-12 Tom de Vries <tdevries@suse.de> + * gdb.fortran/module.exp: Use exp_continue during matching of output + of "info variable -n". + +2020-03-12 Tom de Vries <tdevries@suse.de> + * gdb.dwarf2/dw2-ranges-base.exp: Limit "maint info line-table" to gdb.dwarf2/dw2-ranges-base.c. diff --git a/gdb/testsuite/gdb.fortran/module.exp b/gdb/testsuite/gdb.fortran/module.exp index 6551f5b..1c269e2 100644 --- a/gdb/testsuite/gdb.fortran/module.exp +++ b/gdb/testsuite/gdb.fortran/module.exp @@ -37,11 +37,8 @@ if ![runto MAIN__] then { set int_type [fortran_int4] # Test 'info variables' can find module variables. -gdb_test "info variables -n" \ +set mod_re \ [multi_line \ - "All defined variables:" \ - "" \ - "File .*$srcfile:" \ "18:\[ \t\]+${int_type} mod1::var_const;" \ "17:\[ \t\]+${int_type} mod1::var_i;" \ "23:\[ \t\]+${int_type} mod2::var_i;" \ @@ -53,11 +50,33 @@ gdb_test "info variables -n" \ "33:\[ \t\]+${int_type} modmany::var_c;" \ "33:\[ \t\]+${int_type} modmany::var_i;" \ "37:\[ \t\]+${int_type} moduse::var_x;" \ - "37:\[ \t\]+${int_type} moduse::var_y;(" \ - "" \ - "File .*:(" \ - "$decimal:.*)+)*"] - + "37:\[ \t\]+${int_type} moduse::var_y;"] + +set state 0 +gdb_test_multiple "info variables -n" "" { + -re "\r\nAll defined variables:" { + if { $state == 0 } { set state 1 } + exp_continue + } + -re "\r\n\r\nFile .*[string_to_regexp $srcfile]:" { + if { $state == 1 } { set state 2 } + exp_continue + } + -re $mod_re { + if { $state == 2 } { set state 3 } + exp_continue + } + -re "\r\n\r\nFile \[^\r\n\]*:" { + exp_continue + } + -re -wrap "" { + if { $state == 3} { + pass $gdb_test_name + } else { + fail $gdb_test_name + } + } +} # Do not use simple single-letter names as GDB would pick up for expectedly # nonexisting symbols some static variables from system libraries debuginfos. |