[RFAv2,2/4] Fix gdb.ada/rename_subscript_param.exp by using more unique names.
Commit Message
The test fails due to conflict between boolean 'b'and some 'b' in atnat.h:
(gdb) print b
Multiple matches for b
[0] cancel
[1] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
[2] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
[3] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> FAIL: gdb.ada/rename_subscript_param.exp: print b before changing its value (timeout)
Fix by renaming 'b' to 'rename_subscript_param_b.
Also, change 'before' to 'after' in the gdb_test message that prints
the value after changing it.
The test however still fails for me, probably because the Debian stable
Ada compiler is too old, and does not properly generate debug info for
this renamining:
(gdb) print rename_subscript_param_b
No definition of "rename_subscript_param_b" in current context.
(gdb) FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b before changing its value
Note: if the compiler would generate the correct debug info, the test should
succeed with the name B. However, waiting for this fix, changing the name
ensures that the test fails directly, instead of causing a timeout.
2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.ada/rename_subscript_param/pkg.adb (B): Rename to
Rename_Subscript_Param_B. All users updated.
---
gdb/testsuite/gdb.ada/rename_subscript_param.exp | 8 ++++----
gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
Comments
On Wed, Dec 26, 2018 at 03:03:02PM +0100, Philippe Waroquiers wrote:
> The test fails due to conflict between boolean 'b'and some 'b' in atnat.h:
>
> (gdb) print b
> Multiple matches for b
> [0] cancel
> [1] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> [2] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> [3] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> > FAIL: gdb.ada/rename_subscript_param.exp: print b before changing its value (timeout)
>
> Fix by renaming 'b' to 'rename_subscript_param_b.
To me, the way this patch is explained is a little misleading
("the fix"). I would explain instead why you are getting this
multiple-choice question, and why you are electing to rename
the entity...
> Also, change 'before' to 'after' in the gdb_test message that prints
> the value after changing it.
> The test however still fails for me, probably because the Debian stable
> Ada compiler is too old, and does not properly generate debug info for
> this renamining:
> (gdb) print rename_subscript_param_b
> No definition of "rename_subscript_param_b" in current context.
> (gdb) FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b before changing its value
>
> Note: if the compiler would generate the correct debug info, the test should
> succeed with the name B. However, waiting for this fix, changing the name
> ensures that the test fails directly, instead of causing a timeout.
>
> 2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * gdb.ada/rename_subscript_param/pkg.adb (B): Rename to
> Rename_Subscript_Param_B. All users updated.
The patch itself looks good, though.
On Wed, 2018-12-26 at 19:27 +0400, Joel Brobecker wrote:
> On Wed, Dec 26, 2018 at 03:03:02PM +0100, Philippe Waroquiers wrote:
> > The test fails due to conflict between boolean 'b'and some 'b' in atnat.h:
> >
> > (gdb) print b
> > Multiple matches for b
> > [0] cancel
> > [1] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> > [2] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> > [3] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> > > FAIL: gdb.ada/rename_subscript_param.exp: print b before changing its value (timeout)
> >
> > Fix by renaming 'b' to 'rename_subscript_param_b.
>
> To me, the way this patch is explained is a little misleading
> ("the fix"). I would explain instead why you are getting this
> multiple-choice question, and why you are electing to rename
> the entity...
What about this new commit message ?
--------------------------------------------------
Improve gdb.ada/rename_subscript_param.exp by using more unique names.
With old compilers, the test fails because no debug info is generated
for 'B' and GDB finds some 'b' in atnat.h:
(gdb) print b
Multiple matches for b
[0] cancel
[1] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
[2] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
[3] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> FAIL: gdb.ada/rename_subscript_param.exp: print b before changing its value (timeout)
Avoid the timeout by renaming 'b' to rename_subscript_param_b.
Also, change 'before' to 'after' in the gdb_test message that prints
the value after changing it.
The test still fails with old compilers that do not properly
generate debug info for this renaming:
(gdb) print rename_subscript_param_b
No definition of "rename_subscript_param_b" in current context.
(gdb) FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b before changing its value
Note: if the compiler would generate the correct debug info, the test should
succeed with the name B. However, waiting for this fix, changing the name
ensures that the test fails directly, instead of causing a timeout.
2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
PR ada/23381
* gdb.ada/rename_subscript_param/pkg.adb (B): Rename to
Rename_Subscript_Param_B. All users updated.
gdb.ada/rename_subscript_param.exp: Test names made unique.
Note that PR ada/23381 is only fully fixed when using a recent
compiler.
>
> > Also, change 'before' to 'after' in the gdb_test message that prints
> > the value after changing it.
> > The test however still fails for me, probably because the Debian stable
> > Ada compiler is too old, and does not properly generate debug info for
> > this renamining:
> > (gdb) print rename_subscript_param_b
> > No definition of "rename_subscript_param_b" in current context.
> > (gdb) FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b before changing its value
> >
> > Note: if the compiler would generate the correct debug info, the test should
> > succeed with the name B. However, waiting for this fix, changing the name
> > ensures that the test fails directly, instead of causing a timeout.
> >
> > 2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
> >
> > * gdb.ada/rename_subscript_param/pkg.adb (B): Rename to
> > Rename_Subscript_Param_B. All users updated.
>
> The patch itself looks good, though.
>
> What about this new commit message ?
Loks very good. Thanks Philippe!
>
> --------------------------------------------------
> Improve gdb.ada/rename_subscript_param.exp by using more unique names.
>
> With old compilers, the test fails because no debug info is generated
> for 'B' and GDB finds some 'b' in atnat.h:
>
> (gdb) print b
> Multiple matches for b
> [0] cancel
> [1] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> [2] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> [3] b at ../sysdeps/ieee754/dbl-64/atnat.h:106
> > FAIL: gdb.ada/rename_subscript_param.exp: print b before changing its value (timeout)
>
> Avoid the timeout by renaming 'b' to rename_subscript_param_b.
>
> Also, change 'before' to 'after' in the gdb_test message that prints
> the value after changing it.
>
> The test still fails with old compilers that do not properly
> generate debug info for this renaming:
> (gdb) print rename_subscript_param_b
> No definition of "rename_subscript_param_b" in current context.
> (gdb) FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b before changing its value
>
> Note: if the compiler would generate the correct debug info, the test should
> succeed with the name B. However, waiting for this fix, changing the name
> ensures that the test fails directly, instead of causing a timeout.
>
> 2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> PR ada/23381
> * gdb.ada/rename_subscript_param/pkg.adb (B): Rename to
> Rename_Subscript_Param_B. All users updated.
> gdb.ada/rename_subscript_param.exp: Test names made unique.
> Note that PR ada/23381 is only fully fixed when using a recent
> compiler.
>
> >
> > > Also, change 'before' to 'after' in the gdb_test message that prints
> > > the value after changing it.
> > > The test however still fails for me, probably because the Debian stable
> > > Ada compiler is too old, and does not properly generate debug info for
> > > this renamining:
> > > (gdb) print rename_subscript_param_b
> > > No definition of "rename_subscript_param_b" in current context.
> > > (gdb) FAIL: gdb.ada/rename_subscript_param.exp: print rename_subscript_param_b before changing its value
> > >
> > > Note: if the compiler would generate the correct debug info, the test should
> > > succeed with the name B. However, waiting for this fix, changing the name
> > > ensures that the test fails directly, instead of causing a timeout.
> > >
> > > 2018-12-26 Philippe Waroquiers <philippe.waroquiers@skynet.be>
> > >
> > > * gdb.ada/rename_subscript_param/pkg.adb (B): Rename to
> > > Rename_Subscript_Param_B. All users updated.
> >
> > The patch itself looks good, though.
> >
@@ -26,9 +26,9 @@ clean_restart ${testfile}
set bp_location [gdb_get_line_number "BREAK" ${testdir}/pkg.adb]
runto "pkg.adb:$bp_location"
-gdb_test "print b" \
+gdb_test "print rename_subscript_param_b" \
" = false" \
- "print b before changing its value"
+ "print rename_subscript_param_b before changing its value"
set bp_location [gdb_get_line_number "Do_Nothing" ${testdir}/pkg.adb]
gdb_test "break pkg.adb:$bp_location" \
@@ -39,6 +39,6 @@ gdb_test "cont" \
"Breakpoint \[0-9\]+, pkg.flip \\(.*" \
"Continuing to breakpoint on call to Do_Nothing"
-gdb_test "print b" \
+gdb_test "print rename_subscript_param_b" \
" = true" \
- "print b before changing its value"
+ "print rename_subscript_param_b after changing its value"
@@ -21,9 +21,9 @@ package body Pkg is
-- Create a new scope to check that the scope match algorithm is fine in
-- the front-end.
declare
- B : Boolean renames Bits (I);
+ Rename_Subscript_Param_B : Boolean renames Bits (I);
begin
- B := not B; -- BREAK
+ Rename_Subscript_Param_B := not Rename_Subscript_Param_B; -- BREAK
Do_Nothing (Bits'Address);
end;
end Flip;