-# Copyright 2013-2014 Free Software Foundation, Inc.
+# Copyright 2013-2019 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# This testcase was originally for PR gdb/15415, a problem with the "run"
+# command expanding symlinks in the name of the program being run.
+# This test uses pathnames on build to create symbolic links on host and
+# expects the test program running on target to see those symbolic links.
+# Therefore, it can't work reliably on anything other than configurations
+# where build/host/target are all the same.
+
+if { ![isnative] } {
+ unsupported "argv0-symlink.exp not supported on non-native target"
+ return -1
+}
+
+if { [is_remote host] } {
+ unsupported "argv0-symlink.exp not supported on remote host"
+ return -1
+}
+
standard_testfile
+set has_argv0 [gdb_has_argv0]
+
if { [build_executable ${testfile}.exp ${testfile} ${srcfile}] == -1 } {
return -1
}
return -1
}
-gdb_test {print argv[0]} "/$filelink\"" $test
+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
+}
# 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
return -1
}
-# gdbserver does not have this issue.
-if ![is_remote target] {
- setup_kfail "*-*-*" gdb/15934
+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
+
gdb_test "info inferiors" "/$lastdir/$filelink *" "$test for info inferiors"