URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [gdb/] [testsuite/] [gdb.python/] [python.exp] - Rev 841
Compare with Previous | Blame | View Log
# Copyright (C) 2008, 2009, 2010 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 the mechanism# exposing values to Python.if $tracelevel then {strace $tracelevel}# Start with a fresh gdb.gdb_exitgdb_startgdb_reinitialize_dir $srcdir/$subdirgdb_test_multiple "python print 23" "verify python support" {-re "not supported.*$gdb_prompt $" {unsupported "python support is disabled"# If Python is not supported, verify that sourcing a python script# causes an error.gdb_test "source $srcdir/$subdir/source2.py" "Error in sourced command file:.*"return -1}-re "$gdb_prompt $" {}}# Usage: gdb_py_test_multiple NAME INPUT RESULT {INPUT RESULT}...# Run a test named NAME, consisting of multiple lines of input.# After each input line INPUT, search for result line RESULT.# Succeed if all results are seen; fail otherwise.proc gdb_py_test_multiple {name args} {global gdb_promptforeach {input result} $args {if {[gdb_test_multiple $input "$name - $input" {-re "\[\r\n\]*($result)\[\r\n\]+($gdb_prompt | *>)$" {pass "$name - $input"}}]} {return 1}}return 0}gdb_py_test_multiple "multi-line python command" \"python" "" \"print 23" "" \"end" "23"gdb_py_test_multiple "show python command" \"define zzq" "Type commands for definition of .* just \"end\"\\.*" \"python" "" \"print 23" "" \"end" "" \"end" "" \"show user zzq" "User command \"zzq\":.* python.*print 23.* end"gdb_py_test_multiple "indented multi-line python command" \"python" "" \"def foo ():" "" \" print 'hello, world!'" "" \"foo ()" "" \"end" "hello, world!"gdb_test "source $srcdir/$subdir/source2.py" "yes"gdb_test "python print gdb.current_objfile()" "None"gdb_test "python print gdb.objfiles()" "\\\[\\\]"# Test http://bugs.python.org/issue4434 workaround in configure.acgdb_test "python import itertools; print 'IMPOR'+'TED'" "IMPORTED" "pythonX.Y/lib-dynload/*.so"gdb_test_no_output \"python x = gdb.execute('printf \"%d\", 23', to_string = True)"gdb_test "python print x" "23"# Test (no) pagination of the executed command.gdb_test "show height" {Number of lines gdb thinks are in a page is unlimited\.}set lines 10gdb_test_no_output "set height $lines"set test "verify pagination beforehand"gdb_test_multiple "python print \"\\n\" * $lines" $test {-re "---Type <return> to continue, or q <return> to quit---$" {pass $test}}gdb_test "q" "Quit" "verify pagination beforehand: q"gdb_test "python if gdb.execute('python print \"\\\\n\" * $lines', to_string=True) == \"\\n\" * [expr $lines + 1]: print \"yes\"" "yes" "gdb.execute does not page"set test "verify pagination afterwards"gdb_test_multiple "python print \"\\n\" * $lines" $test {-re "---Type <return> to continue, or q <return> to quit---$" {pass $test}}gdb_test "q" "Quit" "verify pagination afterwards: q"
