-# Copyright 2015-2017 Free Software Foundation, Inc.
+# Copyright 2015-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
load_lib "ada.exp"
-standard_ada_testfile bar
+if { [skip_ada_tests] } { return -1 }
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } {
- return -1
-}
+standard_ada_testfile bar
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-gdb_exit
-if [mi_gdb_start] {
- continue
-}
+foreach_with_prefix scenario {none all minimal} {
+ set flags {debug}
+ if {$scenario != "none"} {
+ lappend flags additional_flags=-fgnat-encodings=$scenario
+ }
-mi_delete_breakpoints
-mi_gdb_reinitialize_dir $srcdir/$subdir
-mi_gdb_load ${binfile}
+ if {[gdb_compile_ada "${srcfile}" "${binfile}-${scenario}" executable $flags] != "" } {
+ return -1
+ }
-if ![mi_run_to_main] then {
- fail "cannot run to main, testcase aborted"
- return 0
-}
+ mi_clean_restart $binfile-$scenario
-set bp_location [gdb_get_line_number "STOP" ${testdir}/bar.adb]
-mi_continue_to_line \
- "bar.adb:$bp_location" \
- "stop at start of main Ada procedure"
+ if {[mi_runto_main] < 0} {
+ return 0
+ }
-mi_gdb_test "-var-create vta * vta" \
- "\\^done,name=\"vta\",numchild=\"2\",.*" \
- "create bt varobj"
+ set bp_location [gdb_get_line_number "STOP" ${testdir}/bar.adb]
+ mi_continue_to_line \
+ "bar.adb:$bp_location" \
+ "stop at start of main Ada procedure"
-mi_gdb_test "-var-list-children vta" \
- "\\^done,numchild=\"2\",children=\\\[child={name=\"vta.n\",exp=\"n\",numchild=\"0\",type=\"bar\\.int\",thread-id=\"$decimal\"},child={name=\"vta.f\",exp=\"f\",numchild=\"0\",type=\"array \\(1 .. n\\) of character\",thread-id=\"$decimal\"}\\\],.*" \
- "list vta's children"
+ mi_gdb_test "-var-create vta * vta" \
+ "\\^done,name=\"vta\",numchild=\"0\",.*" \
+ "create bt varobj"
+}