1# Copyright 2004-2020 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# Please email any bugs, comments, and/or additions to this file to: 17# bug-gdb@gnu.org 18 19# This file is part of the gdb testsuite. 20 21 22if { ![istarget s390-*-*] && ![istarget s390x-*-* ] } { 23 verbose "Skipping s390 TDB register tests." 24 return 25} 26 27standard_testfile .c 28 29# The test case assumes that no FP- or vector instructions occur within 30# the transaction. Thus tell the compiler to use soft float, so it 31# doesn't emit them. Some GCC versions may otherwise do so, and an 32# endless loop would result. 33if { [prepare_for_testing "failed to prepare" $testfile $srcfile \ 34 [list "debug" "additional_flags=-msoft-float"]] } { 35 return -1 36} 37 38if ![runto_main] then { 39 fail "can't run to main" 40 return 0 41} 42 43gdb_test_multiple "next" "check for TE support" { 44 -re "Program received signal SIGILL,.*\r\n$gdb_prompt $" { 45 unsupported "no TE support." 46 return 47 } 48 -re "\[0-9\]+.*\r\n$gdb_prompt $" { 49 pass "TE support available" 50 } 51 -re "$gdb_prompt $" { 52 unsupported "no TE support (unknown error)." 53 return 54 } 55} 56 57set crashline [gdb_get_line_number "FAULT"] 58 59gdb_test "print \$tdb0" "\\\$\[0-9\]+ = <unavailable>" "tdb0 unavailable" 60gdb_test "print \$tr0" "\\\$\[0-9\]+ = <unavailable>" "tr0 unavailable" 61gdb_test "next" \ 62 "Program received signal SIGSEGV, .*" \ 63 "crash in transaction" 64gdb_test "print/x \$tdb0" "\\\$\[0-9\]+ = 0x1.*" "tdb0 available" 65gdb_test "set print symbol-filename" "" "set print symbol-filename" 66gdb_test "print/a \$atia" \ 67 "<crash_in_transaction.*:$crashline>" \ 68 "ATIA points to crash" 69