# Copyright 1992-2000, 2007-2012 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/>.

# This file was written by Fred Fish. (fnf@cygnus.com)


# are we on a target board
if ![isnative] then {
    return
}

set testfile "coremaker"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
     untested corefile.exp
     return -1
}

# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
    return -1;
}

set corefile [core_find $binfile {coremmap.data}]
if {$corefile == ""} {
    return 0
}

# Test that we can simply startup with a "-core=$corefile" command line arg
# and recognize that the core file is a valid, usable core file.
# To do this, we must shutdown the currently running gdb and restart
# with the -core args.  We can't use gdb_start because it looks for
# the first gdb prompt, and the message we are looking for occurs
# before the first prompt.
#
# Another problem is that on some systems (solaris for example), there
# is apparently a limit on the length of a fully specified path to 
# the coremaker executable, at about 80 chars.  For this case, consider
# it a pass, but note that the program name is bad.

gdb_exit
if $verbose>1 then {
    send_user "Spawning $GDB $INTERNAL_GDBFLAGS $GDBFLAGS -core=$corefile\n"
}

set oldtimeout $timeout
set timeout [expr "$timeout + 60"]
verbose "Timeout is now $timeout seconds" 2
eval "spawn $GDB $INTERNAL_GDBFLAGS $GDBFLAGS -core=$corefile"
expect {
    -re "Couldn't find .* registers in core file.*$gdb_prompt $" {
        fail "args: -core=[file tail $corefile] (couldn't find regs)"
    }
    -re "Core was generated by .*coremaker.*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
	pass "args: -core=[file tail $corefile]"
    }
    -re "Core was generated by .*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
	pass "args: -core=[file tail $corefile] (with bad program name)"
    }
    -re ".*registers from core file: File in wrong format.* $" {
	fail "args: -core=[file tail $corefile] (could not read registers from core file)"
    }
    -re ".*$gdb_prompt $"	{ fail "args: -core=[file tail $corefile]" }
    timeout 		{ fail "(timeout) starting with -core" }
}


#
# Test that startup with both an executable file and -core argument.
# See previous comments above, they are still applicable.
#

close;

if $verbose>1 then {
    send_user "Spawning $GDB $INTERNAL_GDBFLAGS $GDBFLAGS $binfile -core=$corefile\n"
}


eval "spawn $GDB $INTERNAL_GDBFLAGS $GDBFLAGS $binfile -core=$corefile";
expect {
    -re "Core was generated by .*coremaker.*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
	pass "args: execfile -core=[file tail $corefile]"
    }
    -re "Core was generated by .*\r\n\#0  .*\(\).*\r\n$gdb_prompt $"	 {
	pass "args: execfile -core=[file tail $corefile] (with bad program name)"
    }
    -re ".*registers from core file: File in wrong format.* $" {
	fail "args: execfile -core=[file tail $corefile] (could not read registers from core file)"
    }
    -re ".*$gdb_prompt $"	{ fail "args: execfile -core=[file tail $corefile]" }
    timeout 		{ fail "(timeout) starting with -core" }
}
set timeout $oldtimeout
verbose "Timeout is now $timeout seconds" 2

close;

# Now restart normally.

gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}

# Test basic corefile recognition via core-file command.

gdb_test_multiple "core-file $corefile" "core-file command" {
    -re ".* program is being debugged already.*y or n. $" {
	# gdb_load may connect us to a gdbserver.
	send_gdb "y\n"
	exp_continue;
    }
    -re "Core was generated by .*coremaker.*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
	pass "core-file command"
    }
    -re "Core was generated by .*\r\n\#0  .*\(\).*\r\n$gdb_prompt $" {
	pass "core-file command (with bad program name)"
    }
    -re ".*registers from core file: File in wrong format.* $" {
	fail "core-file command (could not read registers from core file)"
    }
}

# Test correct mapping of corefile sections by printing some variables.

gdb_test "print coremaker_data" "\\\$$decimal = 202"
gdb_test "print coremaker_bss" "\\\$$decimal = 10"
gdb_test "print coremaker_ro" "\\\$$decimal = 201"

gdb_test "print func2::coremaker_local" "\\\$$decimal = \\{0, 1, 2, 3, 4\\}"

# Somehow we better test the ability to read the registers out of the core
# file correctly.  I don't think the other tests do this.

gdb_test "bt" "abort.*func2.*func1.*main.*" "backtrace in corefile.exp"
gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp"

# Test ability to read mmap'd data

gdb_test "x/8bd buf1" ".*:.*0.*1.*2.*3.*4.*5.*6.*7" "accessing original mmap data in core file"
setup_xfail "*-*-sunos*" "*-*-ultrix*" "*-*-aix*"
set test "accessing mmapped data in core file"
gdb_test_multiple "x/8bd buf2" "$test" {
    -re ".*:.*0.*1.*2.*3.*4.*5.*6.*7.*$gdb_prompt $" {
	pass "$test"
    }
    -re "0x\[f\]*:.*Cannot access memory at address 0x\[f\]*.*$gdb_prompt $" {
	fail "$test (mapping failed at runtime)"
    }
    -re "0x.*:.*Cannot access memory at address 0x.*$gdb_prompt $" {
	fail "$test (mapping address not found in core file)"
    }
}

# test reinit_frame_cache

gdb_load ${binfile}
gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(.*\\).*" "up in corefile.exp (reinit)"

gdb_test "core" "No core file now."


# Test a run (start) command will clear any loaded core file.

gdb_test "core-file $corefile" "Core was generated by .*" "run: load core again"
gdb_test "info files" "\r\nLocal core dump file:\r\n.*" "run: sanity check we see the core file"

set test "run: with core"
if [runto_main] {
    pass $test
} else {
    fail $test
}

set test "run: core file is cleared"
gdb_test_multiple "info files" $test {
    -re "\r\nLocal core dump file:\r\n.*\r\n$gdb_prompt $" {
	fail $test
    }
    -re "\r\n$gdb_prompt $" {
	pass $test
    }
}

set test "quit with a process"
gdb_test_multiple "quit" $test {
    -re "A debugging session is active.\r\n.*\r\nQuit anyway\\? \\(y or n\\) $" {
	pass $test
	gdb_test "n" {Not confirmed\.} "quit with processes: n"
    }
}

gdb_exit

# Verify there is no question if only a core file is loaded.

gdb_start
gdb_test "core-file $corefile" "Core was generated by .*" "no question: load core"

set test "quit with a core file"
gdb_test_multiple "quit" $test {
    -re "A debugging session is active.\r\n.*\r\nQuit anyway\\? \\(y or n\\) $" {
	fail $test
	gdb_test "n" {Not confirmed\.} "quit with processes: n"
    }
    eof {
	pass $test
    }
}

gdb_exit

# Test an attach command will clear any loaded core file.

if ![is_remote target] {
    set test "attach: spawn sleep"
    set res [remote_spawn host "$binfile sleep"];
    if { $res < 0 || $res == "" } {
	fail $test
	return
    }
    set pid [exp_pid -i $res]
    # We don't care whether the program is still in the startup phase when we
    # attach.

    gdb_start

    gdb_test "core-file $corefile" "Core was generated by .*" "attach: load core again"
    gdb_test "info files" "\r\nLocal core dump file:\r\n.*" "attach: sanity check we see the core file"

    gdb_test "attach $pid" "Attaching to process $pid\r\n.*" "attach: with core"

    set test "attach: core file is cleared"
    gdb_test_multiple "info files" $test {
	-re "\r\nLocal core dump file:\r\n.*\r\n$gdb_prompt $" {
	    fail $test
	}
	-re "\r\n$gdb_prompt $" {
	    pass $test
	}
    }

    gdb_exit
}
