# Copyright 2002, 2003, 2004, 2005 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 2 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  

# This file tests that GDB's console can be accessed via the MI.
# Specifically, we are testing the "interpreter-exec" command and that
# the commands that are executed via this command are properly executed.
# Console commands executed via MI should use MI output wrappers, MI event
# handlers, etc.

load_lib mi-support.exp
set MIFLAGS "-i=mi"

gdb_exit
if [mi_gdb_start] {
    continue
}

set console console-quoted
set testfile "basics"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

mi_gdb_reinitialize_dir $srcdir/$subdir

mi_gdb_test "-interpreter-exec" \
  {\^error,msg="mi_cmd_interpreter_exec: Usage: -interpreter-exec interp command"} \
  "-interpreter-exec with no arguments"

mi_gdb_test "-interpreter-exec $console" \
  {\^error,msg="mi_cmd_interpreter_exec: Usage: -interpreter-exec interp command"} \
  "-interpreter-exec with one argument"

mi_gdb_test "-interpreter-exec bogus command" \
  {\^error,msg="mi_cmd_interpreter_exec: could not find interpreter \\\"bogus\\\""} \
  "-interpreter-exec with bogus interpreter"

mi_gdb_test "-interpreter-exec $console bogus" \
  {\^error,msg="Undefined command: \\\"bogus\\\"\.  Try \\\"help\\\"\."} \
  "-interpreter-exec $console bogus"

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "-interpreter-exec $console \"file $binfile\"" \
#   {(=.*)+\^done} \
#   "-interpreter-exec $console \"file \$binfile\""
mi_gdb_test "-interpreter-exec $console \"file $binfile\"" \
  {\^done} \
  "-interpreter-exec $console \"file \$binfile\""

mi_run_to_main

set line_main_head   [gdb_get_line_number "main ("]
set line_main_body   [expr $line_main_head + 2]
set line_main_hello  [gdb_get_line_number "Hello, World!"]
set line_main_return [expr $line_main_hello + 2]

mi_gdb_test "-interpreter-exec $console \"set args foobar\"" \
  {\^done} \
  "-interpreter-exec $console \"set args foobar\""

mi_gdb_test "-interpreter-exec $console \"show args\"" \
  {\~"Argument list to give program being debugged when it is started is \\\"foobar\\\"\.\\n".*\^done} \
  "-interpreter-exec $console \"show args\""

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "-interpreter-exec $console \"break callee4\"" \
#   {(&.*)*.*~"Breakpoint 2 at.*\\n".*=breakpoint-create,number="2".*\^done} \
#   "-interpreter-exec $console \"break callee4\""
mi_gdb_test "-interpreter-exec $console \"break callee4\"" \
  {(&.*)*.*~"Breakpoint 2 at.*\\n".*\^done.*} \
  "-interpreter-exec $console \"break callee4\""

mi_gdb_test "-interpreter-exec $console \"info break\"" \
  {\~"Num[ \t]*Type[ \t]*Disp[ \t]*Enb[ \t]*Address[ \t]*What\\n".*~"2[ \t]*breakpoint[ \t]*keep[ \t]*y[ \t]*0x[0-9A-Fa-f]+[ \t]*in callee4 at .*basics.c:[0-9]+\\n".*\^done} \
  "-interpreter-exec $console \"info break\""

mi_gdb_test "-interpreter-exec $console \"set listsize 1\"" \
  {\^done} \
  "-interpreter-exec $console \"set listsize 1\""

# {.*\~"$line_main_body[ \t(\\t)]*callee1.*\\n".*\^done }
mi_gdb_test "-interpreter-exec $console \"list\"" \
  ".*\~\"$line_main_body\[\\\\t \]*callee1.*;\\\\n\".*\\^done" \
  "-interpreter-exec $console \"list\""

# # NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "-exec-continue" \
#    {.*\*stopped,reason="breakpoint-hit",.*func="callee4".*file=".*basics.c",fullname="${fullname_syntax}${srcfile}",line="8"\}} \
#    "-interpreter-exec console \"continue to callee4\""
send_gdb "999-exec-continue\n"
gdb_expect {
    -re "999\\^running\[\r\n\]+$mi_gdb_prompt.*999\\*stopped,reason=.breakpoint-hit.*$mi_gdb_prompt$" {
	pass "continue to callee4"
    }
    timeout {
	fail "continue to callee4 (timeout)"
    }
}

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "100-interpreter-exec $console \"delete 2\"" \
#   {.*=breakpoint-delete,number=\"2\".*\^done} \
#   "-interpreter-exec $console \"delete 2\""
mi_gdb_test "100-interpreter-exec $console \"delete 2\"" \
  {100\^done.*} \
  "-interpreter-exec $console \"delete 2\""

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "200-interpreter-exec $console \"up\"" \
#   {.*=selected-frame-level-changed,level="1".*\^done} \
#   "-interpreter-exec $console \"up\""
mi_gdb_test "200-interpreter-exec $console \"up\"" \
  {200\^done.*} \
  "-interpreter-exec $console \"up\""

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "300-interpreter-exec $console \"down\"" \
#   {.*=selected-frame-level-changed,level="0".*\^done} \
#   "-interpreter-exec $console \"down\""
mi_gdb_test "300-interpreter-exec $console \"down\"" \
  {300\^done.*} \
  "-interpreter-exec $console \"down\""

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "-interpreter-exec $console \"frame 2\"" \
#   {.*=selected-frame-level-changed,level="2".*\^done} \
#   "-interpreter-exec $console \"frame 2\""
mi_gdb_test "400-interpreter-exec $console \"frame 2\"" \
  {400\^done.*} \
  "-interpreter-exec $console \"frame 2\""

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "-stack-select-frame 0" \
#   {.*=selected-frame-level-changed,level="0".*\^done} \
#   "-stack-select-frame 0"
mi_gdb_test "500-stack-select-frame 0" \
  {500\^done} \
  "-stack-select-frame 0"

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "-break-insert -t basics.c:$line_main_hello" \
#   {.*=breakpoint-create,number="3".*\^done} \
#   "-break-insert -t basics.c:\$line_main_hello"
mi_gdb_test "600-break-insert -t basics.c:$line_main_hello" \
	{600\^done,bkpt=.number="3",type="breakpoint".*\}} \
	"-break-insert -t basics.c:\$line_main_hello"

# mi_gdb_test "-exec-continue" \
#   {.*\*stopped.*,file=".*basics.c",fullname="${fullname_syntax}${srcfile}",line="$line_main_hello"\}} \
#   "-exec-continue to line \$line_main_hello"
send_gdb "700-exec-continue\n"
# APPLE LOCAL [breakpoint hit]: our output is different than FSF output..
gdb_expect {
    -re "700\\^running\[\r\n\]+$mi_gdb_prompt.*\\*stopped.*,reason=\"breakpoint-hit\",commands=\"no\",times=\"1\",bkptno=\"3\",thread-id=\"1\".*$mi_gdb_prompt$" {
	pass "-exec-continue to line \$line_main_hello"
    }
    timeout {
	fail "-exec-continue to line \$line_main_hello"
    }
}

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "-exec-next" \
#   {.*\*stopped,reason="end-stepping-range",.*,file=".*basics.c",fullname="${fullname_syntax}${srcfile}",line="$line_main_return"\}} \
#   "-exec-next to line \$line_main_return"
# APPLE LOCAL [stopped]: Our stopped message is pretty different from the FSF.
send_gdb "800-exec-next\n"
gdb_expect {
    -re "800\\^running\[\r\n\]+$mi_gdb_prompt.*\\*stopped,reason=.end-stepping-range.*,thread-id=\"1\".*$mi_gdb_prompt$" {
	pass "-exec-next to line \$line_main_return"
    }
    timeout {
	fail "-exec-next to line \$line_main_return"
    }
}

mi_gdb_test "-interpreter-exec $console \"list\"" \
  "\~\"$line_main_return\[\\\\t ]*return 0;\\\\n\".*\\^done" \
  "-interpreter-exec $console \"list\" at basics.c:$line_main_return"

mi_gdb_test "-interpreter-exec $console \"help set args\"" \
  {\~"Set argument list to give program being debugged when it is started\.\\nFollow this command with any number of args, to be passed to the program\.".*\^done} \
  "-interpreter-exec $console \"help set args\""

# NOTE: cagney/2003-02-03: Not yet.
# mi_gdb_test "-interpreter-exec $console \"set \$pc=0x0\"" \
#   {.*=target-changed.*\^done} \
#   "-interpreter-exec $console \"set \$pc=0x0\""
mi_gdb_test "888-interpreter-exec $console \"set \$pc=0x0\"" \
  {888\^done.*} \
  "-interpreter-exec $console \"set \$pc=0x0\""

#mi_gdb_test "-interpreter-exec $console \"\"" \
  {} \
  "-interpreter-exec $console \"\""

mi_gdb_exit
return 0
