e22f8b7c8c
Switch the license of all .f and .f90 files to GPLv3. Switch the license of all .s and .S files to GPLv3.
84 lines
2.4 KiB
Text
84 lines
2.4 KiB
Text
# Copyright 2005, 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
|
|
# 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/>.
|
|
|
|
if $tracelevel then {
|
|
strace $tracelevel
|
|
}
|
|
|
|
load_lib "ada.exp"
|
|
|
|
set testdir "exec_changed"
|
|
file mkdir ${objdir}/${subdir}/${testdir}
|
|
|
|
# Build the first test program (note that cygwin needs the $EXEEXT).
|
|
set testfile1 "${testdir}/first"
|
|
set srcfile1 ${srcdir}/${subdir}/${testfile1}.adb
|
|
set binfile1 ${objdir}/${subdir}/${testfile1}$EXEEXT
|
|
|
|
if {[gdb_compile_ada "${srcfile1}" "${binfile1}" executable [list debug ]] != "" } {
|
|
return -1
|
|
}
|
|
|
|
# Build the second test program
|
|
set testfile2 "${testdir}/second"
|
|
set srcfile2 ${srcdir}/${subdir}/${testfile2}.adb
|
|
set binfile2 ${objdir}/${subdir}/${testfile2}$EXEEXT
|
|
|
|
if {[gdb_compile_ada "${srcfile2}" "${binfile2}" executable [list debug ]] != "" } {
|
|
return -1
|
|
}
|
|
|
|
# Start with a fresh gdb.
|
|
|
|
set testfile "${testdir}/common"
|
|
set binfile ${objdir}/${subdir}/${testfile}$EXEEXT
|
|
|
|
gdb_start
|
|
gdb_reinitialize_dir $srcdir/$subdir
|
|
|
|
# Load the first executable.
|
|
|
|
gdb_test "shell mv ${binfile1} ${binfile}" "" ""
|
|
gdb_load ${binfile}
|
|
|
|
# Start the program, we should land in the program main procedure
|
|
if { [gdb_start_cmd] < 0 } {
|
|
untested start
|
|
return -1
|
|
}
|
|
|
|
gdb_test "" \
|
|
"first \\(\\) at .*first.adb.*" \
|
|
"start first"
|
|
|
|
# Restore first executable to its original name, and move
|
|
# second executable into its place. Ensure that the new
|
|
# executable is at least a second newer than the old.
|
|
|
|
gdb_test "shell mv ${binfile} ${binfile1}" "" ""
|
|
gdb_test "shell mv ${binfile2} ${binfile}" "" ""
|
|
gdb_test "shell sleep 1" "" ""
|
|
gdb_test "shell touch ${binfile}" "" ""
|
|
|
|
# Start the program a second time, GDB should land in procedure Second
|
|
# this time.
|
|
|
|
if { [gdb_start_cmd] < 0 } {
|
|
fail "start second"
|
|
} else {
|
|
gdb_test "" \
|
|
"second \\(\\) at .*second.adb.*" \
|
|
"start second"
|
|
}
|