diff options
Diffstat (limited to 'gdb/testsuite/gdb.guile/guile.exp')
-rw-r--r-- | gdb/testsuite/gdb.guile/guile.exp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.guile/guile.exp b/gdb/testsuite/gdb.guile/guile.exp new file mode 100644 index 0000000..2a171fe --- /dev/null +++ b/gdb/testsuite/gdb.guile/guile.exp @@ -0,0 +1,77 @@ +# Copyright (C) 2008-2014 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 <http://www.gnu.org/licenses/>. + +# This file is part of the GDB testsuite. +# It tests basic Guile features. + +load_lib gdb-guile.exp + +# Start with a fresh gdb. +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir + +# Do this instead of the skip_guile_check. +# We want to do some tests when Guile is not present. +gdb_test_multiple "guile (display 23) (newline)" "verify guile support" { + -re "Undefined command.*$gdb_prompt $" { + unsupported "Guile not supported." + return + } + -re "not supported.*$gdb_prompt $" { + unsupported "guile support is disabled" + + # If Guile is not supported, verify that sourcing a guile script + # causes an error. + gdb_test "source $srcdir/$subdir/source2.scm" \ + "Error in sourced command file:.*" \ + "source source2.scm when guile disabled" + return + } + -re "$gdb_prompt $" {} +} + +gdb_install_guile_utils +gdb_install_guile_module + +gdb_test_multiline "multi-line guile command" \ + "guile" "" \ + "(print 23)" "" \ + "end" "= 23" + +gdb_test_multiline "show guile command" \ + "define zzq" "Type commands for definition of .* just \"end\"\\.*" \ + "guile" "" \ + "(print 23)" "" \ + "end" "" \ + "end" "" \ + "show user zzq" "User command \"zzq\":.* guile.*\\(print 23\\).* end" + +gdb_test "source $srcdir/$subdir/source2.scm" "yes" "source source2.scm" + +gdb_test "source -s source2.scm" "yes" "source -s source2.scm" + +gdb_test "guile (print (current-objfile))" "= #f" +gdb_test "guile (print (objfiles))" "= \\(\\)" + +gdb_test_no_output \ + {guile (define x (execute "printf \"%d\", 23" #:to-string #t))} +gdb_test "guile (print x)" "= 23" + +gdb_test_no_output "guile (define a (execute \"help\" #:to-string #t))" \ + "collect help from uiout" + +gdb_test "guile (print a)" "= .*aliases -- Aliases of other commands.*" \ + "verify help to uiout" |