diff options
author | Tom de Vries <tdevries@suse.de> | 2023-03-21 13:52:57 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2023-03-21 13:52:57 +0100 |
commit | 827462caad3e8c430f546c12476dff4f6d78e0f8 (patch) | |
tree | eef3366466985e2e6ae3e299bb3cf2b6fe39de3c | |
parent | 41246bbd77eda0a76cb84839f3eae1b33958171b (diff) | |
download | binutils-827462caad3e8c430f546c12476dff4f6d78e0f8.zip binutils-827462caad3e8c430f546c12476dff4f6d78e0f8.tar.gz binutils-827462caad3e8c430f546c12476dff4f6d78e0f8.tar.bz2 |
[gdb/testsuite] Check remote_exec results in board files
Make sure the result of each remote_exec in gdb/testsuite/boards/*.exp is
checked.
Tested on x86_64-linux.
-rw-r--r-- | gdb/testsuite/boards/local-remote-host.exp | 45 | ||||
-rw-r--r-- | gdb/testsuite/boards/remote-gdbserver-on-localhost.exp | 14 |
2 files changed, 36 insertions, 23 deletions
diff --git a/gdb/testsuite/boards/local-remote-host.exp b/gdb/testsuite/boards/local-remote-host.exp index 021b220..e8ac676 100644 --- a/gdb/testsuite/boards/local-remote-host.exp +++ b/gdb/testsuite/boards/local-remote-host.exp @@ -32,30 +32,39 @@ if { [info exists REMOTE_HOST_USERNAME] } { set_board_info username $env(USER) } -# Handle separate test account. -if { [board_info $board username] != $env(USER) } { - # We're pretending that some local user account is remote host. - # Make things a bit more realistic by restricting file permissions. - - # Make sure remote host can't see files on build. - remote_exec build "chmod go-rx $objdir" - - # Make sure build can't see files on remote host. We can't use - # remote_exec host, because we're in the middle of parsing the - # host board. - remote_exec build \ - "[board_info $board rsh_prog] \ - -l [board_info $board username] \ - [board_info $board hostname] \ - chmod go-rx ." -} - # The ssh key should be correctly set up that you ssh to localhost # without having to type password. set_board_info rsh_prog /usr/bin/ssh set_board_info rcp_prog /usr/bin/scp set_board_info file_transfer "rsh" +save_vars {rsh_cmd res} { + set rsh_cmd \ + [join \ + [list \ + [board_info $board rsh_prog] \ + -l [board_info $board username] \ + [board_info $board hostname]]] + + # Handle separate test account. + if { [board_info $board username] != $env(USER) } { + # We're pretending that some local user account is remote host. + # Make things a bit more realistic by restricting file permissions. + + # Make sure remote host can't see files on build. + set res [remote_exec build "chmod go-rx $objdir"] + if { [lindex $res 0] != 0 } { + error "Couldn't remove permissions for $objdir on build" + } + + # Make sure build can't see files on remote host. + set res [remote_exec build $rsh_cmd "chmod go-rx ."] + if { [lindex $res 0] != 0 } { + error "Couldn't remove permissions for . on host" + } + } +} + # Like standard_spawn, but force pseudo-tty allocation, with 'ssh -t'. proc ${board}_spawn { board cmd } { diff --git a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp index a38edac..6e3cbc2 100644 --- a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp +++ b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp @@ -51,12 +51,16 @@ save_vars {rsh_cmd res} { # Make things a bit more realistic by restricting file permissions. # Make sure remote target can't see files on build. - remote_exec build "chmod go-rx $objdir" + set res [remote_exec build "chmod go-rx $objdir"] + if { [lindex $res 0] != 0 } { + error "Couldn't remove permissions for $objdir on build" + } - # Make sure build can't see files on remote target. We can't use - # remote_exec target, because we're in the middle of parsing the - # target board. - remote_exec build $rsh_cmd "chmod go-rx ." + # Make sure build can't see files on remote target. + set res [remote_exec build $rsh_cmd "chmod go-rx ."] + if { [lindex $res 0] != 0 } { + error "Couldn't remove permissions for . on target" + } } # Set remotedir by default, to force remote_download target to give an |