On Tue, Jan 13, 2026 at 5:00 PM Joseph Myers <[email protected]> wrote:
>
> The simulate-thread tests exit early in cross and remote cases.  Apply
> fixes similar to (but affecting separate code) those recently posted
> for the guality tests: do not use [transform gdb] since that's a cross
> GDB and the tests expect to run GDB on the target, test existence on
> the target not the build system, and copy required files to the target
> (deleting them later).
>
> Tested for x86_64-pc-linux-gnu to make sure native testing isn't
> broken, and with cross to aarch64-linux.
>
>         * lib/gcc-dg.exp (gdb-exists): Do not use [transform gdb].  Run
>         selected GDB with -v on target rather than testing for existence
>         on build system.
>         * lib/gcc-simulate-thread.exp (simulate-thread): Do not return
>         early for non-native and remote.  Download executable and GDB
>         command file to target before running GDB there, and delete when
>         closing target.

LGTM.

>
> diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
> index 87dddb8cd8ac..f2e5228fff58 100644
> --- a/gcc/testsuite/lib/gcc-dg.exp
> +++ b/gcc/testsuite/lib/gcc-dg.exp
> @@ -1374,11 +1374,12 @@ proc gdb-exists { args } {
>             if [info exists GDB] {
>                 setenv GDB_FOR_GCC_TESTING "$GDB"
>             } else {
> -               setenv GDB_FOR_GCC_TESTING "[transform gdb]"
> +               setenv GDB_FOR_GCC_TESTING "gdb"
>             }
>         }
>      }
> -    if { [which $::env(GDB_FOR_GCC_TESTING)] != 0 } {
> +    if { [lindex [remote_exec target "$::env(GDB_FOR_GCC_TESTING)" "-v"] 0]
> +        == 0 } {
>         return 1;
>      }
>      return 0;
> diff --git a/gcc/testsuite/lib/gcc-simulate-thread.exp 
> b/gcc/testsuite/lib/gcc-simulate-thread.exp
> index 115b636e603d..dcbcd3dc08ef 100644
> --- a/gcc/testsuite/lib/gcc-simulate-thread.exp
> +++ b/gcc/testsuite/lib/gcc-simulate-thread.exp
> @@ -24,8 +24,6 @@ load_lib timeout.exp
>  # Call 'fail' if a given test printed "FAIL:", otherwise call 'pass'.
>
>  proc simulate-thread { args } {
> -    if { ![isnative] || [is_remote target] } { return }
> -
>      if { [llength $args] == 1 } {
>         switch [dg-process-target [lindex $args 0]] {
>                 "F" { setup_xfail "*-*-*" }
> @@ -49,10 +47,16 @@ proc simulate-thread { args } {
>
>      set message "thread simulation test"
>
> -    send_log "Spawning: $gdb_name -nx -nw -batch -x $cmd_file ./$exec_file\n"
> -    set res [remote_spawn target "$gdb_name -nx -nw -batch -x $cmd_file 
> ./$exec_file"]
> +    set cmd_file_remote [remote_download target $cmd_file]
> +    set exec_file_remote [remote_download target $exec_file]
> +    send_log "Spawning: $gdb_name -nx -nw -batch -x $cmd_file_remote 
> $exec_file_remote\n"
> +    set res [remote_spawn target "$gdb_name -nx -nw -batch -x 
> $cmd_file_remote $exec_file_remote"]
>      if { $res < 0 || $res == "" } {
>         unsupported "$testcase $message"
> +       if { [is_remote target] } {
> +           remote_file target delete $cmd_file_remote
> +           remote_file target delete $exec_file_remote
> +       }
>         return
>      }
>
> @@ -62,11 +66,19 @@ proc simulate-thread { args } {
>         # Too old GDB
>         -re "Unhandled dwarf expression|Error in sourced command file" {
>             unsupported "$testcase $message"
> +           if { [is_remote target] } {
> +               remote_file target delete $cmd_file_remote
> +               remote_file target delete $exec_file_remote
> +           }
>             remote_close target
>             return
>         }
>         -re "FAIL:" {
>             fail "$testcase $message"
> +           if { [is_remote target] } {
> +               remote_file target delete $cmd_file_remote
> +               remote_file target delete $exec_file_remote
> +           }
>             remote_close target
>             return
>         }
> @@ -79,11 +91,19 @@ proc simulate-thread { args } {
>         }
>         timeout {
>             fail "$testcase $message"
> +           if { [is_remote target] } {
> +               remote_file target delete $cmd_file_remote
> +               remote_file target delete $exec_file_remote
> +           }
>             remote_close target
>             return
>         }
>      }
>
> +    if { [is_remote target] } {
> +       remote_file target delete $cmd_file_remote
> +       remote_file target delete $exec_file_remote
> +    }
>      remote_close target
>      if {$gdb_worked} {
>         pass "$testcase $message"
>
> --
> Joseph S. Myers
> [email protected]
>

Reply via email to