1 # Copyright (C) 2008-2020 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. 17 # It tests basic Guile features. 18 19 load_lib gdb-guile.exp 20 21 # Start with a fresh gdb. 22 gdb_exit 23 gdb_start 24 gdb_reinitialize_dir $srcdir/$subdir 25 26 # Do this instead of the skip_guile_check. 27 # We want to do some tests when Guile is not present. 28 gdb_test_multiple "guile (display 23) (newline)" "verify guile support" { 29 -re "Undefined command.*$gdb_prompt $" { 30 unsupported "guile not supported." 31 return 32 } 33 -re "not supported.*$gdb_prompt $" { 34 unsupported "guile support is disabled" 35 36 # If Guile is not supported, verify that sourcing a guile script 37 # causes an error. 38 gdb_test "source $srcdir/$subdir/source2.scm" \ 39 "Error in sourced command file:.*" \ 40 "source source2.scm when guile disabled" 41 42 # Verify multi-line guile commands cause an error. 43 gdb_test_multiline "multi-line guile command" \ 44 "guile" "" \ 45 "(print 23)" "" \ 46 "end" "not supported.*" 47 48 return 49 } 50 -re "$gdb_prompt $" {} 51 } 52 53 gdb_install_guile_utils 54 gdb_install_guile_module 55 56 gdb_test_multiline "multi-line guile command" \ 57 "guile" "" \ 58 "(print 23)" "" \ 59 "end" "= 23" 60 61 gdb_test_multiline "show guile command" \ 62 "define zzq" "Type commands for definition of .* just \"end\"\\.*" \ 63 "guile" "" \ 64 "(print 23)" "" \ 65 "end" "" \ 66 "end" "" \ 67 "show user zzq" "User command \"zzq\":.* guile.*\\(print 23\\).* end" 68 69 gdb_test "source $srcdir/$subdir/source2.scm" "yes" "source source2.scm" 70 71 gdb_test "source -s source2.scm" "yes" 72 73 gdb_test "guile (print (current-objfile))" "= #f" 74 gdb_test "guile (print (objfiles))" "= \\(\\)" 75 76 gdb_test_no_output \ 77 {guile (define x (execute "printf \"%d\", 23" #:to-string #t))} 78 gdb_test "guile (print x)" "= 23" 79 80 gdb_test_no_output "guile (define a (execute \"help\" #:to-string #t))" \ 81 "collect help from uiout" 82 83 gdb_test "guile (print a)" "= .*aliases -- User-defined aliases of other commands.*" \ 84 "verify help to uiout" 85