1# Copyright (C) 2010-2015 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16# This file is part of the GDB testsuite. It tests automagic loading of 17# scripts specified in the .debug_gdb_scripts section. 18 19# This test can only be run on targets which support ELF and use gas. 20# For now pick a sampling of likely targets. 21if {![istarget *-*-linux*] 22 && ![istarget *-*-gnu*] 23 && ![istarget *-*-elf*] 24 && ![istarget *-*-openbsd*] 25 && ![istarget arm*-*-eabi*] 26 && ![istarget arm*-*-symbianelf*] 27 && ![istarget powerpc-*-eabi*]} { 28 verbose "Skipping py-section-script.exp because of lack of support." 29 return 30} 31 32standard_testfile 33 34# Make this available to gdb before the program starts, it is 35# automagically loaded by gdb. 36set remote_python_file [gdb_remote_download host \ 37 ${srcdir}/${subdir}/${testfile}.py] 38 39set quoted_name "\"$remote_python_file\"" 40 41if {[build_executable $testfile.exp $testfile $srcfile \ 42 [list debug additional_flags=-DSCRIPT_FILE=$quoted_name]] == -1} { 43 return -1 44} 45 46# Start with a fresh gdb. 47gdb_exit 48gdb_start 49 50# Skip all tests if Python scripting is not enabled. 51if { [skip_python_tests] } { continue } 52 53gdb_reinitialize_dir $srcdir/$subdir 54gdb_test_no_output "set auto-load safe-path ${remote_python_file}" "set auto-load safe-path" 55gdb_load ${binfile} 56 57# Verify gdb loaded the script. 58gdb_test "info auto-load python-scripts" "Yes.*${testfile}.py.*" 59# Again, with a regexp this time. 60gdb_test "info auto-load python-scripts ${testfile}" "Yes.*${testfile}.py.*" 61# Again, with a regexp that matches no scripts. 62gdb_test "info auto-load python-scripts no-script-matches-this" \ 63 "No auto-load scripts matching no-script-matches-this." 64 65if ![runto_main] { 66 perror "couldn't run to main" 67 return 68} 69 70gdb_test "b [gdb_get_line_number {break to inspect} ${testfile}.c ]" \ 71 ".*Breakpoint.*" 72gdb_test "continue" ".*Breakpoint.*" 73 74gdb_test "print ss" " = a=<1> b=<2>" 75