| # Copyright (C) 2018-2020 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/>. | |
| # Tests whether -var-info-path-expression fails as documented when | |
| # invoked on a dynamic varobj. | |
| load_lib mi-support.exp | |
| set MIFLAGS "-i=mi" | |
| gdb_exit | |
| if {[mi_gdb_start]} { | |
| continue | |
| } | |
| # | |
| # Start here | |
| # | |
| standard_testfile | |
| if {[gdb_compile "$srcdir/$subdir/$srcfile" $binfile executable {debug}] != "" } { | |
| return -1 | |
| } | |
| # Skip all tests if Python scripting is not enabled. | |
| if { [mi_skip_python_tests] } { continue } | |
| set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py] | |
| mi_gdb_test "source ${pyfile}" \ | |
| ".*\\^done" \ | |
| "load python file" | |
| mi_gdb_test "-enable-pretty-printing" \ | |
| "\\^done" \ | |
| "-enable-pretty-printing" | |
| mi_gdb_test "set python print-stack full" \ | |
| ".*\\^done" \ | |
| "set python print-stack full" | |
| mi_run_to_main | |
| mi_continue_to_line [gdb_get_line_number "next line" ${srcfile}] \ | |
| "step to breakpoint" | |
| mi_gdb_test "-var-create c1 * &c1" \ | |
| "\\^done.*" \ | |
| "-var-create c1 * &c1" | |
| mi_gdb_test "-var-info-path-expression c1" \ | |
| "\\^done,path_expr=\"&c1\"" \ | |
| "-var-info-path-expression c1" | |
| mi_gdb_test "-var-list-children c1" \ | |
| "\\^done,numchild=\"2\",children=.child=\{name=\"c1.car\".*child=\{name=\"c1.cdr\".*" \ | |
| "-var-list-children c1" | |
| mi_gdb_test "-var-info-path-expression c1.cdr" \ | |
| "\\^error,msg=\".*\"" \ | |
| "-var-info-path-expression c1.cdr" | |
| mi_gdb_test "-var-list-children c1.cdr" \ | |
| "\\^done,numchild=\"2\",children=.child=\{name=\"c1.cdr.car\".*child=\{name=\"c1.cdr.cdr\".*" \ | |
| "-var-list-children c1.cdr" | |
| mi_gdb_test "-var-info-path-expression c1.cdr.cdr" \ | |
| "\\^error,msg=\".*\"" \ | |
| "-var-info-path-expression c1.cdr.cdr" | |
| mi_gdb_test "-var-list-children c1.car" \ | |
| "\\^done,numchild=\"1\",children=.child=\{name=\"c1.car.atom\".*" \ | |
| "-var-list-children c1.car" | |
| mi_gdb_test "-var-list-children c1.car.atom" \ | |
| "\\^done,numchild=\"1\",children=.child=\{name=\"c1.car.atom.ival\".*" \ | |
| "-var-list-children c1.car.atom" | |
| mi_gdb_test "-var-info-path-expression c1.car.atom.ival" \ | |
| "\\^error,msg=\".*\"" \ | |
| "-var-info-path-expression c1.car.atom.ival" |