Files
binutils-gdb/gdb/testsuite/gdb.fortran/array-slices-bad.exp
Ijaz, Abdul B 2e2d1ccdc5 testsuite, fortran: Fix regression due to fix for ifort's 'start' behavior
Got a regression email due to merge of commit in CI config
tcwg_gdb_check/master-aarch64 :
https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=41439185cd0075bbb1aedf9665685dba0827cfec

Begining of test "gdb.fortran/array-slices-bad.exp" was updated in above
commit to start the test from running to line with tag "First Breakpoint"
instead of "fortran_runto_main".  Reason of the regression is shared
libraries are still loaded after hitting the breakpoint as "nosharedlibrary"
is already called before hitting the breakpoint.

So now after this change test is updated accordingly to disable and unload
shared libraries symbols after hitting the first breakpoint.

Approved-By: Andrew Burgess <aburgess@redhat.com>
2023-09-11 17:14:29 +02:00

72 lines
2.7 KiB
Plaintext

# Copyright 2020-2023 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/> .
# Test invalid element and slice array accesses.
require allow_fortran_tests
standard_testfile ".f90"
load_lib fortran.exp
if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
{debug f90}]} {
return -1
}
if {![runto [gdb_get_line_number "First Breakpoint"]]} {
perror "couldn't run to breakpoint First Breakpoint"
return -1
}
# Avoid shared lib symbols.
gdb_test_no_output "set auto-solib-add off"
# Avoid libc symbols, in particular the 'array' type.
gdb_test_no_output "nosharedlibrary"
gdb_breakpoint [gdb_get_line_number "Second Breakpoint"]
gdb_breakpoint [gdb_get_line_number "Final Breakpoint"]
# Access not yet allocated array.
gdb_test "print other" " = <not allocated>"
gdb_test "print other(0:4,2:3)" "array not allocated"
gdb_test "print other(1,1)" "no such vector element \\(vector not allocated\\)"
# Access not yet associated pointer.
gdb_test "print pointer2d" " = <not associated>"
gdb_test "print pointer2d(1:2,1:2)" "array not associated"
gdb_test "print pointer2d(1,1)" "no such vector element \\(vector not associated\\)"
gdb_continue_to_breakpoint "Second Breakpoint"
# Accessing just outside the arrays.
foreach name {array pointer2d other} {
gdb_test "print $name (0:,:)" "array subscript out of bounds"
gdb_test "print $name (:11,:)" "array subscript out of bounds"
gdb_test "print $name (:,0:)" "array subscript out of bounds"
gdb_test "print $name (:,:11)" "array subscript out of bounds"
gdb_test "print $name (0,:)" "no such vector element"
gdb_test "print $name (11,:)" "no such vector element"
gdb_test "print $name (:,0)" "no such vector element"
gdb_test "print $name (:,11)" "no such vector element"
}
# Stride in the wrong direction.
gdb_test "print array (1:10:-1,:)" "incorrect stride and boundary combination"
gdb_test "print array (:,1:10:-1)" "incorrect stride and boundary combination"
gdb_test "print array (10:1:1,:)" "incorrect stride and boundary combination"
gdb_test "print array (:,10:1:1)" "incorrect stride and boundary combination"