1 # Copyright
(C
) 2008-2015 Free Software Foundation
, Inc.
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.
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.
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
/>.
16 # This file is part of the GDB testsuite. It tests the mechanism
17 # exposing
values to Python.
19 if { [skip_cplus_tests
] } { continue }
22 if { [gdb_compile
"${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
23 {debug c
++}] != "" } {
24 untested
"Couldn't compile ${srcfile}"
28 # Start with a fresh gdb.
32 gdb_reinitialize_dir $srcdir
/$subdir
34 # Skip all tests
if Python scripting is not enabled.
35 if { [skip_python_tests
] } { continue }
37 proc test_template_arg
{exefile type
} {
38 global testfile srcdir subdir srcfile
39 if { [gdb_compile
"${srcdir}/${subdir}/${srcfile}" "${exefile}" \
41 [list debug c
++ additional_flags
="-DTYPE=$type"]] != "" } {
46 if ![runto_main
] then {
47 perror
"couldn't run to breakpoint"
50 # There is no executable code in main
(), so we are where we want to be
51 gdb_test
"print (foo)" ".*"
52 gdb_test_no_output
"python foo = gdb.history(0)"
54 # Replace
'*' with
'\*' in regex.
55 regsub
-all
{\
*} $type
{\
*} t
56 gdb_test
"python print (foo.type.template_argument(0))" $t $type
59 test_template_arg
"${binfile}-ci" "const int"
60 test_template_arg
"${binfile}-vi" "volatile int"
61 test_template_arg
"${binfile}-cir" "const int &"
62 test_template_arg
"${binfile}-vir" "volatile int &"
63 test_template_arg
"${binfile}-vipc" "volatile int * const"
64 test_template_arg
"${binfile}-vipcp" "volatile int * const *"
65 test_template_arg
"${binfile}-cipv" "const int * volatile"
66 test_template_arg
"${binfile}-cipvpcpvp" "const int * volatile * const * volatile *"