Test GNAT encodings in arr_acc_idx_w_gap.exp
authorTom Tromey <tromey@adacore.com>
Fri, 11 Aug 2023 16:04:49 +0000 (10:04 -0600)
committerTom Tromey <tromey@adacore.com>
Fri, 11 Aug 2023 16:06:56 +0000 (10:06 -0600)
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.

gdb/testsuite/gdb.ada/arr_acc_idx_w_gap.exp

index 397189487bbc0494c35ac3c4cb3cdf2fca7c1b79..4a1482b6d995b72b03b4fea23a27064321c726be 100644 (file)
@@ -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]
 
-clean_restart ${testfile}
+    if {[gdb_compile_ada "${srcfile}" "${binfile}-${scenario}" \
+            executable $flags] != ""} {
+       return -1
+    }
 
-set bp_location [gdb_get_line_number "BREAK" ${testdir}/enum_with_gap_main.adb]
-if {![runto "enum_with_gap_main.adb:$bp_location"]} {
-  return
-}
+    clean_restart ${testfile}-${scenario}
 
-gdb_test "print indexed_by_enum.all" \
-         " = \\(lit1 => 1, 43, 42, 41\\)"
-gdb_test "print s.all" \
-         " = \"Hello!\""
+    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'length" \
-         " = 4"
-gdb_test "print s'length" \
-         " = 6"
+    gdb_test "print indexed_by_enum.all" \
+       " = \\(lit1 => 1, 43, 42, 41\\)"
+    gdb_test "print s.all" \
+       " = \"Hello!\""
 
-gdb_test "print indexed_by_enum'first" \
-         " = lit1"
-gdb_test "print s'first" \
-         " = 1"
+    gdb_test "print indexed_by_enum'length" \
+       " = 4"
+    gdb_test "print s'length" \
+       " = 6"
 
-gdb_test "print indexed_by_enum'last" \
-         " = lit4"
-gdb_test "print s'last" \
-         " = 6"
+    gdb_test "print indexed_by_enum'first" \
+       " = lit1"
+    gdb_test "print s'first" \
+       " = 1"
 
-gdb_test "print indexed_by_enum(lit2..lit4)" \
-         " = \\(lit2 => 43, 42, 41\\)"
-gdb_test "print s(2..4)" \
-         " = \"ell\""
+    gdb_test "print indexed_by_enum'last" \
+       " = lit4"
+    gdb_test "print s'last" \
+       " = 6"
 
-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..lit4)" \
+       " = \\(lit2 => 43, 42, 41\\)"
+    gdb_test "print s(2..4)" \
+       " = \"ell\""
 
-gdb_test "print indexed_by_enum(lit2)" "43"
-gdb_test "print s(2)" "101 'e'"
+    gdb_test "print v" " = lit3"
+    gdb_test "print enum_subrange'pos(v)" " = 3"
+    gdb_test "print enum_subrange'val(3)" " = lit3"
 
-gdb_test "print enum_with_gaps'enum_rep(lit3)" " = 13" \
-    "enum_rep"
-gdb_test "print enum_with_gaps'enum_val(21)" " = lit4" \
-    "enum_val"
+    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"
+}