diff options
author | Tom de Vries <tdevries@suse.de> | 2020-03-12 14:58:57 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2020-03-12 14:58:57 +0100 |
commit | 09252140293763eaa230314dee27f605a37154d4 (patch) | |
tree | 09f202bfbfb806be95a590d06b6aba5facdb66ed | |
parent | 14e9c72c334205c0171d62e716c1fb65472a0eab (diff) | |
download | gdb-09252140293763eaa230314dee27f605a37154d4.zip gdb-09252140293763eaa230314dee27f605a37154d4.tar.gz gdb-09252140293763eaa230314dee27f605a37154d4.tar.bz2 |
[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".
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/info-types.exp | 40 |
2 files changed, 32 insertions, 13 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 6fc24e1..5c5576e 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 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. 2020-03-12 Tom de Vries <tdevries@suse.de> diff --git a/gdb/testsuite/gdb.base/info-types.exp b/gdb/testsuite/gdb.base/info-types.exp index a69620a..7cce756 100644 --- a/gdb/testsuite/gdb.base/info-types.exp +++ b/gdb/testsuite/gdb.base/info-types.exp @@ -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 { |