# Copyright 2021-2023 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . */ # Test running a program from the GDB prompt and then detaching it, # with "set sysroot target:". Regression test for PR gdb/28080. # # It is assumed that it is only safe to tweak the sysroot on the # current board if it is currently either empty or already "target:". # If set to anything else, we skip the test. standard_testfile if {[prepare_for_testing "failed to prepare" ${binfile} ${srcfile}]} { return } gdb_test_multiple "show sysroot" "" { -wrap -re "The current system root is \"\"\\." { pass $gdb_test_name # Explicitly set target: sysroot. gdb_test_no_output "set sysroot target:" } -wrap -re "The current system root is \"target:\"\\." { pass $gdb_test_name # Nothing else to do. } -re "$gdb_prompt $" { pass $gdb_test_name # If testing with any other sysroot, we probably should not # mess with it. unsupported "sysroot is set" return } } if ![runto_main] { return } # With PR gdb/28080, this would crash GDB when testing with "target # remote". set escapedbinfile [string_to_regexp ${binfile}] gdb_test "detach" "Detaching from program: .*$escapedbinfile, .*"