* gdb.base/dump.exp: Force the correct endianness for binary
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / dump.exp
index f8d96616aaa891ae707fe5857063e65e9b24657f..90a363253f1e0cd25aa1593bfa5d516ac2a799ae 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2002, 2004 Free Software Foundation, Inc.
+# Copyright 2002, 2004, 2007 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
@@ -34,6 +34,7 @@ set binfile  ${objdir}/${subdir}/${testfile}
 set options  {debug}
 
 set is64bitonly "no"
+set endian "auto"
 
 if [istarget "alpha*-*-*"] then {
     # SREC etc cannot handle 64-bit addresses.  Force the test
@@ -46,7 +47,8 @@ if {[istarget "ia64*-*-*"] || [istarget "hppa64-*-*"]} then {
 }
 
 if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ${options}] != "" } {
-     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+     untested dump.exp
+     return -1
 }
 
 # Start with a fresh gdb.
@@ -65,7 +67,21 @@ remote_exec build "rm -f intarr1.bin intarr1b.bin intarr1.ihex intarr1.srec inta
 # Run target program until data structs are initialized.
 
 if { ! [ runto checkpoint1 ] } then {
-    gdb_suppress_entire_file "Program failed to run, so all tests in this file will automatically fail."
+    untested dump.exp
+    return -1
+}
+
+# Get the endianness for the later use with endianless formats.
+
+send_gdb "show endian\n"
+gdb_expect {
+    -re ".* (big|little) endian.*$gdb_prompt $" { 
+       set endian $expect_out(1,string) 
+       pass "endianness: $endian"
+    }
+    default {
+       fail "(timeout) getting target endianness"
+    }
 }
 
 # Now generate some dump files.
@@ -188,6 +204,18 @@ gdb_exit
 gdb_start
 gdb_file_cmd ${binfile}
 
+# Now fix the endianness at the correct state.
+
+send_gdb "set endian $endian\n"
+gdb_expect {
+    -re ".* (big|little) endian.*$gdb_prompt $" { 
+       pass "setting $endian endianness"
+    }
+    default {
+       fail "(timeout) setting $endian endianness"
+    }
+}
+
 # Reload saved values one by one, and compare.
 
 if { ![string compare $array_val \
@@ -276,7 +304,8 @@ gdb_load ${binfile}
 
 # Run to main.
 if { ! [ runto_main ] } then {
-    gdb_suppress_entire_file "Program failed to run, so remaining tests in this file will automatically fail."
+    untested dump.exp
+    return -1
 }
 
 if { ![string compare $array_val \
This page took 0.024429 seconds and 4 git commands to generate.