diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/argv0-symlink.exp | 119 |
2 files changed, 68 insertions, 55 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a790e6856ae..73035a906da 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2021-06-24 Tom de Vries <tdevries@suse.de> + + * gdb.base/argv0-symlink.exp: Use with_test_prefix. + 2021-06-23 Tom de Vries <tdevries@suse.de> * lib/gdb.exp (gdb_test_lines): Rewrite to accept single diff --git a/gdb/testsuite/gdb.base/argv0-symlink.exp b/gdb/testsuite/gdb.base/argv0-symlink.exp index f39f75c8d7c..f55d9861603 100644 --- a/gdb/testsuite/gdb.base/argv0-symlink.exp +++ b/gdb/testsuite/gdb.base/argv0-symlink.exp @@ -38,73 +38,82 @@ if { [build_executable ${testfile}.exp ${testfile} ${srcfile}] == -1 } { return -1 } -set test "kept file symbolic link name" -set filelink "${testfile}-filelink" - -remote_file host delete [standard_output_file $filelink] -set status [remote_exec host "ln -sf ${testfile} [standard_output_file $filelink]"] -if {[lindex $status 0] != 0} { - unsupported "$test (host does not support symbolic links)" - return 0 -} - -clean_restart "$filelink" +with_test_prefix "file symlink" { -if ![runto_main] { - untested "could not run to main" - return -1 -} + set test "kept name" + set filelink "${testfile}-filelink" -gdb_test_no_output "set print repeats 10000" -gdb_test_no_output "set print elements 10000" + remote_file host delete [standard_output_file $filelink] + set status [remote_exec host \ + "ln -sf ${testfile} [standard_output_file $filelink]"] + if {[lindex $status 0] != 0} { + unsupported "$test (host does not support symbolic links)" + return 0 + } -if { $has_argv0 } { - gdb_test {print argv[0]} "/$filelink\"" $test -} else { - unsupported $test -} + clean_restart "$filelink" -# For a link named /PATH/TO/DIR/LINK, we want to check the output -# against "/DIR/LINK", but computed in a way that doesn't make -# assumptions about the test directory layout. -set full_filelink [standard_output_file $filelink] -set lastdir [file tail [file dirname $full_filelink]] + if ![runto_main] { + untested "could not run to main" + return -1 + } -gdb_test "info inferiors" "/$lastdir/$filelink *" "$test for info inferiors" + gdb_test_no_output "set print repeats 10000" + gdb_test_no_output "set print elements 10000" + if { $has_argv0 } { + gdb_test {print argv[0]} "/$filelink\"" $test + } else { + unsupported $test + } -set test "kept directory symbolic link name" -set dirlink "${testfile}-dirlink" + # For a link named /PATH/TO/DIR/LINK, we want to check the output + # against "/DIR/LINK", but computed in a way that doesn't make + # assumptions about the test directory layout. + set full_filelink [standard_output_file $filelink] + set lastdir [file tail [file dirname $full_filelink]] -# 'ln -sf' does not overwrite symbol link to a directory. -# 'remote_file host delete' uses stat (not lstat), therefore it refuses to -# delete a directory. -remote_exec host "rm -f [standard_output_file $dirlink]" -set status [remote_exec host "ln -sf . [standard_output_file $dirlink]"] -if {[lindex $status 0] != 0} { - unsupported "$test (host does not support symbolic links)" - return 0 + gdb_test "info inferiors" "/$lastdir/$filelink *" \ + "$test for info inferiors" } -clean_restart "$dirlink/$filelink" +with_test_prefix "dir symlink" { -if ![runto_main] { - untested "could not run to main" - return -1 -} + set test "kept name" + set dirlink "${testfile}-dirlink" + + # 'ln -sf' does not overwrite symbol link to a directory. + # 'remote_file host delete' uses stat (not lstat), therefore it refuses to + # delete a directory. + remote_exec host "rm -f [standard_output_file $dirlink]" + set status [remote_exec host "ln -sf . [standard_output_file $dirlink]"] + if {[lindex $status 0] != 0} { + unsupported "$test (host does not support symbolic links)" + return 0 + } -gdb_test_no_output "set print repeats 10000" -gdb_test_no_output "set print elements 10000" + clean_restart "$dirlink/$filelink" -if { $has_argv0 } { - # gdbserver in extended-remote mode does not have this issue. - # Plain remote does, however. - if {[target_info gdb_protocol] != "extended-remote" || ![target_is_gdbserver]} { - setup_kfail "*-*-*" gdb/15934 + if ![runto_main] { + untested "could not run to main" + return -1 + } + + gdb_test_no_output "set print repeats 10000" + gdb_test_no_output "set print elements 10000" + + if { $has_argv0 } { + # gdbserver in extended-remote mode does not have this issue. + # Plain remote does, however. + if { [target_info gdb_protocol] != "extended-remote" + || ![target_is_gdbserver] } { + setup_kfail "*-*-*" gdb/15934 + } + gdb_test {print argv[0]} "/$dirlink/$filelink\"" $test + } else { + unsupported $test } - gdb_test {print argv[0]} "/$dirlink/$filelink\"" $test -} else { - unsupported $test -} -gdb_test "info inferiors" "/$lastdir/$filelink *" "$test for info inferiors" + gdb_test "info inferiors" "/$lastdir/$filelink *" \ + "$test for info inferiors" +} |