# Skip all tests if Python scripting is not enabled.
if { [skip_python_tests] } { continue }
+gdb_test_multiple "show endian" "getting target endian" {
+ -re ".*little endian.*$gdb_prompt $" {
+ set python_pack_char "<"
+ # pass silently
+ }
+ -re ".*big endian.*$gdb_prompt $" {
+ set python_pack_char ">"
+ # pass silently
+ }
+}
+
# The following tests require execution.
if ![runto_main] then {
gdb_test "py search_buf = gdb.selected_frame ().read_var ('int16_search_buf')" "" ""
gdb_test "py start_addr = search_buf.address" "" ""
gdb_test "py length = search_buf.type.sizeof" "" ""
-gdb_test "py pattern = pack('H',0x1234)" "" \
+gdb_test "py pattern = pack('${python_pack_char}H',0x1234)" "" \
gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" \
"${one_pattern_found}" "find 16-bit pattern, with value pattern"
gdb_test "py search_buf = gdb.selected_frame ().read_var ('int32_search_buf')" "" ""
gdb_test "py start_addr = search_buf.address" "" ""
gdb_test "py length = search_buf.type.sizeof" "" ""
-gdb_test "py pattern = pack('I',0x12345678)" "" \
+gdb_test "py pattern = pack('${python_pack_char}I',0x12345678)" "" \
gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" \
"${one_pattern_found}" "find 32-bit pattern, with python pattern"
gdb_test "py search_buf = gdb.selected_frame ().read_var ('int64_search_buf')" "" ""
gdb_test "py start_addr = search_buf.address" "" ""
gdb_test "py length = search_buf.type.sizeof" "" ""
-gdb_test "py pattern = pack('Q', 0xfedcba9876543210)" "" ""
+gdb_test "py pattern = pack('${python_pack_char}Q', 0xfedcba9876543210)" "" ""
gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" \
"${one_pattern_found}" "find 64-bit pattern, with value pattern"
gdb_test "py search_buf = gdb.selected_frame ().read_var ('search_buf')" "" ""
gdb_test "py start_addr = search_buf\[0\].address" "" ""
gdb_test "py pattern1 = pack('B', 0x62)" "" ""
-gdb_test "py pattern2 = pack('H', 0x6363)" "" ""
-gdb_test "py pattern3 = pack('I', 0x64646464)" "" ""
+gdb_test "py pattern2 = pack('${python_pack_char}H', 0x6363)" "" ""
+gdb_test "py pattern3 = pack('${python_pack_char}I', 0x64646464)" "" ""
gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern1)" \
"${one_pattern_found}" "find mixed-sized pattern"
gdb_test "set *(int32_t*) &search_buf\[1*${CHUNK_SIZE}+100\] = 0x12345678" "" ""
gdb_test "py start_addr = gdb.selected_frame ().read_var ('search_buf')" "" ""
gdb_test "py length = gdb.selected_frame ().read_var ('search_buf_size')" "" ""
-gdb_test "py pattern = pack('I', 0x12345678)" "" ""
+gdb_test "py pattern = pack('${python_pack_char}I', 0x12345678)" "" ""
gdb_test "py first = gdb.inferiors()\[0\].search_memory (start_addr,length, pattern)" "" ""
gdb_test "py print first" "${one_pattern_found}" "search spanning large range 1st result"
gdb_test "py start_addr = first + 1"
if [isnative] {
gdb_test "set *(int32_t*) &search_buf\[${CHUNK_SIZE}-1\] = 0xfdb97531" "" ""
- gdb_test "py pattern = pack('I', 0xfdb97531)" "" ""
+ gdb_test "py pattern = pack('${python_pack_char}I', 0xfdb97531)" "" ""
gdb_test "py start_addr = gdb.selected_frame ().read_var ('search_buf')" "" ""
gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" \
"${one_pattern_found}" "find pattern straddling chunk boundary"