# Copyright 2000-2005, 2007-2012 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/>.

#
# Test essential Machine interface (MI) operations
#
# Verify that stack commands work.

# The goal is not to test gdb functionality, which is done by other tests,
# but to verify the correct output response to MI operations.
#

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

gdb_exit
if [mi_gdb_start] {
    continue
}

standard_testfile mi-stack.c

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
     untested mi2-stack.exp
     return -1
}

mi_delete_breakpoints
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}

proc test_stack_frame_listing {} {
    global mi_gdb_prompt
    global hex fullname_syntax srcfile

    set line_callee4_head [gdb_get_line_number "callee4 ("]
    set line_callee4_body [expr $line_callee4_head + 2]

    # Obtain a stack trace
    # Tests:
    # -stack-list-frames
    # -stack-list-frames 1 1
    # -stack-list-frames 1 3
    # -stack-info-frame

    mi_gdb_test "231-stack-list-frames" \
	    "231\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\},frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\},frame=\{level=\"4\",addr=\"$hex\",func=\"main\",.*\}\\\]" \
                "stack frame listing"
    mi_gdb_test "232-stack-list-frames 1 1" \
	    "232\\^done,stack=\\\[frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\}\\\]" \
                "stack frame listing 1 1"
    mi_gdb_test "233-stack-list-frames 1 3" \
	    "233\\^done,stack=\\\[frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\}\\\]" \
                "stack frame listing 1 3"

    mi_gdb_test "234-stack-list-frames 1" \
	    "234\\^error,msg=\"-stack-list-frames: Usage.*FRAME_LOW FRAME_HIGH.*\"" \
	    "stack frame listing wrong"

    mi_gdb_test "235-stack-info-frame" \
            "235\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\}" \
	       "selected frame listing"

    mi_gdb_test "236-stack-list-frames 1 300" \
	    "236\\^done,stack=\\\[frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\}\\\]" \
                "stack frame listing 1 300"
}

proc test_stack_args_listing {} {
    global mi_gdb_prompt
    global hex

    # Obtain lists for args for the stack frames
    # Tests:
    # -stack-list-arguments 0
    # -stack-list-arguments 0 1 1
    # -stack-list-arguments 0 1 3
    # -stack-list-arguments 1
    # -stack-list-arguments 1 1 1
    # -stack-list-arguments 1 1 3
    # -stack-list-arguments 

    mi_gdb_test "231-stack-list-arguments 0" \
	    "231\\^done,stack-args=\\\[frame=\{level=\"0\",args=\\\[\\\]\},frame=\{level=\"1\",args=\\\[name=\"strarg\"\\\]\},frame=\{level=\"2\",args=\\\[name=\"intarg\",name=\"strarg\"\\\]\},frame=\{level=\"3\",args=\\\[name=\"intarg\",name=\"strarg\",name=\"fltarg\"\\\]\},frame=\{level=\"4\",args=\\\[\\\]\}\\\]" \
                "stack args listing 0"

    mi_gdb_test "232-stack-list-arguments 0 1 1" \
	    "232\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[name=\"strarg\"\\\]\}\\\]" \
                "stack args listing 0 1 1"

    mi_gdb_test "233-stack-list-arguments 0 1 3" \
	    "233\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[name=\"strarg\"\\\]\},frame=\{level=\"2\",args=\\\[name=\"intarg\",name=\"strarg\"\\\]\},frame=\{level=\"3\",args=\\\[name=\"intarg\",name=\"strarg\",name=\"fltarg\"\\\]\}\\\]" \
                "stack args listing 0 1 3"

    mi_gdb_test "231-stack-list-arguments 1" \
	    "231\\^done,stack-args=\\\[frame=\{level=\"0\",args=\\\[\\\]\},frame=\{level=\"1\",args=\\\[\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\},frame=\{level=\"2\",args=\\\[\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\},frame=\{level=\"3\",args=\\\[\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\},\{name=\"fltarg\",value=\"3.5\"\}\\\]\},frame=\{level=\"4\",args=\\\[\\\]\}\\\]" \
                "stack args listing 1"

    mi_gdb_test "232-stack-list-arguments 1 1 1" \
	    "232\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\}\\\]" \
                "stack args listing 1 1 1"

    mi_gdb_test "233-stack-list-arguments 1 1 3" \
	    "233\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\},frame=\{level=\"2\",args=\\\[\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\},frame=\{level=\"3\",args=\\\[\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\},\{name=\"fltarg\",value=\"3.5\"\}\\\]\}\\\]" \
                "stack args listing 1 1 3"

    mi_gdb_test "234-stack-list-arguments" \
	    "234\\^error,msg=\"-stack-list-arguments: Usage.*PRINT_VALUES.*FRAME_LOW FRAME_HIGH.*\"" \
	    "stack args listing wrong"

    mi_gdb_test "235-stack-list-arguments 1 1 300" \
	    "235\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\},frame=\{level=\"2\",args=\\\[\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\},frame=\{level=\"3\",args=\\\[\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\},\{name=\"fltarg\",value=\"3.5\"\}\\\]\},frame=\{level=\"4\",args=\\\[\\\]\}\\\]" \
                "stack args listing 1 1 300"
}

proc test_stack_info_depth {} {
    global mi_gdb_prompt
    global hex

    # Obtain depth of stack
    # Tests:
    # -stack-info-depth
    # -stack-info-depth 3
    # -stack-info-depth 99

    mi_gdb_test "231-stack-info-depth" \
	    "231\\^done,depth=\"5\"" \
                "stack info-depth"

    mi_gdb_test "231-stack-info-depth 3" \
	    "231\\^done,depth=\"3\"" \
                "stack info-depth 3"

    mi_gdb_test "231-stack-info-depth 99" \
	    "231\\^done,depth=\"5\"" \
                "stack info-depth 99"

    mi_gdb_test "231-stack-info-depth 99 99" \
	    "231\\^error,msg=\"-stack-info-depth: Usage: .MAX_DEPTH.\"" \
                "stack info-depth wrong usage"
}

proc test_stack_locals_listing {} {
    global mi_gdb_prompt
    global hex fullname_syntax srcfile

    # Obtain lists for locals for the stack frames
    # Tests:
    # -stack-list-locals 0 (--no-values)
    # -stack-list-locals 1 (--all-values)
    # -stack-list-locals 2 (--simple-values)
    # -stack-list-arguments 

    mi_gdb_test "232-stack-list-locals 0" \
  "232\\^done,locals=\\\[name=\"A\",name=\"B\",name=\"C\",name=\"D\"\\\]" \
                "stack locals listing of names"

set line_callee4_return_0 [gdb_get_line_number "return 0;"]

# step until A, B, C, D have some reasonable values.
mi_execute_to "exec-next 4" "end-stepping-range" "callee4" "" ".*${srcfile}" $line_callee4_return_0 ""\
    "next's in callee4"

    mi_gdb_test "232-stack-list-locals 1" \
    "232\\^done,locals=\\\[\{name=\"A\",value=\"1\"\},\{name=\"B\",value=\"2\"\},\{name=\"C\",value=\"3\"\},\{name=\"D\",value=\"\\{0, 1, 2\\}\"\}\\\]" \
                "stack locals listing of names and values"

    mi_gdb_test "232-stack-list-locals 2" \
	    "232\\^done,locals=\\\[\{name=\"A\",type=\"int\",value=\"1\"\},\{name=\"B\",type=\"int\",value=\"2\"\},\{name=\"C\",type=\"int\",value=\"3\"\},\{name=\"D\",type=\"int \\\[3\\\]\"\}\\\]" \
  "stack locals listing, simple types: names and values, complex type: names and types"

    mi_gdb_test "234-stack-list-locals" \
	    "234\\^error,msg=\"-stack-list-locals: Usage.*PRINT_VALUES.*\"" \
	    "stack locals listing wrong"

    mi_gdb_test "232-stack-select-frame 1" \
	    "232\\^done" \
                "stack select frame 1"

    mi_gdb_test "232-stack-list-locals 1" \
	    "232\\^done,locals=\\\[\\\]" \
                "stack locals listing for new frame"

    mi_gdb_test "232-stack-list-locals 1" \
	    "232\\^done,locals=\\\[\\\]" \
                "stack locals for same frame (level 1)"
}

mi_runto callee4
test_stack_frame_listing
test_stack_args_listing
test_stack_locals_listing
test_stack_info_depth


mi_gdb_exit
return 0
