gcc/gcc14-tests-simulate-thread-native.patch
Joseph Myers 8dc14eb3b4 further fixes for testing non-production cross compilers (RHEL-114521)
- enable guality tests in cross testing
- enable simulate-thread tests in cross testing
- enable gcov tests in cross testing
- enable some miscellaneous tests in cross testing
- fix some tree-prof tests for cross testing

Related: RHEL-114521
2026-01-26 19:28:50 +00:00

116 lines
4.1 KiB
Diff

commit 3119cfc9118eb8545dac9bf765c93f762ad8794a
Author: Joseph Myers <josmyers@redhat.com>
Date: Wed Jan 14 17:10:33 2026 +0000
testsuite: Enable cross testing for simulate-thread tests
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.
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"