diff options
Diffstat (limited to 'gdb/testsuite/gdb.cell/ea-test.exp')
-rw-r--r-- | gdb/testsuite/gdb.cell/ea-test.exp | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.cell/ea-test.exp b/gdb/testsuite/gdb.cell/ea-test.exp new file mode 100644 index 0000000..a94b688 --- /dev/null +++ b/gdb/testsuite/gdb.cell/ea-test.exp @@ -0,0 +1,124 @@ +# Copyright 2009 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# Contributed by Markus Deuling <deuling@de.ibm.com>. +# +# Testsuite for Cell Broadband Engine combined debugger +# Testcase for __ea pointer + +load_lib cell.exp + +set testfile "ea-test" +set source ${srcdir}/${subdir}/${testfile}.c +set binary ${objdir}/${subdir}/${testfile} + +if {[skip_cell_tests]} { + return 0 +} + +# Compile SPU binary. +if { [gdb_compile_cell_spu $source $binary executable {debug}] != "" } { + unsupported "Compile spu binary failed, so all tests in this file will automatically fail." + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binary} + +if ![runto_main] then { + fail "Can't run to main" + return 0 +} + +# p +gdb_test "p ppe_pointer" \ + "(int.*@__ea).*0x0.*" \ + "p ppe_pointer" + +gdb_test "p normal_pointer" \ + "(int.*).*0x0.*" \ + "p normal_pointer" + +gdb_test "p local_ppe_pointer" \ + "(int.*@__ea).*0x0.*" \ + "p local_ppe_pointer" + +gdb_test "p local_normal_pointer" \ + "(int.*).*0x0.*" \ + "p local_normal_pointer" + +# ptype +gdb_test "ptype ppe_pointer" \ + "type = int.*@__ea" \ + "ptype ppe_pointer" + +gdb_test "ptype normal_pointer" \ + "type = int.*" \ + "ptype normal_pointer" + +gdb_test "ptype local_ppe_pointer" \ + "type = int.*@__ea" \ + "ptype local_ppe_pointer" + +gdb_test "ptype local_normal_pointer" \ + "type = int.*" \ + "ptype local_normal_pointer" + +# info locals +gdb_test "info locals" \ + ".*local_ppe_pointer =.*0x0.*local_normal_pointer =.*0x0.*" \ + "info locals" + +# p & +gdb_test "p &ppe_pointer" \ + ".*=.*(int.*@__ea.*).*0x.*" \ + "p &ppe_pointer" + +gdb_test "p &normal_pointer" \ + ".*=.*(int.*).*0x.*" \ + "p &normal_pointer" + +gdb_test "p &local_ppe_pointer" \ + ".*=.*(int.*@__ea.*).*0x.*" \ + "p &local_ppe_pointer" + +gdb_test "p &local_normal_pointer" \ + ".*=.*(int.*).*0x.*" \ + "p &local_normal_pointer" + +# ptype * +gdb_test "ptype *ppe_pointer" \ + "type = int" \ + "ptype *ppe_pointer" + +gdb_test "ptype *normal_pointer" \ + "type = int" \ + "ptype *normal_pointer" + +gdb_test "ptype *local_ppe_pointer" \ + "type = int" \ + "ptype *local_ppe_pointer" + +gdb_test "ptype *local_normal_pointer" \ + "type = int" \ + "ptype *local_normal_pointer" + +gdb_exit + +return 0 + + |