Re: [PATCH 3/3] Remove HP-UX references fom testsuite

Simon Marchi
2015-12-21T16:57:43Z

On 21 December 2015 at 07:48, Pedro Alves <palves@redhat.com> wrote:
> I looked this one over too. A few minor comments below, but
> otherwise looks good to me. Thanks for doing this!
>
> On 12/19/2015 11:30 PM, Simon Marchi wrote:
>
>> * gdb.multi/bkpt-multi-exec.ex: Likewise.p
>
> Typo: "ex: Likewise.p" -> "exp: Likewise."

Fixed.

>> +gdb_test_multiple "catch vfork" "$name" {
>> + -re "Catchpoint \[0-9\]* .vfork..*$gdb_prompt $" {
>> + pass $name
>> + }
>> + -re "Catch of vfork not yet implemented.*$gdb_prompt $" {
>
> This case can be removed. GDB doesn't ever output this.

Actually, is it true for all "Catch of * not yet implemented" cases?

testsuite/gdb.base/break.exp
482: -re "Catch of fork not yet implemented.*$gdb_prompt $" {
493: -re "Catch of vfork not yet implemented.*$gdb_prompt $" {
503: -re "Catch of exec not yet implemented.*$gdb_prompt $" {

testsuite/gdb.base/sepdebug.exp
291: -re "Catch of fork not yet implemented.*$gdb_prompt $" {
302: -re "Catch of vfork events not supported on HP-UX 10.20.*" {
308: -re "Catch of vfork not yet implemented.*$gdb_prompt $" {
318: -re "Catch of exec not yet implemented.*$gdb_prompt $" {

Oh damn, that just found another HP-UX reference. I'll remove the
"Catch of vfork events not supported on HP-UX 10.20.*" as part of this
patch.

Grepping for "Catch of" in the source doesn't return anything, so I
guess they could all be removed from the testsuite. If that is right,
I think I would do it in a separate patch.

>> + pass $name
>> }
>> }
>>
>
>
>
>> --- a/gdb/testsuite/gdb.base/display.exp
>> +++ b/gdb/testsuite/gdb.base/display.exp
>> @@ -194,15 +194,9 @@ gdb_test "print/r j" " = 0x0\[\\r\\n\]+" "debug test output 2a"
>> gdb_test "print j" " = 0\[\\r\\n\]+" "debug test output 3"
>>
>> # x/0 j doesn't produce any output and terminates PA64 process when testing
>> -if [istarget "hppa2.0w-hp-hpux11*"] {
>> - xfail "'x/0 j' terminates PA64 process - skipped test point"
>> -} else {
>> - gdb_test_no_output "x/0 j"
>> -}
>> -if [istarget "hppa*-hp-hpux*"] {
>> - # on HP-UX you could access the first page without getting an error
>> - gdb_test "x/rx j" ".*(Cannot access|Error accessing) memory.*|.*0xa:\[ \t\]*\[0-9\]+.*"
>> -}
>> +gdb_test_no_output "x/0 j"
>> +
>> +gdb_test "x/rx j" ".*(Cannot access|Error accessing) memory.*|.*0xa:\[ \t\]*\[0-9\]+.*"
>
> This last one used to only run on hpux. It seems like it'll now fail
> on is_address_zero_readable targets -- the non-error alternative assumes
> the variable's value is "0xa" ?
>
> You could guard it with "if [is_address_zero_readable]", but, that
> proc does "x 0" internally, so it sounds like it'd be pointless?

Right it's pointless now, I'll just remove it.

>> --- a/gdb/testsuite/gdb.dwarf2/pr10770.c
>> +++ b/gdb/testsuite/gdb.dwarf2/pr10770.c
>> @@ -4,7 +4,6 @@
>> /* HP-UX libunwind.so doesn't provide _UA_END_OF_STACK */
>> /* { dg-do run } */
>> /* { dg-options "-fexceptions" } */
>> -/* { dg-skip-if "" { "ia64-*-hpux11.*" } { "*" } { "" } } */
>> /* Verify DW_OP_* handling in the unwinder. */
>>
>> #include <unwind.h>
>
> You should remove the HP-UX reference at the top too then.
> But, GDB doesn't use the dg-* markers. Note the comment at the top:
>
> /* This file comes from GCC. If you are tempted to change it,
> consider also changing the copy there. */
>
> I'd either leave it be, or, remove the whole dg-* comment block.
>
> Comparing our copy to the gcc copy, that's the only bit that diverged so far:
>
> $ diff -up ~/gdb/mygit/src/gdb/testsuite/gdb.dwarf2/pr10770.c src/gcc/testsuite/gcc.dg/cleanup-13.c
> --- /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.dwarf2/pr10770.c 2015-05-08 17:35:43.878768249 +0100
> +++ src/gcc/testsuite/gcc.dg/cleanup-13.c 2015-08-22 16:16:35.514064275 +0100
> @@ -1,10 +1,8 @@
> -/* This file comes from GCC. If you are tempted to change it,
> - consider also changing the copy there. */
> -
> /* HP-UX libunwind.so doesn't provide _UA_END_OF_STACK */
> /* { dg-do run } */
> /* { dg-options "-fexceptions" } */
> /* { dg-skip-if "" { "ia64-*-hpux11.*" } { "*" } { "" } } */
> +/* { dg-skip-if "" { ! nonlocal_goto } { "*" } { "" } } */
> /* Verify DW_OP_* handling in the unwinder. */
>
> #include <unwind.h>

Ok, I'll leave the file as-is.

Another thing, the gdb.base/environ.exp is guarded by a

23 if ![istarget "hppa*-*-hpux*"] then {
24 return
25 }

but it doesn't test hp-ux specific things. It overlaps
gdb.base/testenv.exp in what it tests, but it does test a few more
things (like having an equal sign in the value when setting an env
var). Removing the guard, it seems like the test runs fine on Linux
native. It does not run fine with
native-gdbserver/native-extended-gdbserver, however. So I could
replace it with the appropriate "if not remote" check.
gdb.base/testenv.exp uses "if { [is_remote target] }", but it's not
right, because it doesn't catch when running with
native-extended-gdbserver.

So for now I think I'll just leave it as-is, and we can merge the two
tests and clean this up after.