diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 6fc24e19c2..5c5576ed1e 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 a69620af7a..7cce756e92 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 {