From: Tom de Vries Date: Mon, 2 Aug 2021 13:31:51 +0000 (+0200) Subject: [gdb/testsuite] Fix gdb.dwarf2/dw2-using-debug-str.exp with cc-with-gdb-index X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f7ded54b34dcfb2a8e7088c0045f835aab75963a;p=binutils-gdb.git [gdb/testsuite] Fix gdb.dwarf2/dw2-using-debug-str.exp with cc-with-gdb-index When running with target board cc-with-gdb-index, we run into: ... (gdb) file dw2-using-debug-str-no-debug-str^M Reading symbols from dw2-using-debug-str-no-debug-str...^M Dwarf Error: DW_FORM_strp used without required section^M (gdb) FAIL: gdb.dwarf2/dw2-using-debug-str.exp: file dw2-using-debug-str ... The test expects the dwarf error, but has no matching pattern for the entire output. Fix this by updating the regexp. Tested on x86_64-linux. gdb/testsuite/ChangeLog: 2021-08-02 Tom de Vries * gdb.dwarf2/dw2-using-debug-str.exp: Update regexp to match cc-with-gdb-index output. --- diff --git a/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp b/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp index 62febdb0a99..09f58d38f7b 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp @@ -115,28 +115,32 @@ if {[run_on_host "objcopy" [gdb_find_objcopy] "$args"]} { # executable we're going to get an error, which we check for below. clean_restart +set line1 "Reading symbols from \[^\r\n\]+" +set dwarf_error "Dwarf Error: DW_FORM_strp used without required section" + # This pattern is hit when GDB does not use -readnow (i.e. the default # behaviour). set pattern1 \ [multi_line \ - "Reading symbols from \[^\r\n\]+" \ - "Dwarf Error: DW_FORM_strp used without required section" \ + $line1 \ + $dwarf_error \ "\\(No debugging symbols \[^\r\n\]+\\)"] # This pattern is hit when GDB does use -readnow (e.g. running with # --target_board=readnow). set pattern2 \ [multi_line \ - "Reading symbols from \[^\r\n\]+" \ + $line1 \ "Expanding full symbols from \[^\r\n\]+" \ - "Dwarf Error: DW_FORM_strp used without required section"] + $dwarf_error] + +# This pattern is hit when gcc adds an index (e.g. running with +# --target_board=cc-with-gdb-index). +set pattern3 \ + [multi_line \ + $line1 \ + $dwarf_error] # Load the executable, we expect an error from the DWARF parser. -gdb_test_multiple "file $binfile_no_debug_str" "file $testfile" { - -wrap -re $pattern1 { - pass $gdb_test_name - } - -re -wrap "$pattern2" { - pass $gdb_test_name - } -} +gdb_test "file $binfile_no_debug_str" "($pattern1|$pattern2|$pattern3)" \ + "file $testfile"