# Copyright 2025 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 . # Check that the 'Starting program' message is correctly flushed to # the TUI terminal as soon as it is available. require allow_tui_tests require target_can_use_run_cmd tuiterm_env standard_testfile if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} { return -1 } Term::clean_restart 24 80 $testfile if {![Term::enter_tui]} { unsupported "TUI not supported" return } # Pick a name for a marker file, and ensure it doesn't exist. set marker_file [standard_output_file "marker"] file delete $marker_file # Run the inferior, which will create MARKER_FILE. send_gdb "run \"$marker_file\"\n" # Spin until MARKER_FILE appears. while { ! [file exists $marker_file] } { sleep 1 } # We now know that the inferior has started, and that the 'Starting # program: ' string should have been printed to the terminal. Don't # use Term::wait_for here as there will be no prompt after the # 'Starting program' message. gdb_assert {[Term::wait_for_region_contents 0 16 80 7 "Starting program: "]} \ "starting program message has appeared" # Delete MARKER_FILE. This will cause the inferior to exit. file delete $marker_file # Now wait for the prompt, and check that the inferior exited message # appeared. gdb_assert {[Term::wait_for ""]} \ "wait for prompt after inferior exits" Term::check_region_contents \ "check for inferior exited message" \ 0 16 80 8 \ "\\\[Inferior $decimal \[^\r\n\]+ exited normally\\\]"