1 # Copyright 2018-2024 Free Software Foundation, Inc.
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 3 of the License, or
6 # (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 require allow_ada_tests
20 standard_ada_testfile enum_with_gap_main
22 foreach_gnat_encoding scenario flags {all minimal} {
25 if {[gdb_compile_ada "${srcfile}" "${binfile}-${scenario}" \
26 executable $flags] != ""} {
30 clean_restart ${testfile}-${scenario}
32 set bp_location [gdb_get_line_number "BREAK" \
33 ${testdir}/enum_with_gap_main.adb]
34 if {![runto "enum_with_gap_main.adb:$bp_location"]} {
38 gdb_test "print indexed_by_enum.all" \
39 " = \\(lit1 => 1, 43, 42, 41\\)"
40 gdb_test "print s.all" \
43 gdb_test "print indexed_by_enum'length" \
45 gdb_test "print s'length" \
48 gdb_test "print indexed_by_enum'first" \
50 gdb_test "print s'first" \
53 gdb_test "print indexed_by_enum'last" \
55 gdb_test "print s'last" \
58 gdb_test "print indexed_by_enum(lit2..lit4)" \
59 " = \\(lit2 => 43, 42, 41\\)"
60 gdb_test "print s(2..4)" \
63 gdb_test "print v" " = lit3"
64 gdb_test "print enum_subrange'pos(v)" " = 3"
65 gdb_test "print enum_subrange'val(3)" " = lit3"
67 gdb_test "print indexed_by_enum(lit2)" "43"
68 gdb_test "print s(2)" "101 'e'"
70 gdb_test "print enum_with_gaps'enum_rep(lit3)" " = 13" \
72 gdb_test "print enum_subrange'enum_rep(lit3)" " = 13" \
74 gdb_test "print enum_with_gaps'enum_val(21)" " = lit4" \