From 2562954ede66f32bff7d985e752b8052c2ae5775 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Thu, 9 Mar 2023 15:49:17 +0100 Subject: [PATCH] [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. --- .../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. -- 2.30.2