# Copyright 2023-2024 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 'sources' and 'loadedSources'. require allow_dap_tests load_lib dap-support.exp standard_testfile if {[build_executable ${testfile}.exp $testfile] == -1} { return } if {[dap_initialize] == ""} { return } if {[dap_launch $testfile stop_at_main 1] == ""} { return } proc do_tests {} { dap_wait_for_event_and_check "stopped at function breakpoint" stopped \ "body reason" breakpoint set obj [dap_check_request_and_response loadedSources loadedSources] if { $obj == "" } { return } set path "" foreach src [dict get [lindex $obj 0] body sources] { if {[file tail [dict get $src name]] == "sources.c"} { set path [dict get $src path] } } gdb_assert {$path != "" } "sources.c in loadedSources" if {$path == ""} { return } set obj [dap_check_request_and_response "get source" source \ [format {o source [o path [s %s]] \ sourceReference [i 0]} $path]] if { $obj == "" } { return } set text [dict get [lindex $obj 0] body content] gdb_assert {[string first "Distinguishing comment" $text] != -1} } do_tests dap_shutdown