[binutils-gdb] [gdb/testsuite] Fix gdb.python/py-section-script.exp with make-check-all.sh
Tom de Vries via Gdb-cvs <[email protected]>
| Newsgroups | gmane.comp.gdb.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3adaeeeaeed4372778b94eb363baac9fa7928b2b commit 3adaeeeaeed4372778b94eb363baac9fa7928b2b Author: Tom de Vries <[email protected]> Date: Fri Aug 14 17:16:12 2026 +0200 [gdb/testsuite] Fix gdb.python/py-section-script.exp with make-check-all.sh When running test-case gdb.python/py-section-script.exp with make-check-all.sh, I get: ... LOCAL: # of expected passes 38 TARGET BOARD: read1 # of expected passes 38 TARGET BOARD: readmore # of expected passes 38 TARGET BOARD: cc-with-gdb-index # of expected passes 38 TARGET BOARD: cc-with-index-cache # of untested testcases 1 TARGET BOARD: cc-with-debug-names FAIL: $exp: variant=compressed: gdb_breakpoint: set breakpoint at main # of expected passes 25 # of unexpected failures 1 TARGET BOARD: cc-with-dwz # of expected passes 19 # of untested testcases 1 TARGET BOARD: cc-with-dwz-m # of expected passes 19 # of untested testcases 1 TARGET BOARD: cc-with-gnu-debuglink ERROR: Undefined command "test-cmd 1 2 3". FAIL: $exp: variant=plain: sepdebug from eu-strip: verify scripts loaded FAIL: $exp: variant=plain: sepdebug from objcopy: strip py-section-script-plain-objcopy debuginfo FAIL: $exp: variant=plain: verify scripts loaded # of expected passes 12 # of unexpected failures 3 # of unresolved testcases 1 TARGET BOARD: debug-types # of expected passes 38 TARGET BOARD: dwarf4-gdb-index # of expected passes 38 TARGET BOARD: dwarf5-fission-debug-types # of expected passes 38 TARGET BOARD: dwarf64 # of expected passes 38 TARGET BOARD: fission # of untested testcases 1 TARGET BOARD: fission-dwp # of untested testcases 1 TARGET BOARD: gold # of untested testcases 1 TARGET BOARD: gold-gdb-index # of untested testcases 1 TARGET BOARD: readnow # of expected passes 38 TARGET BOARD: native-extended-gdbserver # of expected passes 38 TARGET BOARD: native-gdbserver # of expected passes 38 TARGET BOARD: native-stdio-gdbserver # of expected passes 38 TARGET BOARD: remote-gdbserver-on-localhost # of expected passes 38 TARGET BOARD: remote-stdio-gdbserver # of expected passes 38 HOST BOARD: local-remote-host, TARGET BOARD: remote-gdbserver-on-localhost # of untested testcases 1 HOST BOARD: local-remote-host, TARGET BOARD: remote-stdio-gdbserver # of untested testcases 1 HOST BOARD: local-remote-host-notty, TARGET BOARD: remote-gdbserver-on-localhost # of untested testcases 1 HOST BOARD: local-remote-host-notty, TARGET BOARD: remote-stdio-gdbserver # of untested testcases 1 HOST/TARGET BOARD: local-remote-host-native # of untested testcases 1 ... I've filed a PR about the cc-with-debug-names failure [1]. The untested for remote host configurations is because of compilation failure. There's some evidence of remote host support in the test-case, but making it work in general requires a lot of changes, because the test-case is file-manipulation heavy. Instead, just require local host and remove any suggestion that remote host is supported. Finally, cc-with-gnu-debuglink config fails because it moves the .debug_gdb_scripts section out of the executable. Detect this and bail out. [1] https://sourceware.org/bugzilla/show_bug.cgi?id=34440 Diff: --- gdb/testsuite/gdb.python/py-section-script.exp | 38 ++++++++++++-------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/gdb/testsuite/gdb.python/py-section-script.exp b/gdb/testsuite/gdb.python/py-section-script.exp index 91c280da2b1..04ff14a8d0a 100644 --- a/gdb/testsuite/gdb.python/py-section-script.exp +++ b/gdb/testsuite/gdb.python/py-section-script.exp @@ -18,26 +18,23 @@ require is_elf_target require allow_python_tests +require {!is_remote host} standard_testfile -# Make this available to gdb before the program starts, it is -# automagically loaded by gdb. -set remote_python_file [gdb_remote_download host \ - ${srcdir}/${subdir}/${testfile}.py] - -set quoted_name "\"$remote_python_file\"" +set python_file $srcdir/$subdir/$testfile.py +set quoted_name "\"$python_file\"" # Helper proc to 'set auto-load safe-path ...'. Build the new path value by # joining ARGS together with an appropriate path separator character. proc set_auto_load_safe_path { args } { if {[ishost *-*-mingw*]} { - set remote_pathsep ";" + set pathsep ";" } else { - set remote_pathsep ":" + set pathsep ":" } - set safe_path [join $args $remote_pathsep] + set safe_path [join $args $pathsep] gdb_test_no_output "set auto-load safe-path $safe_path" \ "set auto-load safe-path" @@ -59,6 +56,13 @@ foreach_with_prefix variant {plain compressed} { return } + if {[section_get $the_binfile ".debug_gdb_scripts"] eq ""} { + # Target board cc-with-gnu-debug-link moves .debug_gdb_scripts into + # a separate debug file. + unsupported "Section .debug_gdb_scripts not in binfile" + return + } + if {$variant == "compressed"} { set objdump_program [gdb_find_objdump] set debug_sect [exec $objdump_program -j .debug_gdb_scripts -s "$the_binfile"] @@ -92,16 +96,8 @@ foreach_with_prefix variant {plain compressed} { clean_restart - # Get the name of the binfile on the host; on a remote host this means - # stripping off any directory prefix. - if {[is_remote host]} { - set remote_binfile [file tail ${the_binfile}] - } else { - set remote_binfile ${the_binfile} - } - - set_auto_load_safe_path $remote_python_file $remote_binfile - gdb_load ${the_binfile} + set_auto_load_safe_path $python_file $the_binfile + gdb_load $the_binfile # Verify gdb loaded each script and they appear once in the list. gdb_test_multiple "info auto-load python-scripts" "verify scripts loaded" { -re -wrap "Yes.*${testfile}.py.*Yes.*inlined-script.*" { @@ -153,7 +149,7 @@ foreach_with_prefix variant {plain compressed} { return } - set_auto_load_safe_path $remote_python_file $eu_strip_binfile + set_auto_load_safe_path $python_file $eu_strip_binfile gdb_test_multiple "file $eu_strip_binfile" "load sepdebug" { -re -wrap "\r\nwarning: Invalid entry in \\.debug_gdb_scripts section.*" { fail $gdb_test_name @@ -203,7 +199,7 @@ foreach_with_prefix variant {plain compressed} { # Add the directory containing OBJCOPY_BINFILE because the scripts # section will be auto-loaded from the separate .debug file (not the # main executable), which resides alongside it. - set_auto_load_safe_path $remote_python_file \ + set_auto_load_safe_path $python_file \ [file dirname ${objcopy_binfile}] gdb_load $objcopy_binfile