From 09252140293763eaa230314dee27f605a37154d4 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 12 Mar 2020 14:58:57 +0100 Subject: [PATCH] [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 * gdb.base/info-types.exp: Use exp_continue during matching of output of "info types". --- gdb/testsuite/ChangeLog | 5 ++++ 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 6fc24e19c2c..5c5576ed1e9 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-03-12 Tom de Vries + + * gdb.base/info-types.exp: Use exp_continue during matching of output + of "info types". + 2020-03-12 Tom de Vries * gdb.threads/execl.exp: Delete breakpoint after hitting it. diff --git a/gdb/testsuite/gdb.base/info-types.exp b/gdb/testsuite/gdb.base/info-types.exp index a69620af7af..7cce756e92d 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 { -- 2.30.2