# Copyright 1992-2013 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
}
