-# Copyright 2002 Free Software Foundation, Inc.
+# Copyright 2002, 2003, 2004, 2007, 2008 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
+# 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu
set binfile ${objdir}/${subdir}/${testfile}
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
+ untested gcore.exp
+ return -1
}
# Start with a fresh gdb.
}
}
-if { ! [ runto main ] } then {
- gdb_suppress_entire_file "Run to main failed, so all tests in this file will automatically fail."
+if { ! [ runto_main ] } then {
+ untested gcore.exp
+ return -1
}
proc capture_command_output { command prefix } {
gdb_test "break terminal_func" "Breakpoint .* at .*${srcfile}, line .*" \
"set breakpoint at terminal_func"
-gdb_test "continue" "Breakpoint .*, terminal_func.*" \
+gdb_test "continue" "Breakpoint .* terminal_func.*" \
"continue to terminal_func"
set print_prefix ".\[0123456789\]* = "
set pre_corefile_extern_array \
[capture_command_output "print extern_array" "$print_prefix"]
-gdb_test "gcore ${objdir}/${subdir}/gcore.test" \
- "Saved corefile ${objdir}/${subdir}/gcore.test" \
- "save a corefile"
+set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore.test]
+
+set core_supported 0
+gdb_test_multiple "gcore ${objdir}/${subdir}/gcore.test" \
+ "save a corefile" \
+{
+ -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
+ pass "save a corefile"
+ global core_supported
+ set core_supported 1
+ }
+ -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
+ unsupported "save a corefile"
+ global core_supported
+ set core_supported 0
+ }
+}
+
+if {!$core_supported} {
+ return -1
+}
# Now restart gdb and load the corefile.
gdb_exit
set post_corefile_extern_array \
[capture_command_output "print extern_array" "$print_prefix"]
-pass "extern_array = $post_corefile_extern_array"
if ![string compare $pre_corefile_extern_array $post_corefile_extern_array] {
pass "corefile restored extern array"
} else {
set post_corefile_static_array \
[capture_command_output "print static_array" "$print_prefix"]
-pass "static_array = $post_corefile_static_array"
if ![string compare $pre_corefile_static_array $post_corefile_static_array] {
pass "corefile restored static array"
} else {
set post_corefile_uninit_array \
[capture_command_output "print un_initialized_array" "$print_prefix"]
-pass "uninit_array = $post_corefile_uninit_array"
if ![string compare $pre_corefile_uninit_array $post_corefile_uninit_array] {
pass "corefile restored un-initialized array"
} else {
set post_corefile_heap_string \
[capture_command_output "print heap_string" "$print_prefix"]
-pass "heap_string = $post_corefile_heap_string"
if ![string compare $pre_corefile_heap_string $post_corefile_heap_string] {
pass "corefile restored heap array"
} else {
set post_corefile_local_array \
[capture_command_output "print array_func::local_array" "$print_prefix"]
-pass "local_array = $post_corefile_local_array"
if ![string compare $pre_corefile_local_array $post_corefile_local_array] {
pass "corefile restored stack array"
} else {