xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp (revision 9fd8799cb5ceb66c69f2eb1a6d26a1d587ba1f1e)
1# Copyright (C) 2018-2019 Free Software Foundation, Inc.
2# This program is free software; you can redistribute it and/or modify
3# it under the terms of the GNU General Public License as published by
4# the Free Software Foundation; either version 3 of the License, or
5# (at your option) any later version.
6#
7# This program is distributed in the hope that it will be useful,
8# but WITHOUT ANY WARRANTY; without even the implied warranty of
9# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10# GNU General Public License for more details.
11#
12# You should have received a copy of the GNU General Public License
13# along with this program.  If not, see <http://www.gnu.org/licenses/>.
14
15# Tests whether -var-info-path-expression fails as documented when
16# invoked on a dynamic varobj.
17
18load_lib mi-support.exp
19set MIFLAGS "-i=mi"
20
21gdb_exit
22if {[mi_gdb_start]} {
23    continue
24}
25
26#
27# Start here
28#
29standard_testfile
30
31if {[gdb_compile "$srcdir/$subdir/$srcfile" $binfile executable {debug}] != "" } {
32    return -1
33}
34
35mi_gdb_test "source ${srcdir}/${subdir}/${testfile}.py" \
36  ".*\\^done" \
37  "load python file"
38
39mi_gdb_test "-enable-pretty-printing" \
40  "\\^done" \
41  "-enable-pretty-printing"
42
43mi_gdb_test "set python print-stack full" \
44  ".*\\^done" \
45  "set python print-stack full"
46
47
48mi_run_to_main
49
50
51mi_continue_to_line [gdb_get_line_number "next line" ${srcfile}] \
52  "step to breakpoint"
53
54mi_gdb_test "-var-create c1 * &c1" \
55   "\\^done.*" \
56   "-var-create c1 * &c1"
57
58mi_gdb_test "-var-info-path-expression c1" \
59  "\\^done,path_expr=\"&c1\"" \
60  "-var-info-path-expression c1"
61
62mi_gdb_test "-var-list-children c1" \
63  "\\^done,numchild=\"2\",children=.child=\{name=\"c1.car\".*child=\{name=\"c1.cdr\".*" \
64  "-var-list-children c1"
65
66mi_gdb_test "-var-info-path-expression c1.cdr" \
67  "\\^error,msg=\".*\"" \
68  "-var-info-path-expression c1.cdr"
69
70mi_gdb_test "-var-list-children c1.cdr" \
71  "\\^done,numchild=\"2\",children=.child=\{name=\"c1.cdr.car\".*child=\{name=\"c1.cdr.cdr\".*" \
72  "-var-list-children c1.cdr"
73
74mi_gdb_test "-var-info-path-expression c1.cdr.cdr" \
75  "\\^error,msg=\".*\"" \
76  "-var-info-path-expression c1.cdr.cdr"
77
78mi_gdb_test "-var-list-children c1.car" \
79  "\\^done,numchild=\"1\",children=.child=\{name=\"c1.car.atom\".*" \
80  "-var-list-children c1.car"
81
82mi_gdb_test "-var-list-children c1.car.atom" \
83  "\\^done,numchild=\"1\",children=.child=\{name=\"c1.car.atom.ival\".*" \
84  "-var-list-children c1.car.atom"
85
86mi_gdb_test "-var-info-path-expression c1.car.atom.ival" \
87  "\\^error,msg=\".*\"" \
88  "-var-info-path-expression c1.car.atom.ival"
89