[gdb/testsuite] Fix internal buffer full error in gdb.base/info-types.exp

With test-case gdb.base/info-types.exp, I run into:
...
ERROR: internal buffer is full.
UNRESOLVED: gdb.base/info-types.exp: l=c: info types
ERROR: internal buffer is full.
UNRESOLVED: gdb.base/info-types.exp: l=c++: info types
...

Fix this by using exp_continue while matching the output of "info types".

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.base/info-types.exp: Use exp_continue during matching of output
	of "info types".
This commit is contained in:
Tom de Vries 2020-03-12 14:58:57 +01:00
parent 14e9c72c33
commit 0925214029
2 changed files with 32 additions and 13 deletions

View File

@ -1,3 +1,8 @@
2020-03-12 Tom de Vries <tdevries@suse.de>
* gdb.base/info-types.exp: Use exp_continue during matching of output
of "info types".
2020-03-12 Tom de Vries <tdevries@suse.de>
* gdb.threads/execl.exp: Delete breakpoint after hitting it.

View File

@ -54,9 +54,6 @@ proc run_test { lang } {
if { $lang == "c++" } {
set output_re \
[multi_line \
"All defined types:" \
"" \
"File .*:" \
"98:\[\t \]+CL;" \
"42:\[\t \]+anon_struct_t;" \
"65:\[\t \]+anon_union_t;" \
@ -86,15 +83,10 @@ proc run_test { lang } {
"19:\[\t \]+typedef float nested_float_t;" \
"18:\[\t \]+typedef int nested_int_t;" \
"62:\[\t \]+typedef union_t nested_union_t;(" \
"\[\t \]+unsigned int)?(" \
"" \
"File .*:.*)?" ]
"\[\t \]+unsigned int)?"]
} else {
set output_re \
[multi_line \
"All defined types:" \
"" \
"File .*:" \
"52:\[\t \]+typedef enum {\\.\\.\\.} anon_enum_t;" \
"45:\[\t \]+typedef struct {\\.\\.\\.} anon_struct_t;" \
"68:\[\t \]+typedef union {\\.\\.\\.} anon_union_t;" \
@ -118,12 +110,34 @@ proc run_test { lang } {
"18:\[\t \]+typedef int nested_int_t;" \
"62:\[\t \]+typedef union union_t nested_union_t;" \
"56:\[\t \]+union union_t;(" \
"\[\t \]+unsigned int)?(" \
"" \
"File .*:.*)?" ]
"\[\t \]+unsigned int)?"]
}
gdb_test "info types" $output_re
set state 0
gdb_test_multiple "info types" "" {
-re "\r\nAll defined types:" {
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 $output_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
}
}
}
}
foreach_with_prefix l $lang {