old-cross-binutils/gdb/testsuite/gdb.java/jprint.exp
Joel Brobecker e22f8b7c8c Switch the license of all .exp files to GPLv3.
Switch the license of all .f and .f90 files to GPLv3.
        Switch the license of all .s and .S files to GPLv3.
2007-08-23 18:14:19 +00:00

86 lines
2.8 KiB
Text

# Copyright 2004, 2006, 2007 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
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# 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 file was written by Jeff Johnston. (jjohnstn@redhat.com)
#
if $tracelevel then {
strace $tracelevel
}
load_lib "java.exp"
set testfile "jprint"
set srcfile ${srcdir}/$subdir/${testfile}.java
set binfile ${objdir}/${subdir}/${testfile}
if { [compile_java_from_source ${srcfile} ${binfile} "-g"] != "" } {
untested "Couldn't compile ${srcfile}"
return -1
}
# Set the current language to java. This counts as a test. If it
# fails, then we skip the other tests.
proc set_lang_java {} {
global gdb_prompt
global binfile objdir subdir
verbose "loading file '$binfile'"
gdb_load $binfile
send_gdb "set language java\n"
gdb_expect {
-re ".*$gdb_prompt $" {}
timeout { fail "set language java (timeout)" ; return 0 }
}
return [gdb_test "show language" ".* source language is \"java\".*" \
"set language to \"java\""]
}
set prms_id 0
set bug_id 0
# Start with a fresh gdb.
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_test "set print sevenbit-strings" ".*"
if ![set_lang_java] then {
# Ref PR gdb:java/1565. Don't use the simpler "break jmisc.main".
# As of 2004-02-24 it wasn't working and is being tested separatly.
# Before GCJ 4.1 (approximately) the demangled name did not include
# a method signature; after that point it does include a trailing
# signature.
runto_main
set function "${testfile}.main(java.lang.String\[\])"
gdb_breakpoint "\'$function\'" { allow-pending }
gdb_breakpoint "\'${function}void\'" { allow-pending }
gdb_continue_to_breakpoint $function
gdb_test "p jvclass.addprint(4,5,6)" "sum is 15\r\n.*" "unambiguous static call"
gdb_test "next" ""
gdb_test "next" ""
gdb_test "p x.print(44)" "x is 44\r\n.*" "single argument print call"
gdb_test "p x.print(22,33)" "y is 33\r\n.*" "double argument print call"
gdb_test "call x.dothat(55)" "new value is 58\r\n.*= 62.*" "virtual fn call"
gdb_test "p x.addprint(1,2,3)" "sum is 6\r\n.*" "inherited static call"
gdb_test "call x.addk(44)" "adding k gives 121\r\n.*= 121.*" "inherited virtual fn call"
}