Files
binutils-gdb/gdb/testsuite/gdb.rust/pp.exp
Tom Tromey 80fa4b2a60 Add gdb.current_language and gdb.Frame.language
This adds the gdb.current_language function, which can be used to find
the current language without (1) ever having the value "auto" or (2)
having to parse the output of "show language".

It also adds the gdb.Frame.language, which can be used to find the
language of a given frame.  This is normally preferable if one has a
Frame object handy.
2022-06-01 06:15:53 -06:00

45 lines
1.4 KiB
Plaintext

# Copyright (C) 2021-2022 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/>.
# Test expression parsing and evaluation that requires Rust compiler.
load_lib gdb-python.exp
load_lib rust-support.exp
if {[skip_rust_tests]} {
return
}
standard_testfile .rs
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug rust}]} {
return -1
}
if { [skip_python_tests] } { return }
set remote_python_file [gdb_remote_download host \
${srcdir}/${subdir}/${testfile}.py]
gdb_test_no_output "source ${remote_python_file}" "load python file"
set line [gdb_get_line_number "set breakpoint here"]
if {![runto ${srcfile}:$line]} {
untested "could not run to breakpoint"
return -1
}
gdb_test "print outer" " = pp::Outer \\(x\\(5\\)\\)"
gdb_test "print outer.0" " = x\\(5\\)"
gdb_test "python print(gdb.selected_frame().language())" "rust"