summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/crossload.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.base/crossload.exp')
-rw-r--r--gdb/testsuite/gdb.base/crossload.exp380
1 files changed, 0 insertions, 380 deletions
diff --git a/gdb/testsuite/gdb.base/crossload.exp b/gdb/testsuite/gdb.base/crossload.exp
deleted file mode 100644
index 26bb7a1b0b2..00000000000
--- a/gdb/testsuite/gdb.base/crossload.exp
+++ /dev/null
@@ -1,380 +0,0 @@
-# Copyright (C) 1992, 1997 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 2 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# This file was written by Fred Fish. (fnf@cygnus.com)
-# Rob Savoye changed it to use gdb_test (rob@cygnus.com)
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-set prms_id 0
-set bug_id 0
-
-# FIXME: The configure.in for this test should look for --with-targets
-# and deal accordingly. Until that has been done, skip the whole thing.
-# With a minimal bfd (the default), few if any of these tests work.
-
-verbose "FIXME: all the crossload tests ignored"
-return
-
-foreach i "m68k-elf m68k-aout m68k-aout2 mips-ecoff i486-elf sparc-aout i860-elf sparc-elf" {
- remote_exec build "cd ${objdir}/${subdir} ; uudecode ${srcdir}/${subdir}/$i.u "
-}
-
-# FIXME: These tests don't work for the i960, because
-# bfd/config/i960-bout.mt sets SELECT_VECS. I could use setup_xfail
-# for each test, but rebooting the board between each one takes a long
-# time so I'm just punting the whole file.
-if [istarget "i960-*-*"] then {
- if $verbose>1 then {
- warning "FIXME: crossload test case doesn't run on the i960."
- }
- continue
-}
-
-# FIXME: These tests don't work for the a29k, because SELECT_VECS is
-# used when compiling bfd. It would be nice if there were some better
-# way of detecting this case.
-if [istarget "a29k-*-*"] then {
- if $verbose>1 then {
- warning "FIXME: crossload test case doesn't run on the a29k."
- }
- continue
-}
-
-# Test if gdb can automatically determine the bfd format of an
-# executable and read it's symbols.
-
-proc bfddefault {} {
- global GDB
- global GDBFLAGS
- global gdb_prompt
- global objdir
- global subdir
- global binfile
- global bfdformat
- global file_loaded
-
- gdb_unload
- set file_loaded 0
- send_gdb "file $objdir/$subdir/$binfile\n"
- gdb_expect {
- -re "A program is being debugged already. Kill it.*y or n." {
- send_gdb "y\n"
- exp_continue
- }
- -re "Reading symbols from $objdir/$subdir/$binfile\[.\]+done\..*$gdb_prompt $" {
- pass "$binfile ($bfdformat) auto format"
- }
- -re "Reading symbols from $objdir/$subdir/$binfile\[.\]+.no debugging symbols found.\[.\]+done\..*$gdb_prompt $" {
- pass "$binfile ($bfdformat) auto format (but no symbols found)"
- }
- -re "File format not recognized.*$gdb_prompt $" {
- fail "$binfile ($bfdformat) auto format (format not recognized)"
- return
- }
- -re "File format is ambiguous.*$gdb_prompt $" {
- fail "$binfile ($bfdformat) auto format (format is ambiguous)"
- return
- }
- -re "$gdb_prompt $" {
- fail "$binfile ($bfdformat) auto format"
- return
- }
- timeout {
- fail "(timeout) $binfile ($bfdformat) auto format"
- return
- }
- }
-
- if [gdb_test "info target" ".*file type $bfdformat" ""]==0 then {
- set file_loaded 1
- } else {
- fail "$binfile ($bfdformat) wrong format found"
- }
-}
-
-# Test if gdb can read symbols from an executable when the bfd format
-# is explicitly set via the environment variable GNUTARGET.
-
-proc bfdexplicit {} {
- global GDB
- global GDBFLAGS
- global gdb_prompt
- global subdir
- global objdir
- global det_file
- global binfile
- global bfdformat
- global file_loaded
-
- gdb_unload
- set file_loaded 0
-
- # Once GDB 4.10 (the last to lack `set gnutarget') is forgotten,
- # change this to use set gnutarget.
- if [gdb_test "set env GNUTARGET=$bfdformat" "" ""]!=0 then {
- fail "setting GNUTARGET=$bfdformat in environment"
- return
- }
-
- send_gdb "file $objdir/$subdir/$binfile\n"
- gdb_expect {
- -re "A program is being debugged already. Kill it.*y or n." {
- send_gdb "y\n"
- exp_continue
- }
- -re "Reading symbols from $objdir/$subdir/$binfile\[.\]+done\..*$gdb_prompt $" {
- pass "$binfile ($bfdformat) explicit format"
- }
- -re "Invalid target.*$gdb_prompt $" {
- fail "$binfile ($bfdformat) explicit format (invalid target)"
- return
- }
- -re "$gdb_prompt $" {
- fail "$binfile ($bfdformat) explicit format"
- return
- }
- timeout {
- fail "(timeout) $binfile ($bfdformat) explicit format"
- return
- }
- }
-
- set file_loaded 1
-}
-
-proc test_ptype_functions {} {
- global gdb_prompt
- global binfile
- global bfdformat
- global det_file
- send_gdb "ptype main\n"
- gdb_expect {
- -re "type = int \[)(\]+\r\n$gdb_prompt $" {}
- timeout { fail "(timeout) $binfile ($bfdformat) function main" ; return }
- }
-
- # set up a list of lists of command and patterns
- set command [list { "ptype v_char_func" "type =(\ unsigned\ |\ signed\ |\ )char \[)(\]+" }\
- { "ptype v_short_func" "type = (short|short int) \[)(\]+" } \
- { "ptype v_int_func" "type = int \[)(\]+" } \
- { "ptype v_long_func" "type = (long|long int|int) \[)(\]+" } \
- { "ptype v_float_func" "type = float \[)(\]+" } \
- { "ptype v_double_func" "type = double \[)(\]+" } ]
-
- foreach i $command {
- if [gdb_test [lindex $i 0] [lindex $i 1] ""] then {
- fail "$binfile ($bfdformat) \"[lindex $i 0]\" function types"
- return
- }
- }
- pass "$binfile ($bfdformat) ptype function types"
-}
-
-# Note that plain chars can be either signed or unsigned.
-
-proc test_ptype_plain_types {} {
- global gdb_prompt
- global binfile
- global bfdformat
-
- # set up a list of lists of command and patterns
- set command [list { "ptype v_char" "type =(\ unsigned\ |\ signed\ |\ )char" }\
- { "ptype v_short" "type = short" } \
- { "ptype v_int" "type = int" } \
- { "ptype v_long" "type = long" } \
- { "ptype v_float" "type = float" } \
- { "ptype v_double" "type = double" } ]
-
- foreach i $command {
- if [gdb_test [lindex $i 0] [lindex $i 1] ""] then {
- fail "$binfile ($bfdformat) \"[lindex $i 0]\" plain C types"
- return
- }
- }
- pass "$binfile ($bfdformat) ptype plain C types"
-}
-
-# Note that if compiled with pre-ANSI compilers, the "signed" keywords are
-# defined away and the variables default to plain types. So accept either.
-
-proc test_ptype_signed_types {} {
- global gdb_prompt
- global binfile
- global bfdformat
- global det_file
-
- # set up a list of lists of command and patterns
- set command [list { "ptype v_signed_char" "type =(\ signed\ |\ )char" }\
- { "ptype v_signed_short" "type =(\ signed\ |\ )short" } \
- { "ptype v_signed_int" "type =(\ signed\ |\ )int" } \
- { "ptype v_signed_long" "type =(\ signed\ |\ )long" } ]
-
- foreach i $command {
- if [gdb_test [lindex $i 0] [lindex $i 1] ""] then {
- if [expr [string match "ecoff-bigmips" $bfdformat]+[string match "ptype v_signed_char" [lindex $i 0]]]==2 then {
- setup_xfail "*-*-*"
- }
- fail "$binfile ($bfdformat) \"[lindex $i 0]\" signed C types"
- return
- }
- }
- pass "$binfile ($bfdformat) ptype signed C types"
-}
-
-proc test_ptype_unsigned_types {} {
- global gdb_prompt
- global binfile
- global bfdformat
- global det_file
-
- # set up a list of lists of command and patterns
- set command [list { "ptype v_unsigned_char" "type = unsigned char" }\
- { "ptype v_unsigned_short" \
- "type = (unsigned short|short unsigned int)" } \
- { "ptype v_unsigned_int" "type = unsigned int" } \
- { "ptype v_unsigned_long" \
- "type = (unsigned long|long unsigned int)" } ]
-
- foreach i $command {
- if [gdb_test [lindex $i 0] [lindex $i 1] ""] then {
- fail "$binfile ($bfdformat) \"[lindex $i 0]\" unsigned C types"
- return
- }
- }
- pass "$binfile ($bfdformat) ptype unsigned C types"
-}
-
-# Note that plain chars can be either signed or unsigned.
-
-proc test_ptype_array_types {} {
- global gdb_prompt
- global binfile
- global bfdformat
- global det_file
-
- # set up a list of lists of command and patterns
- set command [list { "ptype v_char_array" "type =(\ unsigned\ |\ signed\ |\ )char \\\[2\\\]" }\
- { "ptype v_short_array" \
- "type = (short|short int) \\\[2\\\]" } \
- { "ptype v_int_array" "type = int \\\[2\\\]" } \
- { "ptype v_long_array" "type = (long|long int) \\\[2\\\]" } \
- { "ptype v_float_array" "type = float \\\[2\\\]" } \
- { "ptype v_double_array" "type = double \\\[2\\\]" } ]
-
- foreach i $command {
- if [gdb_test [lindex $i 0] [lindex $i 1] ""] then {
- fail "$binfile ($bfdformat) \"[lindex $i 0]\" C array types"
- return
- }
- }
- pass "$binfile ($bfdformat) ptype C array types"
-}
-
-proc test_ptype_pointer_types {} {
- global gdb_prompt
- global binfile
- global bfdformat
- global det_file
-
- # set up a list of lists of command and patterns
- set command [list { "ptype v_char_pointer" "type =(\ unsigned\ |\ signed\ |\ )char \*" }\
- { "ptype v_short_pointer" "type = (short|short int) \*" } \
- { "ptype v_int_pointer" "type = int \*" } \
- { "ptype v_long_pointer" "type = (long|long int) \*" } \
- { "ptype v_float_pointer" "type = float \*" } \
- { "ptype v_double_pointer" "type = double \*" } ]
-
- foreach i $command {
- if [gdb_test [lindex $i 0] [lindex $i 1] ""] then {
- fail "$binfile ($bfdformat) \"[lindex $i 0]\" C pointer types"
- return
- }
- }
- pass "$binfile ($bfdformat) ptype C pointer types"
-}
-
-proc loadandtest { args } {
- global verbose
- global GDB
- global GDBFLAGS
- global gdb_prompt
- global subdir
- global objdir
- global binfile
- global bfdformat
- global file_loaded
-
- set binfile [ lindex $args 0 ]
- set bfdformat [ lindex $args 1 ]
- set fixme [ lindex $args 2 ]
-
- if ![file exists $objdir/$subdir/$binfile] then {
- perror "$objdir/$subdir/$binfile does not exist"
- return 0
- }
- gdb_exit
- gdb_start
- if $fixme then { setup_xfail "*-*-*" }
- bfddefault
- if $fixme then { setup_xfail "*-*-*" }
- if [string match $bfdformat "elf-big"] then {
- if [string match $binfile "i860-elf"] then {
- setup_xfail "*-*-*"
- }
- }
- bfdexplicit
- if $file_loaded==1 then {
- test_ptype_functions
- if $fixme then { setup_xfail "*-*-*" }
- test_ptype_plain_types
- if $fixme then { setup_xfail "*-*-*" }
- test_ptype_signed_types
- if $fixme then { setup_xfail "*-*-*" }
- test_ptype_unsigned_types
- if $fixme then { setup_xfail "*-*-*" }
- test_ptype_array_types
- if $fixme then { setup_xfail "*-*-*" }
- test_ptype_pointer_types
- }
-}
-
-# Run tests for each of the test executables.
-# If the third argument is 1, the tests will be expected to fail.
-# We should extract the information about available tests and bfd formats
-# from the makefile or some other control file (FIXME).
-
-loadandtest m68k-elf "elf32-m68k" 0
-
-# I'm getting an XPASS for explicit format on this one
-loadandtest m68k-aout "a.out-newsos3" 1
-
-loadandtest m68k-aout2 "a.out-sunos-big" 0
-loadandtest mips-ecoff "ecoff-bigmips" 0
-loadandtest i486-elf "elf32-i386" 0
-loadandtest sparc-aout "a.out-sunos-big" 0
-loadandtest sparc-elf "elf32-sparc" 0
-
-#FIXME: i860 support is unlikely to be working in the near future
-# so suppress this test until it is working. -fnf
-#loadandtest i860-elf "elf32-i860" 0
-
-gdb_test "set gnutarget auto" ""