Run fixed_points.exp with -fgnat-encodings=minimal

This changes the test case gdb.ada/fixed_points.exp to also be run
with -fgnat-encodings=minimal.  This change pointed out that the test
case had a few incorrect expected outputs; these are fixed as well.

Note that the Overprecise_Object test only uses the non-legacy output
with GCC trunk.

gdb/testsuite/ChangeLog
2020-12-18  Tom Tromey  <tromey@adacore.com>

	* gdb.ada/fixed_points.exp: Also run with
	-fgnat-encodings=minimal.  Update expected output.
This commit is contained in:
Tom Tromey 2020-12-18 08:48:36 -07:00
parent eba7b68cb0
commit 86ef42bd73
2 changed files with 91 additions and 74 deletions

View file

@ -1,3 +1,8 @@
2020-12-18 Tom Tromey <tromey@adacore.com>
* gdb.ada/fixed_points.exp: Also run with
-fgnat-encodings=minimal. Update expected output.
2020-12-16 Simon Marchi <simon.marchi@efficios.com>
* gdb.base/async-shell.exp: Enable non-stop through GDBFLAGS.

View file

@ -19,80 +19,92 @@ if { [skip_ada_tests] } { return -1 }
standard_ada_testfile fixed_points
if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
return -1
}
clean_restart ${testfile}
set bp_location [gdb_get_line_number "Set breakpoint here" ${testdir}/fixed_points.adb]
runto "fixed_points.adb:$bp_location"
# Fixed point subtypes:
gdb_test "print base_object" \
"= -50" \
"p on a fixed point type"
gdb_test "print subtype_object" \
"= -50" \
"p on a subtype fixed point type"
gdb_test "print new_type_object" \
"= -50" \
"p on a new fixed point type"
# Overprecise delta:
gdb_test "print Overprecise_Object" \
"= 0.13579135791"
gdb_test "ptype Overprecise_Object" \
"= delta 0.135791"
# FP*_Var...
gdb_test "print fp1_var" \
" = 0.25"
gdb_test_multiple "ptype fp1_var" "" {
-re "type = <1-byte fixed point \\(small = 0\\.0625\\)>\r\n$gdb_prompt $" {
pass $gdb_test_name
foreach_with_prefix scenario {all minimal} {
set flags [list debug additional_flags=-fgnat-encodings=$scenario]
if {[gdb_compile_ada "${srcfile}" "${binfile}" executable $flags] != ""} {
return -1
}
-re "type = delta 0\\.1 <'small = 0\\.0625>\r\n$gdb_prompt $" {
# The (legacy) output we obtain when the compiler described
# our fixed point types using the GNAT encodings rather than
# standard DWARF. OK as well.
pass $gdb_test_name
}
}
gdb_test "print fp2_var" \
" = -0.01"
gdb_test_multiple "ptype fp2_var" "" {
-re "type = <8-byte fixed point \\(small = 0\\.01\\)>\r\n$gdb_prompt $" {
pass $gdb_test_name
}
-re "type = delta 0\\.01\r\n$gdb_prompt $" {
# The (legacy) output we obtain when the compiler described
# our fixed point types using the GNAT encodings rather than
# standard DWARF. OK as well.
pass $gdb_test_name
}
}
gdb_test "print fp3_var" \
" = 0.1"
gdb_test_multiple "ptype fp3_var" "" {
-re "type = <1-byte fixed point \\(small = 0\\.0333333\\)>\r\n$gdb_prompt $" {
pass $gdb_test_name
}
-re "type = delta 0\\.1 <'small = 0\\.0333333>\r\n$gdb_prompt $" {
# The (legacy) output we obtain when the compiler described
# our fixed point types using the GNAT encodings rather than
# standard DWARF. OK as well.
pass $gdb_test_name
clean_restart ${testfile}
set bp_location [gdb_get_line_number "Set breakpoint here" ${testdir}/fixed_points.adb]
runto "fixed_points.adb:$bp_location"
# Fixed point subtypes:
gdb_test "print base_object" \
"= -50" \
"p on a fixed point type"
gdb_test "print subtype_object" \
"= -50" \
"p on a subtype fixed point type"
gdb_test "print new_type_object" \
"= -50" \
"p on a new fixed point type"
# Overprecise delta:
gdb_test "print Overprecise_Object" \
"= 0.13579135791"
gdb_test_multiple "ptype Overprecise_Object" "" {
-re "type = <2-byte fixed point \\(small = 135791357913579/1000000000000000\\)>\r\n$gdb_prompt $" {
pass $gdb_test_name
}
-re "type = delta 0.135791\r\n$gdb_prompt $" {
# The (legacy) output we obtain when the compiler described
# our fixed point types using the GNAT encodings rather than
# standard DWARF. OK as well.
pass $gdb_test_name
}
}
# FP*_Var...
gdb_test "print fp1_var" \
" = 0.25"
gdb_test_multiple "ptype fp1_var" "" {
-re "type = <1-byte fixed point \\(small = 1/16\\)>\r\n$gdb_prompt $" {
pass $gdb_test_name
}
-re "type = delta 0\\.1 <'small = 0\\.0625>\r\n$gdb_prompt $" {
# The (legacy) output we obtain when the compiler described
# our fixed point types using the GNAT encodings rather than
# standard DWARF. OK as well.
pass $gdb_test_name
}
}
gdb_test "print fp2_var" \
" = -0.01"
gdb_test_multiple "ptype fp2_var" "" {
-re "type = <8-byte fixed point \\(small = 1/100\\)>\r\n$gdb_prompt $" {
pass $gdb_test_name
}
-re "type = delta 0\\.01\r\n$gdb_prompt $" {
# The (legacy) output we obtain when the compiler described
# our fixed point types using the GNAT encodings rather than
# standard DWARF. OK as well.
pass $gdb_test_name
}
}
gdb_test "print fp3_var" \
" = 0.1"
gdb_test_multiple "ptype fp3_var" "" {
-re "type = <1-byte fixed point \\(small = 1/30\\)>\r\n$gdb_prompt $" {
pass $gdb_test_name
}
-re "type = delta 0\\.1 <'small = 0\\.0333333>\r\n$gdb_prompt $" {
# The (legacy) output we obtain when the compiler described
# our fixed point types using the GNAT encodings rather than
# standard DWARF. OK as well.
pass $gdb_test_name
}
}
}