1 1.11 christos # Copyright 1998-2024 Free Software Foundation, Inc. 2 1.1 christos 3 1.1 christos # This program is free software; you can redistribute it and/or modify 4 1.1 christos # it under the terms of the GNU General Public License as published by 5 1.1 christos # the Free Software Foundation; either version 3 of the License, or 6 1.1 christos # (at your option) any later version. 7 1.1 christos # 8 1.1 christos # This program is distributed in the hope that it will be useful, 9 1.1 christos # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 1.1 christos # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 1.1 christos # GNU General Public License for more details. 12 1.1 christos # 13 1.1 christos # You should have received a copy of the GNU General Public License 14 1.1 christos # along with this program. If not, see <http://www.gnu.org/licenses/>. 15 1.1 christos 16 1.1 christos # This file is part of the gdb testsuite 17 1.1 christos # file written by Elena Zannoni (ezannoni (at) cygnus.com) 18 1.1 christos # rewritten by Michael Chastain (mec.gnu (at) mindspring.com) 19 1.1 christos # 20 1.1 christos # source files cttiadd.cc, cttiadd1.cc, cttiadd2.cc, cttiadd3.cc 21 1.1 christos 22 1.1 christos # Call to template instantiations. 23 1.1 christos 24 1.11 christos require allow_cplus_tests 25 1.1 christos 26 1.1 christos standard_testfile cttiadd.cc cttiadd1.cc cttiadd2.cc cttiadd3.cc 27 1.1 christos 28 1.7 christos if {[prepare_for_testing "failed to prepare" $testfile \ 29 1.1 christos [list $srcfile $srcfile2 $srcfile3 $srcfile4] {debug c++}]} { 30 1.1 christos return -1 31 1.1 christos } 32 1.1 christos 33 1.10 christos if {![runto_main]} { 34 1.10 christos return 35 1.1 christos } 36 1.1 christos 37 1.1 christos gdb_breakpoint [gdb_get_line_number "marker add1"] 38 1.1 christos gdb_continue_to_breakpoint "marker add1" 39 1.1 christos 40 1.1 christos gdb_test "print c" "\\$\[0-9\]+ = 194 .*" 41 1.1 christos gdb_test "print f" "\\$\[0-9\]+ = 9" 42 1.1 christos gdb_test "print i" "\\$\[0-9\]+ = 4" 43 1.1 christos 44 1.1 christos gdb_test_multiple "print add<int>(2,2)" "print add<int>(2,2)" { 45 1.1 christos -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" { 46 1.1 christos pass "print add<int>(2,2)" 47 1.1 christos } 48 1.1 christos -re "No symbol \"add<int>\" in current context.\r\n$gdb_prompt $" { 49 1.1 christos fail "print add<int>(2,2)" 50 1.1 christos } 51 1.1 christos } 52 1.1 christos 53 1.1 christos # Note: 2.25 and 4.5 are exactly representable in IEEE-ish formats 54 1.1 christos gdb_test_multiple "print add<float>(2.25,2.25)" "print add<float>(2.25,2.25)" { 55 1.1 christos -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" { 56 1.1 christos pass "print add<float>(2.25,2.25)" 57 1.1 christos } 58 1.1 christos -re "No symbol \"add<float>\" in current context.\r\n$gdb_prompt $" { 59 1.1 christos fail "print add<float>(2.25,2.25)" 60 1.1 christos } 61 1.1 christos } 62 1.1 christos 63 1.1 christos gdb_test_multiple "print add<unsigned char>('A','A')" "print add<unsigned char>('A','A')" { 64 1.1 christos -re "\\$\[0-9\]+ = 130 .*\r\n$gdb_prompt $" { 65 1.1 christos pass "print add<unsigned char>('A','A')" 66 1.1 christos } 67 1.1 christos -re "No symbol \"add<unsigned char>\" in current context.\r\n$gdb_prompt $" { 68 1.1 christos fail "print add<unsigned char>('A','A')" 69 1.1 christos } 70 1.1 christos } 71 1.1 christos 72 1.1 christos gdb_test_multiple "print add2<int>(2,2)" "print add2<int>(2,2)" { 73 1.1 christos -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" { 74 1.1 christos pass "print add2<int>(2,2)" 75 1.1 christos } 76 1.1 christos -re "No symbol \"add2<int>\" in current context.\r\n$gdb_prompt $" { 77 1.1 christos fail "print add2<int>(2,2)" 78 1.1 christos } 79 1.1 christos } 80 1.1 christos 81 1.1 christos gdb_test_multiple "print add2<float>(2.25,2.25)" "print add2<float>(2.25,2.25)" { 82 1.1 christos -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" { 83 1.1 christos pass "print add2<float>(2.25,2.25)" 84 1.1 christos } 85 1.1 christos -re "No symbol \"add2<float>\" in current context.\r\n$gdb_prompt $" { 86 1.1 christos fail "print add2<float>(2.25,2.25)" 87 1.1 christos } 88 1.1 christos } 89 1.1 christos 90 1.1 christos gdb_test_multiple "print add2<unsigned char>('A','A')" "print add2<unsigned char>('A','A')" { 91 1.1 christos -re "\\$\[0-9]+ = 130 .*$gdb_prompt $" { 92 1.1 christos pass "print add2<unsigned char>('A','A')" 93 1.1 christos } 94 1.1 christos -re "No symbol \"add2<unsigned char>\" in current context.\r\n$gdb_prompt $" { 95 1.1 christos fail "print add2<unsigned char>('A','A')" 96 1.1 christos } 97 1.1 christos } 98 1.1 christos 99 1.1 christos gdb_test_multiple "print add3<int>(2,2)" "print add3<int>(2,2)" { 100 1.1 christos -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" { 101 1.1 christos pass "print add3<int>(2,2)" 102 1.1 christos } 103 1.1 christos -re "No symbol \"add3<int>\" in current context.\r\n$gdb_prompt $" { 104 1.1 christos fail "print add3<int>(2,2)" 105 1.1 christos } 106 1.1 christos } 107 1.1 christos 108 1.1 christos gdb_test_multiple "print add3<float>(2.25,2.25)" "print add3<float>(2.25,2.25)" { 109 1.1 christos -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" { 110 1.1 christos pass "print add3<float>(2.25,2.25)" 111 1.1 christos } 112 1.1 christos -re "No symbol \"add3<float>\" in current context.\r\n$gdb_prompt $" { 113 1.1 christos fail "print add3<float>(2.25,2.25)" 114 1.1 christos } 115 1.1 christos } 116 1.1 christos 117 1.1 christos gdb_test_multiple "print add3<unsigned char>('A','A')" "print add3<unsigned char>('A','A')" { 118 1.1 christos -re "\\$\[0-9]+ = 130 .*$gdb_prompt $" { 119 1.1 christos pass "print add3<unsigned char>('A','A')" 120 1.1 christos } 121 1.1 christos -re "No symbol \"add3<unsigned char>\" in current context.\r\n$gdb_prompt $" { 122 1.1 christos fail "print add3<unsigned char>('A','A')" 123 1.1 christos } 124 1.1 christos } 125 1.1 christos 126 1.1 christos gdb_test_multiple "print add4<int>(2,2)" "print add4<int>(2,2)" { 127 1.1 christos -re "\\$\[0-9\]+ = 4\r\n$gdb_prompt $" { 128 1.1 christos pass "print add4<int>(2,2)" 129 1.1 christos } 130 1.1 christos -re "No symbol \"add4<int>\" in current context.\r\n$gdb_prompt $" { 131 1.1 christos fail "print add4<int>(2,2)" 132 1.1 christos } 133 1.1 christos } 134 1.1 christos 135 1.1 christos gdb_test_multiple "print add4<float>(2.25,2.25)" "print add4<float>(2.25,2.25)" { 136 1.1 christos -re "\\$\[0-9\]+ = 4\\.5\r\n$gdb_prompt $" { 137 1.1 christos pass "print add4<float>(2.25,2.25)" 138 1.1 christos } 139 1.1 christos -re "No symbol \"add4<float>\" in current context.\r\n$gdb_prompt $" { 140 1.1 christos fail "print add4<float>(2.25,2.25)" 141 1.1 christos } 142 1.1 christos } 143 1.1 christos 144 1.1 christos gdb_test_multiple "print add4<unsigned char>('A','A')" "print add4<unsigned char>('A','A')" { 145 1.1 christos -re "\\$\[0-9]+ = 130 .*$gdb_prompt $" { 146 1.1 christos pass "print add4<unsigned char>('A','A')" 147 1.1 christos } 148 1.1 christos -re "No symbol \"add4<unsigned char>\" in current context.\r\n$gdb_prompt $" { 149 1.1 christos fail "print add4<unsigned char>('A','A')" 150 1.1 christos } 151 1.1 christos } 152