gdb_test "py test_bool (gdb.Value (0))" "nay" "check evaluation of false integer value in expression"
- gdb_test "py test_bool (gdb.Value (5.2))" "yay" "check evaluation of true integer value in expression"
+ gdb_test "py test_bool (gdb.Value (5.2))" "yay" "check evaluation of true float value in expression"
- gdb_test "py test_bool (gdb.Value (0.0))" "nay" "check evaluation of false integer value in expression"
+ gdb_test "py test_bool (gdb.Value (0.0))" "nay" "check evaluation of false float value in expression"
}
proc test_value_compare {} {
global gdb_py_is_py3k
gdb_breakpoint [gdb_get_line_number "break to inspect struct and union"]
-
gdb_continue_to_breakpoint "break to inspect struct and union"
# Just get inferior variable s in the value history, available to python.
gdb_test "print s" " = {a = 3, b = 5}" ""
- gdb_py_test_silent_cmd "python s = gdb.history (0)" "get value from history" 1
+ gdb_py_test_silent_cmd "python s = gdb.history (0)" "get value s from history" 1
gdb_test "python print ('result = ' + str(s\['a'\]))" " = 3" "access element inside struct using 8-bit string name"
if { $gdb_py_is_py3k == 0 } {
} else {
gdb_test "python inval = gdb.parse_and_eval('*(int*)0')"
gdb_test "python print (inval.is_lazy)" "True"
- gdb_test "python inval2 = inval+1" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
- gdb_test "python inval.fetch_lazy ()" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
+ gdb_test "python inval2 = inval+1" \
+ "gdb.MemoryError: Cannot access memory at address 0x0.*" \
+ "$test, first test"
+ gdb_test "python inval.fetch_lazy ()" \
+ "gdb.MemoryError: Cannot access memory at address 0x0.*" \
+ "$test, second test"
}
set argc_value [get_integer_valueof "argc" 0]
gdb_test "python argc_lazy = gdb.parse_and_eval('argc')"
gdb_test "python argc_notlazy = gdb.parse_and_eval('argc')"
gdb_test "python argc_notlazy.fetch_lazy()"
- gdb_test "python print (argc_lazy.is_lazy)" "True"
+ gdb_test "python print (argc_lazy.is_lazy)" "True" \
+ "python print (argc_lazy.is_lazy) the first time"
gdb_test "python print (argc_notlazy.is_lazy)" "False"
gdb_test "print argc" " = $argc_value" "sanity check argc"
- gdb_test "python print (argc_lazy.is_lazy)" "\r\nTrue"
+ gdb_test "python print (argc_lazy.is_lazy)" "\r\nTrue" \
+ "python print (argc_lazy.is_lazy) the second time"
gdb_test_no_output "set argc=[expr $argc_value + 1]" "change argc"
gdb_test "python print (argc_notlazy)" "\r\n$argc_value"
gdb_test "python print (argc_lazy)" "\r\n[expr $argc_value + 1]"
# Test string fetches, both partial and whole.
gdb_test "print st" "\"divide et impera\""
- gdb_py_test_silent_cmd "python st = gdb.history (0)" "get value from history" 1
+ gdb_py_test_silent_cmd "python st = gdb.history (0)" "get value st from history" 1
gdb_test "python print (st.string ())" "divide et impera" "Test string with no length"
gdb_test "python print (st.string (length = -1))" "divide et impera" "test string (length = -1) is all of the string"
gdb_test "python print (st.string (length = 6))" "divide"
# Fetch a string that has embedded nulls.
gdb_test "print nullst" "\"divide\\\\000et\\\\000impera\".*"
- gdb_py_test_silent_cmd "python nullst = gdb.history (0)" "get value from history" 1
+ gdb_py_test_silent_cmd "python nullst = gdb.history (0)" "get value nullst from history" 1
gdb_test "python print (nullst.string ())" "divide" "test string to first null"
# Python cannot print strings that contain the null (\0) character.
# For the purposes of this test, use repr()
# Correct inferior call without arguments.
gdb_test "p/x fp1" " = $hex.*"
- gdb_py_test_silent_cmd "python fp1 = gdb.history (0)" "get value from history" 1
+ gdb_py_test_silent_cmd "python fp1 = gdb.history (0)" "get value fp1 from history" 1
gdb_test "python fp1 = fp1.dereference()" ""
gdb_test "python result = fp1()" ""
gdb_test "python print (result)" "void"
# Correct inferior call with arguments.
- gdb_test "p/x fp2" " = $hex.*"
- gdb_py_test_silent_cmd "python fp2 = gdb.history (0)" "get value from history" 1
+ gdb_test "p/x fp2" " = $hex.*" \
+ "print fp2 to place it into history"
+ gdb_py_test_silent_cmd "python fp2 = gdb.history (0)" "get value fp2 from history" 1
gdb_test "python fp2 = fp2.dereference()" ""
gdb_test "python result2 = fp2(10,20)" ""
gdb_test "python print (result2)" "30"
# Incorrect to call an int value.
gdb_test "p i" " = $decimal.*"
- gdb_py_test_silent_cmd "python i = gdb.history (0)" "get value from history" 1
+ gdb_py_test_silent_cmd "python i = gdb.history (0)" "get value i from history" 1
gdb_test "python result3 = i()" ".*Value is not callable.*"
# Incorrect number of arguments.
- gdb_test "p/x fp2" " = $hex.*"
- gdb_py_test_silent_cmd "python fp3 = gdb.history (0)" "get value from history" 1
+ gdb_test "p/x fp2" " = $hex.*" \
+ "print fp2 again to place it into history"
+ gdb_py_test_silent_cmd "python fp3 = gdb.history (0)" "get value fp3 from history" 1
gdb_test "python fp3 = fp3.dereference()" ""
gdb_test "python result2 = fp3(10)" ".*Too few arguments in function call.*"
}
}
gdb_breakpoint [gdb_get_line_number "break to inspect struct and union"]
- gdb_continue_to_breakpoint "break to inspect struct and union"
+ gdb_continue_to_breakpoint \
+ "break to inspect struct and union for subscript regression test"
gdb_py_test_silent_cmd "python intv = gdb.Value(1)" \
- "Create a value for subscript test" 1
+ "Create value intv for subscript test" 1
gdb_py_test_silent_cmd "python stringv = gdb.Value(\"foo\")" \
- "Create a value for subscript test" 1
+ "Create value stringv for subscript test" 1
# Try to access an int with a subscript. This should fail.
gdb_test "python print (intv)" "1" "baseline print of an int Python value"
# Try to access an int array via a pointer with a subscript. This should pass.
gdb_py_test_silent_cmd "print p" "Build pointer to array" 1
- gdb_py_test_silent_cmd "python pointer = gdb.history(0)" "" 1
+ gdb_py_test_silent_cmd "python pointer = gdb.history(0)" "fetch pointer" 0
gdb_test "python print (pointer\[0\])" "1" "access array via pointer with int subscript"
gdb_test "python print (pointer\[intv\])" "2" "access array via pointer with value subscript"
# Try to access a single dimension array with a subscript to the
# result. This should fail.
gdb_test "python print (pointer\[intv\]\[0\])" "gdb.error: Cannot subscript requested type.*" \
- "Attempt to access an integer with a subscript"
+ "Attempt to access a single dimension array with a two subscripts"
# Lastly, test subscript access to an array with multiple
# dimensions. This should pass.
gdb_py_test_silent_cmd "print {\"fu \",\"foo\",\"bar\"}" "Build array" 1
- gdb_py_test_silent_cmd "python marray = gdb.history(0)" "" 1
+ gdb_py_test_silent_cmd "python marray = gdb.history(0)" "fetch marray" 0
gdb_test "python print (marray\[1\]\[2\])" "o." "test multiple subscript"
}
"three = gdb.Value(3)" "" \
"vdict = {one:\"one str\",two:\"two str\",three:\"three str\"}" "" \
"end"
- gdb_test "python print (vdict\[one\])" "one str" "test dictionary hash"
- gdb_test "python print (vdict\[two\])" "two str" "test dictionary hash"
- gdb_test "python print (vdict\[three\])" "three str" "test dictionary hash"
+ gdb_test "python print (vdict\[one\])" "one str" "test dictionary hash for one"
+ gdb_test "python print (vdict\[two\])" "two str" "test dictionary hash for two"
+ gdb_test "python print (vdict\[three\])" "three str" "test dictionary hash for three"
gdb_test "python print (one.__hash__() == hash(one))" "True" "test inbuilt hash"
}