mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-17 21:03:55 +08:00
Allow more Python scalar conversions
PR python/18352 points out that the gdb Python code can't convert an integer-valued gdb.Value to a Python float. While writing the test I noticed that, similarly, converting integer gdb.Values to float does not work. However, all of these cases seem reasonable. gdb/ChangeLog 2018-09-23 Tom Tromey <tom@tromey.com> PR python/18352; * python/py-value.c (valpy_float): Allow conversions from int or char. (valpy_int, valpy_long): Allow conversions from float. gdb/testsuite/ChangeLog 2018-09-23 Tom Tromey <tom@tromey.com> PR python/18352; * gdb.python/py-value.exp (test_float_conversion): New proc. Use it.
This commit is contained in:
@ -483,6 +483,18 @@ proc test_value_hash {} {
|
||||
gdb_test "python print (one.__hash__() == hash(one))" "True" "test inbuilt hash"
|
||||
}
|
||||
|
||||
proc test_float_conversion {} {
|
||||
global gdb_py_is_py3k
|
||||
gdb_test "python print(int(gdb.Value(0)))" "0"
|
||||
gdb_test "python print(int(gdb.Value(2.5)))" "2"
|
||||
if {!$gdb_py_is_py3k} {
|
||||
gdb_test "python print(long(gdb.Value(0)))" "0"
|
||||
gdb_test "python print(long(gdb.Value(2.5)))" "2"
|
||||
}
|
||||
gdb_test "python print(float(gdb.Value(2.5)))" "2\\.5"
|
||||
gdb_test "python print(float(gdb.Value(0)))" "0\\.0"
|
||||
}
|
||||
|
||||
# Build C version of executable. C++ is built later.
|
||||
if { [build_inferior "${binfile}" "c"] < 0 } {
|
||||
return -1
|
||||
@ -501,6 +513,7 @@ test_value_compare
|
||||
test_objfiles
|
||||
test_parse_and_eval
|
||||
test_value_hash
|
||||
test_float_conversion
|
||||
|
||||
# The following tests require execution.
|
||||
|
||||
|
Reference in New Issue
Block a user