Test GNAT encodings in arr_acc_idx_w_gap.exp
While working on a GNAT bug, I wanted to also test arr_acc_idx_w_gap.exp using GNAT encodings. When the GNAT change is ready, I plan to add a new case here. Tested on x86-64 Fedora 36. I am checking this in.
This commit is contained in:
@@ -19,50 +19,56 @@ require allow_ada_tests
|
||||
|
||||
standard_ada_testfile enum_with_gap_main
|
||||
|
||||
if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
|
||||
return -1
|
||||
foreach_with_prefix scenario {all minimal} {
|
||||
set flags [list debug additional_flags=-fgnat-encodings=$scenario]
|
||||
|
||||
if {[gdb_compile_ada "${srcfile}" "${binfile}-${scenario}" \
|
||||
executable $flags] != ""} {
|
||||
return -1
|
||||
}
|
||||
|
||||
clean_restart ${testfile}-${scenario}
|
||||
|
||||
set bp_location [gdb_get_line_number "BREAK" \
|
||||
${testdir}/enum_with_gap_main.adb]
|
||||
if {![runto "enum_with_gap_main.adb:$bp_location"]} {
|
||||
return
|
||||
}
|
||||
|
||||
gdb_test "print indexed_by_enum.all" \
|
||||
" = \\(lit1 => 1, 43, 42, 41\\)"
|
||||
gdb_test "print s.all" \
|
||||
" = \"Hello!\""
|
||||
|
||||
gdb_test "print indexed_by_enum'length" \
|
||||
" = 4"
|
||||
gdb_test "print s'length" \
|
||||
" = 6"
|
||||
|
||||
gdb_test "print indexed_by_enum'first" \
|
||||
" = lit1"
|
||||
gdb_test "print s'first" \
|
||||
" = 1"
|
||||
|
||||
gdb_test "print indexed_by_enum'last" \
|
||||
" = lit4"
|
||||
gdb_test "print s'last" \
|
||||
" = 6"
|
||||
|
||||
gdb_test "print indexed_by_enum(lit2..lit4)" \
|
||||
" = \\(lit2 => 43, 42, 41\\)"
|
||||
gdb_test "print s(2..4)" \
|
||||
" = \"ell\""
|
||||
|
||||
gdb_test "print v" " = lit3"
|
||||
gdb_test "print enum_subrange'pos(v)" " = 3"
|
||||
gdb_test "print enum_subrange'val(3)" " = lit3"
|
||||
|
||||
gdb_test "print indexed_by_enum(lit2)" "43"
|
||||
gdb_test "print s(2)" "101 'e'"
|
||||
|
||||
gdb_test "print enum_with_gaps'enum_rep(lit3)" " = 13" \
|
||||
"enum_rep"
|
||||
gdb_test "print enum_with_gaps'enum_val(21)" " = lit4" \
|
||||
"enum_val"
|
||||
}
|
||||
|
||||
clean_restart ${testfile}
|
||||
|
||||
set bp_location [gdb_get_line_number "BREAK" ${testdir}/enum_with_gap_main.adb]
|
||||
if {![runto "enum_with_gap_main.adb:$bp_location"]} {
|
||||
return
|
||||
}
|
||||
|
||||
gdb_test "print indexed_by_enum.all" \
|
||||
" = \\(lit1 => 1, 43, 42, 41\\)"
|
||||
gdb_test "print s.all" \
|
||||
" = \"Hello!\""
|
||||
|
||||
gdb_test "print indexed_by_enum'length" \
|
||||
" = 4"
|
||||
gdb_test "print s'length" \
|
||||
" = 6"
|
||||
|
||||
gdb_test "print indexed_by_enum'first" \
|
||||
" = lit1"
|
||||
gdb_test "print s'first" \
|
||||
" = 1"
|
||||
|
||||
gdb_test "print indexed_by_enum'last" \
|
||||
" = lit4"
|
||||
gdb_test "print s'last" \
|
||||
" = 6"
|
||||
|
||||
gdb_test "print indexed_by_enum(lit2..lit4)" \
|
||||
" = \\(lit2 => 43, 42, 41\\)"
|
||||
gdb_test "print s(2..4)" \
|
||||
" = \"ell\""
|
||||
|
||||
gdb_test "print v" " = lit3"
|
||||
gdb_test "print enum_subrange'pos(v)" " = 3"
|
||||
gdb_test "print enum_subrange'val(3)" " = lit3"
|
||||
|
||||
gdb_test "print indexed_by_enum(lit2)" "43"
|
||||
gdb_test "print s(2)" "101 'e'"
|
||||
|
||||
gdb_test "print enum_with_gaps'enum_rep(lit3)" " = 13" \
|
||||
"enum_rep"
|
||||
gdb_test "print enum_with_gaps'enum_val(21)" " = lit4" \
|
||||
"enum_val"
|
||||
|
||||
Reference in New Issue
Block a user