Home | History | Annotate | Line # | Download | only in gdb.cp
ctti.exp revision 1.1.1.3
      1 # Copyright 1998-2016 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 # This file is part of the gdb testsuite
     17 # file written by Elena Zannoni (ezannoni (at) cygnus.com)
     18 # rewritten by Michael Chastain (mec.gnu (at) mindspring.com)
     19 #
     20 # source files cttiadd.cc, cttiadd1.cc, cttiadd2.cc, cttiadd3.cc
     21 
     22 # Call to template instantiations.
     23 
     24 if { [skip_cplus_tests] } { continue }
     25 
     26 standard_testfile cttiadd.cc cttiadd1.cc cttiadd2.cc cttiadd3.cc
     27 
     28 if [get_compiler_info "c++"] {
     29     return -1
     30 }
     31 
     32 if {[prepare_for_testing $testfile.exp $testfile \
     33 	 [list $srcfile $srcfile2 $srcfile3 $srcfile4] {debug c++}]} {
     34     return -1
     35 }
     36 
     37 if ![runto_main] then {
     38     perror "couldn't run to breakpoint"
     39     continue
     40 }
     41 
     42 gdb_breakpoint [gdb_get_line_number "marker add1"]
     43 gdb_continue_to_breakpoint "marker add1"
     44 
     45 gdb_test "print c" "\\$\[0-9\]+ = 194 .*"
     46 gdb_test "print f" "\\$\[0-9\]+ = 9"
     47 gdb_test "print i" "\\$\[0-9\]+ = 4"
     48 
     49 # TODO: this needs more work before actually deploying it.
     50 # So bail out here.
     51 
     52 if { [ test_compiler_info gcc-*] } then { continue }
     53 
     54 gdb_test_multiple "print add<int>(2,2)" "print add<int>(2,2)" {
     55     -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" {
     56 	pass "print add<int>(2,2)"
     57     }
     58     -re "No symbol \"add<int>\" in current context.\r\n$gdb_prompt $" {
     59 	# TODO: kfail or xfail this
     60 	fail "print add<int>(2,2)"
     61     }
     62 }
     63 
     64 # Note: 2.25 and 4.5 are exactly representable in IEEE-ish formats
     65 gdb_test_multiple "print add<float>(2.25,2.25)" "print add<float>(2.25,2.25)" {
     66     -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" {
     67 	pass "print add<float>(2.25,2.25)"
     68     }
     69     -re "No symbol \"add<float>\" in current context.\r\n$gdb_prompt $" {
     70 	# TODO: kfail or xfail this
     71 	fail "print add<float>(2.25,2.25)"
     72     }
     73 }
     74 
     75 gdb_test_multiple "print add<unsigned char>('A','A')" "print add<unsigned char>('A','A')" {
     76     -re "\\$\[0-9\]+ = 130 .*\r\n$gdb_prompt $" {
     77 	pass "print add<unsigned char>('A','A')"
     78     }
     79     -re "No symbol \"add<unsigned char>\" in current context.\r\n$gdb_prompt $" {
     80 	# TODO: kfail or xfail this
     81 	fail "print add<unsigned char>('A','A')"
     82     }
     83 }
     84 
     85 gdb_test_multiple "print add2<int>(2,2)" "print add2<int>(2,2)" {
     86     -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" {
     87 	pass "print add2<int>(2,2)"
     88     }
     89     -re "No symbol \"add2<int>\" in current context.\r\n$gdb_prompt $" {
     90 	# TODO: kfail or xfail this
     91 	fail "print add2<int>(2,2)"
     92     }
     93 }
     94 
     95 gdb_test_multiple "print add2<float>(2.25,2.25)" "print add2<float>(2.25,2.25)" {
     96     -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" {
     97 	pass "print add2<float>(2.25,2.25)"
     98     }
     99     -re "No symbol \"add2<float>\" in current context.\r\n$gdb_prompt $" {
    100 	# TODO: kfail or xfail this
    101 	fail "print add2<float>(2.25,2.25)"
    102     }
    103 }
    104 
    105 gdb_test_multiple "print add2<unsigned char>('A','A')" "print add2<unsigned char>('A','A')" {
    106     -re "\\$\[0-9]+ = 130 .*$gdb_prompt $" {
    107 	pass "print add2<unsigned char>('A','A')"
    108     }
    109     -re "No symbol \"add2<unsigned char>\" in current context.\r\n$gdb_prompt $" {
    110 	# TODO: kfail or xfail this
    111 	fail "print add2<unsigned char>('A','A')"
    112     }
    113 }
    114 
    115 gdb_test_multiple "print add3<int>(2,2)" "print add3<int>(2,2)" {
    116     -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" {
    117 	pass "print add3<int>(2,2)"
    118     }
    119     -re "No symbol \"add3<int>\" in current context.\r\n$gdb_prompt $" {
    120 	# TODO: kfail or xfail this
    121 	fail "print add3<int>(2,2)"
    122     }
    123 }
    124 
    125 gdb_test_multiple "print add3<float>(2.25,2.25)" "print add3<float>(2.25,2.25)" {
    126     -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" {
    127 	pass "print add3<float>(2.25,2.25)"
    128     }
    129     -re "No symbol \"add3<float>\" in current context.\r\n$gdb_prompt $" {
    130 	# TODO: kfail or xfail this
    131 	fail "print add3<float>(2.25,2.25)"
    132     }
    133 }
    134 
    135 gdb_test_multiple "print add3<unsigned char>('A','A')" "print add3<unsigned char>('A','A')" {
    136     -re "\\$\[0-9]+ = 130 .*$gdb_prompt $" {
    137 	pass "print add3<unsigned char>('A','A')"
    138     }
    139     -re "No symbol \"add3<unsigned char>\" in current context.\r\n$gdb_prompt $" {
    140 	# TODO: kfail or xfail this
    141 	fail "print add3<unsigned char>('A','A')"
    142     }
    143 }
    144 
    145 gdb_test_multiple "print add4<int>(2,2)" "print add4<int>(2,2)" {
    146     -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" {
    147 	pass "print add4<int>(2,2)"
    148     }
    149     -re "No symbol \"add4<int>\" in current context.\r\n$gdb_prompt $" {
    150 	# TODO: kfail or xfail this
    151 	fail "print add4<int>(2,2)"
    152     }
    153 }
    154 
    155 gdb_test_multiple "print add4<float>(2.25,2.25)" "print add4<float>(2.25,2.25)" {
    156     -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" {
    157 	pass "print add4<float>(2.25,2.25)"
    158     }
    159     -re "No symbol \"add4<float>\" in current context.\r\n$gdb_prompt $" {
    160 	# TODO: kfail or xfail this
    161 	fail "print add4<float>(2.25,2.25)"
    162     }
    163 }
    164 
    165 gdb_test_multiple "print add4<unsigned char>('A','A')" "print add4<unsigned char>('A','A')" {
    166     -re "\\$\[0-9]+ = 130 .*$gdb_prompt $" {
    167 	pass "print add4<unsigned char>('A','A')"
    168     }
    169     -re "No symbol \"add4<unsigned char>\" in current context.\r\n$gdb_prompt $" {
    170 	# TODO: kfail or xfail this
    171 	fail "print add4<unsigned char>('A','A')"
    172     }
    173 }
    174