From 86ef42bd7333091725991ba568807fcec0a2c1d1 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 18 Dec 2020 08:48:36 -0700 Subject: [PATCH] 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 * gdb.ada/fixed_points.exp: Also run with -fgnat-encodings=minimal. Update expected output. --- gdb/testsuite/ChangeLog | 5 + gdb/testsuite/gdb.ada/fixed_points.exp | 134 ++++++++++++++----------- 2 files changed, 78 insertions(+), 61 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index e48a6fe0ec1..24df95135db 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-12-18 Tom Tromey + + * gdb.ada/fixed_points.exp: Also run with + -fgnat-encodings=minimal. Update expected output. + 2020-12-16 Simon Marchi * gdb.base/async-shell.exp: Enable non-stop through GDBFLAGS. diff --git a/gdb/testsuite/gdb.ada/fixed_points.exp b/gdb/testsuite/gdb.ada/fixed_points.exp index 1fe2eb203cb..565f7115f44 100644 --- a/gdb/testsuite/gdb.ada/fixed_points.exp +++ b/gdb/testsuite/gdb.ada/fixed_points.exp @@ -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: +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 + } -gdb_test "print base_object" \ - "= -50" \ - "p on a fixed point type" + clean_restart ${testfile} -gdb_test "print subtype_object" \ - "= -50" \ - "p on a subtype fixed point type" + set bp_location [gdb_get_line_number "Set breakpoint here" ${testdir}/fixed_points.adb] + runto "fixed_points.adb:$bp_location" -gdb_test "print new_type_object" \ - "= -50" \ - "p on a new fixed point type" + # Fixed point subtypes: -# Overprecise delta: + gdb_test "print base_object" \ + "= -50" \ + "p on a fixed point type" -gdb_test "print Overprecise_Object" \ - "= 0.13579135791" + gdb_test "print subtype_object" \ + "= -50" \ + "p on a subtype fixed point type" -gdb_test "ptype Overprecise_Object" \ - "= delta 0.135791" + gdb_test "print new_type_object" \ + "= -50" \ + "p on a new fixed point type" -# FP*_Var... + # Overprecise delta: -gdb_test "print fp1_var" \ - " = 0.25" + gdb_test "print Overprecise_Object" \ + "= 0.13579135791" -gdb_test_multiple "ptype fp1_var" "" { - -re "type = <1-byte fixed point \\(small = 0\\.0625\\)>\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_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 + } } -} - -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 + # 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 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 + 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 + } } - -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 + + 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 + } } } -- 2.30.2