summaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2022-05-24 10:15:17 -0600
committerTom Tromey <tromey@adacore.com>2022-06-01 06:15:53 -0600
commit80fa4b2a606763e71c4b599fa88288f554a0ea5b (patch)
tree251f21a9776f96cc0a0b83e905968385cb409b48 /gdb/testsuite
parent46c7fd95fc42466a5a8c3b3d70925f1a8af68de3 (diff)
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.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/gdb.python/py-frame.exp6
-rw-r--r--gdb/testsuite/gdb.python/py-parameter.exp14
-rw-r--r--gdb/testsuite/gdb.rust/pp.exp2
3 files changed, 22 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
index b91ffe62a8..4991e8a0c5 100644
--- a/gdb/testsuite/gdb.python/py-frame.exp
+++ b/gdb/testsuite/gdb.python/py-frame.exp
@@ -128,3 +128,9 @@ if { $pc != "" } {
" = True" \
"test Frame.read_register($pc)"
}
+
+# Test language.
+gdb_test "python print(gdb.selected_frame().language())" "c"
+gdb_test "set language ada"
+gdb_test "python print(gdb.selected_frame().language())" "c" \
+ "frame language is not affected by global language"
diff --git a/gdb/testsuite/gdb.python/py-parameter.exp b/gdb/testsuite/gdb.python/py-parameter.exp
index 199d3bc16e..db158ddec2 100644
--- a/gdb/testsuite/gdb.python/py-parameter.exp
+++ b/gdb/testsuite/gdb.python/py-parameter.exp
@@ -370,6 +370,19 @@ proc_with_prefix test_throwing_parameter { } {
"gdb.GdbError does not show Python stack"
}
+proc_with_prefix test_language {} {
+ gdb_test "python print(gdb.parameter('language'))" "auto" \
+ "print language parameter"
+ gdb_test "python print(gdb.current_language())" "c" \
+ "print current language"
+ gdb_test_no_output "set lang rust"
+ gdb_test "python print(gdb.parameter('language'))" "rust" \
+ "print language parameter for rust"
+ gdb_test "python print(gdb.current_language())" "rust" \
+ "print current language for rust"
+ gdb_test_no_output "set lang auto"
+}
+
test_directories
test_data_directory
test_boolean_parameter
@@ -380,6 +393,7 @@ test_really_undocumented_parameter
test_deprecated_api_parameter
test_integer_parameter
test_throwing_parameter
+test_language
# This caused a gdb crash.
gdb_test "python print(gdb.parameter('endian'))" "auto" \
diff --git a/gdb/testsuite/gdb.rust/pp.exp b/gdb/testsuite/gdb.rust/pp.exp
index 7c7c78b584..e3e226c5db 100644
--- a/gdb/testsuite/gdb.rust/pp.exp
+++ b/gdb/testsuite/gdb.rust/pp.exp
@@ -40,3 +40,5 @@ if {![runto ${srcfile}:$line]} {
gdb_test "print outer" " = pp::Outer \\(x\\(5\\)\\)"
gdb_test "print outer.0" " = x\\(5\\)"
+
+gdb_test "python print(gdb.selected_frame().language())" "rust"