binutils-gdb/gdb/testsuite/gdb.ada/exec_changed.exp
Joel Brobecker 61baf725ec update copyright year range in GDB files
This applies the second part of GDB's End of Year Procedure, which
updates the copyright year range in all of GDB's files.

gdb/ChangeLog:

        Update copyright year range in all GDB files.
2017-01-01 10:52:34 +04:00

110 lines
3.3 KiB
Plaintext

# Copyright 2005-2017 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/>.
load_lib "ada.exp"
if { [skip_ada_tests] } { return -1 }
# This testcase verifies the behavior of the `start' command, which
# does not work when we use the gdb stub...
if [target_info exists use_gdb_stub] {
untested "skipping tests due to use_gdb_stub"
return
}
standard_ada_testfile first
# Build the first test program (note that cygwin needs the $EXEEXT).
if {[gdb_compile_ada "${srcfile}" "${binfile}$EXEEXT" executable {debug}] != ""} {
return -1
}
# Build the second test program
set srcfile2 ${srcdir}/${subdir}/${testdir}/second.adb
set binfile2 [standard_output_file second$EXEEXT]
if {[gdb_compile_ada "${srcfile2}" "${binfile2}" executable {debug}] != ""} {
return -1
}
# Start with a fresh gdb.
set common_binfile [standard_output_file common$EXEEXT]
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
# Load the first executable.
gdb_test "shell mv ${binfile} ${common_binfile}" ".*" ""
gdb_load ${common_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 ${common_binfile} ${binfile}" ".*" ""
gdb_test "shell mv ${binfile2} ${common_binfile}" ".*" ""
gdb_test "shell sleep 1" ".*" ""
gdb_test "shell touch ${common_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"
}
# Try again, this time with just changing the file time of first.
clean_restart "${binfile}$EXEEXT"
# Ensure we don't accidently use the main symbol cache.
gdb_test_no_output "mt set symbol-cache-size 0"
# Put something in the symbol lookup cache that will get looked up when
# starting after having re-read symbols. PR 17855.
gdb_breakpoint break_me
gdb_test "shell touch ${binfile}$EXEEXT" ".*" ""
gdb_test "shell sleep 1" ".*" ""
if { [gdb_start_cmd] < 0 } {
# PR 17855: At this point gdb may have crashed or gotten an internal
# error, but we still need to detect this. Just issue any simple command
# to verify gdb is still running. This will establish in gdb.log whether
# gdb is still running.
gdb_test_no_output "set \$check_gdb_running = 0" "check gdb running"
fail "start just first"
} else {
gdb_test "" \
"first \\(\\) at .*first.adb.*" \
"start just first"
}