[binutils-gdb] [gdb/testsuite] Fix gdb.threads/pending-fork-event-detach.exp for remote target

Tom de Vries vries@sourceware.org
Thu Mar 9 14:49:08 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2562954ede66f32bff7d985e752b8052c2ae5775

commit 2562954ede66f32bff7d985e752b8052c2ae5775
Author: Tom de Vries <tdevries@suse.de>
Date:   Thu Mar 9 15:49:17 2023 +0100

    [gdb/testsuite] Fix gdb.threads/pending-fork-event-detach.exp for remote target
    
    Fix test-case gdb.threads/pending-fork-event-detach.exp for target board
    remote-gdbserver-on-localhost using gdb_remote_download for $touch_file_bin.
    
    Then, fix the test-case for target board remote-stdio-gdbserver with
    REMOTE_TMPDIR=~/tmp.remote-stdio-gdbserver by creating $touch_file_path
    on target using remote_download, and using the resulting path.
    
    Tested on x86_64-linux.

Diff:
---
 gdb/testsuite/gdb.threads/pending-fork-event-detach.exp | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp b/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
index ff90ab87429..bde513f609d 100644
--- a/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
+++ b/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
@@ -42,6 +42,17 @@ if { [is_remote target] } {
     # If the target is remote, write the file in whatever the current working
     # directory is, with a somewhat unique name.
     set touch_file_path ${testfile}-flag
+
+    # Now get the remote name, by creating the file on build and copying it to
+    # target.
+    remote_exec build touch $touch_file_path
+    set target_touch_file_path [remote_download target $touch_file_path]
+
+    # Clean up.
+    remote_file build delete $touch_file_path
+    remote_file target delete $target_touch_file_path
+
+    set touch_file_path $target_touch_file_path
 } else {
     set touch_file_path [standard_output_file flag]
 }
@@ -51,11 +62,13 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile2" $touch_file_bin executable $opts]
     return
 }
 
+set target_touch_file_bin [gdb_remote_download target $touch_file_bin]
+
 proc do_test { target-non-stop who_forks fork_function stop_mode } {
     set opts [list \
 	debug \
 	"additional_flags=-DFORK_FUNCTION=$fork_function" \
-	"additional_flags=-DTOUCH_FILE_BIN=\"$::touch_file_bin\""]
+	"additional_flags=-DTOUCH_FILE_BIN=\"$::target_touch_file_bin\""]
 
     # WHO_FORKS says which of the main or other thread calls (v)fork.  The
     # thread that does not call (v)fork is the one who tries to step.


More information about the Gdb-cvs mailing list