1# Copyright 1999-2023 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16# 17# Test essential Machine interface (MI) operations 18# 19# Verify -data-evaluate-expression. There are really minimal tests. 20 21# The goal is not to test gdb functionality, which is done by other tests, 22# but to verify the correct output response to MI operations. 23# 24 25load_lib mi-support.exp 26set MIFLAGS "-i=mi" 27 28gdb_exit 29if [mi_gdb_start] { 30 return 31} 32 33standard_testfile basics.c 34 35if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { 36 untested "failed to compile" 37 return -1 38} 39 40mi_delete_breakpoints 41mi_gdb_reinitialize_dir $srcdir/$subdir 42mi_gdb_reinitialize_dir $srcdir/$subdir 43mi_gdb_load ${binfile} 44 45set line_callee4_head [gdb_get_line_number "callee4 ("] 46set line_callee4_body [expr $line_callee4_head + 2] 47 48mi_runto callee4 49mi_next_to "callee4" "" "basics.c" [expr $line_callee4_body + 1] "next at callee4" 50 51mi_gdb_test "211-data-evaluate-expression A" "211\\^done,value=\"1\"" "eval A" 52 53mi_gdb_test "311-data-evaluate-expression &A" "311\\^done,value=\"$hex\"" "eval &A" 54 55mi_gdb_test "411-data-evaluate-expression A+3" "411\\^done,value=\"4\"" "eval A+3" 56 57mi_gdb_test "511-data-evaluate-expression \"A + 3\"" "511\\^done,value=\"4\"" "eval A + 3" 58 59 60mi_gdb_exit 61return 0 62