# Copyright (C) 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 inferiors to Python.

if $tracelevel then {
    strace $tracelevel
}

load_lib gdb-python.exp

set testfile "py-inferior"
set srcfile ${testfile}.c
if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
    return -1
}

# Start with a fresh gdb.
clean_restart ${testfile}

# 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 {
    fail "Can't run to main"
    return 0
}

runto [gdb_get_line_number "Break here."]

# Test basic gdb.Inferior attributes and methods.

gdb_py_test_silent_cmd "python inferiors = gdb.inferiors ()" "get inferiors list" 1
gdb_test "python print inferiors" "\\(<gdb.Inferior object at 0x\[\[:xdigit:\]\]+>,\\)" "verify inferiors list"
gdb_py_test_silent_cmd "python i0 = inferiors\[0\]" "get first inferior" 0

gdb_test "python print 'result =', i0 == inferiors\[0\]" " = True" "test equality comparison (true)"
gdb_test "python print 'result =', i0.num" " = \[0-9\]+" "test Inferior.num"
gdb_test "python print 'result =', i0.pid" " = \[0-9\]+" "test Inferior.pid"
gdb_test "python print 'result =', i0.was_attached" " = False" "test Inferior.was_attached"
gdb_test "python print i0.threads ()" "\\(<gdb.InferiorThread object at 0x\[\[:xdigit:\]\]+>,\\)" "test Inferior.threads"

# Test memory read and write operations.

gdb_py_test_silent_cmd "python addr = gdb.selected_frame ().read_var ('str')" \
  "read str address" 0
gdb_py_test_silent_cmd "python str = gdb.inferiors()\[0\].read_memory (addr, 5)" \
  "read str contents" 1
gdb_py_test_silent_cmd "python str\[1\] = 'a'" "change str" 0
gdb_py_test_silent_cmd "python gdb.inferiors()\[0\].write_memory (addr, str)" \
  "write str" 1
gdb_test "print str" " = 0x\[\[:xdigit:\]\]+ \"hallo, testsuite\"" \
  "ensure str was changed in the inferior"

# Test memory search.

set hex_number {0x[0-9a-fA-F][0-9a-fA-F]*}
set dec_number {[0-9]+}
set history_prefix {[$][0-9]* = }
set newline {[\r\n]+}
set pattern_not_found "${newline}.None"
set one_pattern_found "${newline}.${dec_number}"

# Test string pattern.

gdb_test "set *(int32_t*) &int8_search_buf\[10\] = 0x61616161" "" ""
gdb_test "py search_buf = gdb.selected_frame ().read_var ('int8_search_buf')" "" ""
gdb_test "py start_addr = search_buf.address" "" ""
gdb_test "py length = search_buf.type.sizeof" "" ""

gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, length, 'aaa')" \
  "${one_pattern_found}" "find string pattern"

# Test not finding pattern because search range too small, with
# potential find at the edge of the range.

gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 10+3, 'aaaa')" \
  "${pattern_not_found}" "pattern not found at end of range"

# Increase the search range by 1 and we should find the pattern.

gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 10+3+1, 'aaa')" \
  "${one_pattern_found}" "pattern found at end of range"

# Import struct to pack the following patterns.
gdb_test "py from struct import *" "" ""

# Test 16-bit pattern.

gdb_test "set int16_search_buf\[10\] = 0x1234" "" ""
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('${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"

# Test 32-bit pattern.

gdb_test "set int32_search_buf\[10\] = 0x12345678" "" ""
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('${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"

# Test 64-bit pattern.

gdb_test "set int64_search_buf\[10\] = 0xfedcba9876543210LL" "" ""
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('${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"

# Test mixed-sized patterns.

gdb_test "set *(int8_t*) &search_buf\[10\] = 0x62" "" ""
gdb_test "set *(int16_t*) &search_buf\[11\] = 0x6363" "" ""
gdb_test "set *(int32_t*) &search_buf\[13\] = 0x64646464" "" ""
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('${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 "py print gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern2)" \
    "${one_pattern_found}" "find mixed-sized pattern"
gdb_test "py print gdb.inferiors()\[0\].search_memory (start_addr, 100, pattern3)" \
    "${one_pattern_found}" "find mixed-sized pattern"

# Test search spanning a large range, in the particular case of native
# targets, test the search spanning multiple chunks.
# Remote targets may implement the search differently.

set CHUNK_SIZE 16000 ;

gdb_test "set *(int32_t*) &search_buf\[0*${CHUNK_SIZE}+100\] = 0x12345678" "" ""
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('${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"
gdb_test "py second = gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" "" ""
gdb_test "py print second" "${one_pattern_found}" "search spanning large range 2nd result"
gdb_test "py start_addr = second + 1"
gdb_test "py third = gdb.inferiors()\[0\].search_memory (start_addr, length, pattern)" "" ""
gdb_test "py print third" "${pattern_not_found}" "search spanning large range 3rd result"

# For native targets, test a pattern straddling a chunk boundary.

if [isnative] {
    gdb_test "set *(int32_t*) &search_buf\[${CHUNK_SIZE}-1\] = 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"
}
