m-data.exp revision 1.7
1# Copyright 2002-2017 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# Tests for member data 17# 2002-05-13 Benjamin Kosnik <bkoz@redhat.com> 18 19# This file is part of the gdb testsuite 20 21if { [skip_cplus_tests] } { continue } 22 23# 24# test running programs 25# 26 27standard_testfile .cc 28 29if [get_compiler_info "c++"] { 30 return -1 31} 32 33if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} { 34 return -1 35} 36 37if ![runto_main] then { 38 perror "couldn't run to breakpoint" 39 continue 40} 41 42# First, run to after we've constructed all the gnu_obj_N's: 43 44gdb_breakpoint [gdb_get_line_number "first-constructs-done"] 45gdb_continue_to_breakpoint "end of first constructors" 46 47# One. 48 49# simple object, const bool 50gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, const bool" 51 52# simple object, const int 53gdb_test "print test1.key1" "\\$\[0-9\]* = 5" "simple object, const int" 54 55# simple object, long 56gdb_test "print test1.key2" "\\$\[0-9\]* = 4589" "simple object, long" 57 58# simple object, enum 59gdb_test "print test1.value" "\\$\[0-9\]* = egyptian" "simple object, enum" 60 61# Two. 62 63# derived template object, base const bool 64gdb_test "print test2.test" "\\$\[0-9\]* = true" "derived template object, base const bool" 65 66# derived template object, base const int 67gdb_test "print test2.key1" "\\$\[0-9\]* = 5" "derived template object, base const int" 68 69# derived template object, base long 70gdb_test "print test2.key2" "\\$\[0-9\]* = 7" "derived template object, base long" 71 72# derived template object, base enum 73gdb_test "print test2.value" "\\$\[0-9\]* = oriental" "derived template object, base enum" 74 75# derived template object, enum 76gdb_test "print test2.value_derived" "\\$\[0-9\]* = roman" "derived template object, derived enum" 77 78# Three. 79 80# template object, derived template data member's base const bool 81gdb_test "print test3.data.test" "\\$\[0-9\]* = true" "template object, const bool" 82 83# template object, derived template data member's base const int 84gdb_test "print test3.data.key1" "\\$\[0-9\]* = 5" "template object, const int" 85 86# template object, derived template data member's base long 87gdb_test "print test3.data.key2" "\\$\[0-9\]* = 7" "template object, long" 88 89# template object, derived template data member's base enum 90gdb_test "print test3.data.value" "\\$\[0-9\]* = oriental" "template object, base enum" 91 92# template object, derived template data member's enum 93gdb_test "print test3.data.value_derived" "\\$\[0-9]\* = etruscan" "template object, derived enum" 94 95# Now some tests for shadowing (see PR gdb/804): 96 97gdb_breakpoint "C::marker" 98gdb_continue_to_breakpoint "continue to shadow breakpoint" 99 100gdb_test "print shadow" "\\$\[0-9]\* = 1" "shadowing member" 101gdb_test "print ::shadow" "\\$\[0-9]\* = 0" "shadowed global variable" 102 103gdb_exit 104return 0 105