Index: gdb/testsuite/gdb.mi/mi-language.exp |
diff --git a/gdb/testsuite/gdb.mi/mi-language.exp b/gdb/testsuite/gdb.mi/mi-language.exp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0b77b01f1562938a1825e40864ebf676b27f4119 |
--- /dev/null |
+++ b/gdb/testsuite/gdb.mi/mi-language.exp |
@@ -0,0 +1,68 @@ |
+# Copyright 2013 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/>. |
+ |
+load_lib mi-support.exp |
+set MIFLAGS "-i=mi" |
+ |
+gdb_exit |
+if [mi_gdb_start] { |
+ continue |
+} |
+ |
+# First, verify that the debugger correctly advertises support |
+# for the --language option. |
+mi_gdb_test "-list-features" \ |
+ "\\^done,features=\\\[.*\"language-option\".*\\\]" \ |
+ "-list-features should include \"language-option\"" |
+ |
+mi_gdb_test "set lang ada" \ |
+ ".*=cmd-param-changed,param=\"language\",value=\"ada\".*" \ |
+ "set lang ada" |
+ |
+# Evaluate an expression that the Ada language is unable to parse. |
+mi_gdb_test "-data-evaluate-expression \"sizeof (void*)\"" \ |
+ "\\^error,.*" \ |
+ "sizeof expression using current language" |
+ |
+# Now, ask for the same expression to be parsed, but using the C |
+# language. |
+mi_gdb_test "-data-evaluate-expression --language c \"sizeof (void*)\"" \ |
+ "\\^done,value=\"$decimal\"" \ |
+ "sizeof expression using C language" |
+ |
+# Double-check that the current language has not changed. |
+mi_gdb_test "show lang ada" \ |
+ ".*The current source language is \\\\\"ada\\\\\".*" \ |
+ "set lang ada" |
+ |
+# Test what happens when specifying an invalid language name... |
+mi_gdb_test "-data-evaluate-expression --language invlang \"sizeof (void*)\"" \ |
+ "\\^error,msg=\"Invalid --language argument: invlang\"" \ |
+ "data-evaluate-expression with invalid language name" |
+ |
+# Make sure that "--language auto" is also rejected. |
+mi_gdb_test "-data-evaluate-expression --language auto \"sizeof (void*)\"" \ |
+ "\\^error,msg=\"Invalid --language argument: auto\"" \ |
+ "data-evaluate-expression with language auto" |
+ |
+# Make sure that "--language local" is also rejected. |
+mi_gdb_test "-data-evaluate-expression --language local \"sizeof (void*)\"" \ |
+ "\\^error,msg=\"Invalid --language argument: local\"" \ |
+ "data-evaluate-expression with language local" |
+ |
+# Make sure that "--language unknown" is also rejected. |
+mi_gdb_test "-data-evaluate-expression --language unknown \"sizeof (void*)\"" \ |
+ "\\^error,msg=\"Invalid --language argument: unknown\"" \ |
+ "data-evaluate-expression with language unknown" |