# Copyright 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.  

#
# test running programs
#

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

gdb_exit
if [mi_gdb_start] {
    continue
}

set testfile "nested-inlines"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}

if ![istarget "i\[3-6\]86-apple-darwin*"] {
    verbose "Skipping x86 inlining tests."
    return
}

if [target_info exists darwin64] {
   verbose "i386 inlining tests not designed for x86-64, skipping." 
   return 
}

set additional_flags "additional_flags=-O3"
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug $additional_flags]] != "" } {
     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

if {$debug_default_format_is_dwarf == 0 } then {
        return;
}

mi_gdb_test "90-gdb-set auto-raise-load-levels 1" ".*90\\^done"  "Set auto-raise-load-levels"

mi_gdb_test "93-gdb-set env SHELL /bin/tcsh" "93\\^done" "Set env SHELL"

mi_gdb_test "95-gdb-set env NSUnbufferedIO YES" "95\\^done"  "Set env NSUnbufferedIO"

mi_gdb_test "97-gdb-set env DYLD_NEW_LOCAL_SHARED_REGIONS YES" "97\\^done"  "Set env DYLD_NEW_LOCAL_SHARED_REGIONS"

mi_gdb_test "100-gdb-set env DYLD_NO_FIX_PREBINDING YES" "100\\^done" "Set dnv DYLD_NO_FIX_PREBINDING"

mi_gdb_test "101-gdb-set env SECURITYSESSIONID 485830" "101\\^done"  "Set env SECURITYSESSIONID"

mi_gdb_test "105-gdb-set inferior-auto-start-cfm off" "105\\^done" "Set inferior-auto-start-cfm"

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

mi_gdb_test "117-exec-arguments" "117\\^done" "exec-arguments"

mi_gdb_test "118sharedlibrary apply-load-rules all" ".*118\\^done"  "sharedlibrary apply-load-rules all"

mi_gdb_test "119-mi-verify-command file-fix-file-is-grooved" "119\\^done,name=\"file-fix-file-is-grooved\",defined=\"true\",implemented=\"true\""  "verify file-fix-file-is-grooved"

mi_gdb_test "120-file-fix-file-is-grooved" "120\\^done,supported=\"1\",details=\"Yes grooved!\"" "file-fix-file-is-grooved"

mi_gdb_test "121-break-insert -l -1 -f  -s $binfile \"$srcfile:12\"" "121\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*$srcfile\",line=\"12\",shlib=\"$binfile\",times=\"0\"\}" "Set breakpoint at main"

send_gdb "123-exec-run\n"
gdb_expect {
    -re  ".*running\[\r\n]$gdb_prompt (\r\n=shlibs-added.*)*" {
    pass "Exec run"
    }
}

gdb_expect { -re ".*stopped.*$gdb_prompt" { pass "Stopped at first breakpoint" }
  -re "$gdb_prompt $" {
      fail "failed to hit first breakpoint"
  }
  timeout {
      fail "(timeout) failed to hit first breakpoint" 
  }
}

mi_gdb_test "125-pid-info" "125\\^done,process-id=\"$decimal\".*" "pid-info"

mi_gdb_test "126-thread-list-ids" "126\\^done,thread-ids={thread-id=\"1\"},number-of-threads=\"1\"" "thread-list-ids"

mi_gdb_test "127-mi-verify-command stack-list-frames-lite" "127\\^done,name=\"stack-list-frames-lite\",defined=\"true\",implemented=\"true\""  "Verify stack-list-frames-lite"

mi_gdb_test "0-thread-select 1" "0\\^done,new-thread-id=\"1\",frame=\{func=\"main\",args=\\\[\{name=\"argc\",value=\"1\"\},\{name=\"argv\",value=\"$hex\"\}\\\],file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"12\"\,dir=\".*\"\},line=\"12\",file=\".*$srcfile\"" "thread-select 1"

mi_gdb_test "128-stack-list-frames-lite -limit 500" "128\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\}\\\],valid=\"1\",count=\"1\""  "stack-list-frames-lite"

mi_gdb_test "129-stack-list-frames 0 0" "129\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"12\",dir=\".*\"\}\\\]" "stack-list-frames 0 0"

mi_gdb_test "10-stack-select-frame 0" "10\\^done"  "Select stack frame 0"

mi_gdb_test "131-stack-list-arguments 2 0 0" "131\\^done,stack-args=\\\[frame=\{level=\"0\",args=\\\[varobj=\{exp=\"argc\",value=\"1\",name=\"var1\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"argv\",value=\"$hex\",name=\"var2\",numchild=\"1\",type=\"char \\\*\\\*\",typecode=\"PTR\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\}\\\]\}\\\]" "stack-list-arguments 2 0 0"

mi_gdb_test "20-stack-select-frame 0" "20\\^done"  "Select stack frame 0"

mi_gdb_test "132-stack-list-locals 2 1" "132\\^done,locals=\\\[varobj=\{exp=\"x\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var3\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"result\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var4\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"false\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"n\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var5\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"false\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"i\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var6\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"false\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\}\\\]" "stack-list-locals 2 1"

mi_gdb_test "133-mi-verify-command file-list-statics" "133\\^done,name=\"file-list-statics\",defined=\"true\",implemented=\"true\""  "verify file-list-statics"

mi_gdb_test "134-file-list-statics -file \"\\\*CURRENT FRAME\\\*\" -shlib \"\" --no-values -filter \"\\^_OBJC\" -constants 0" "134\\^done,statics=\\\[\\\]" "file-list-statics"

mi_gdb_test "30-stack-select-frame 0" "30\\^done"  "Select stack frame 0"

mi_gdb_test "135-var-update  \"var1\" \"var2\" \"var3\" \"var4\" \"var5\" \"var6\"" "135\\^done,changelist=\\\[\\\]" "var-update vars 1-6"

mi_gdb_test "136-exec-next" "136\\^running.*136\\\*stopped,reason=\"end-stepping-range\",thread-id=\"1\""  "Exec next"

mi_gdb_test "137-thread-list-ids" "137\\^done,thread-ids=\{thread-id=\"1\"\},number-of-threads=\"1\"" "thread-list-ids"

mi_gdb_test "138-stack-list-frames-lite -limit 500" "138\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\}\\\],valid=\"1\",count=\"1\""  "stack-list-frames-lite"

mi_gdb_test "139-stack-list-frames 0 0" "139\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"14\",dir=\".*\"\}\\\]"  "stack-list-frames 0 0"

mi_gdb_test "40-stack-select-frame 0" "40\\^done"  "Select stack frame 0"

mi_gdb_test "142-var-update  \"var1\" \"var2\" \"var3\" \"var4\" \"var5\" \"var6\"" "142\\^done,changelist=\\\[varobj=\{name=\"var4\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"var5\",in_scope=\"true\",type_changed=\"false\"\},varobj=\{name=\"var6\",in_scope=\"true\",type_changed=\"false\"\}\\\]" "var-update"

mi_gdb_test "50-stack-select-frame 0" "50\\^done"  "Select stack frame 0"

mi_gdb_test "143-var-evaluate-expression \"var1\"" "143\\^done,value=\"1\""  "var-evaluate-expression var1"

mi_gdb_test "60-stack-select-frame 0" "60\\^done"  "Select stack frame 0"

mi_gdb_test "144-var-evaluate-expression \"var4\"" "144\\^done,value=\"<value temporarily unavailable, due to optimizations>\""  "var-evaluate-expression var4"

mi_gdb_test "70-stack-select-frame 0" "70\\^done"  "Select stack frame 0"

mi_gdb_test "145-var-evaluate-expression \"var5\"" "145\\^done,value=\"<value temporarily unavailable, due to optimizations>\"" "var-evaluate-expression var5"

mi_gdb_test "80-stack-select-frame 0" "80\\^done"  "Select stack frame 0"

mi_gdb_test "146-var-evaluate-expression \"var6\"" "146\\^done,value=\"<value temporarily unavailable, due to optimizations>\"" "var-evaluate-expression var6"

mi_gdb_test "90-stack-select-frame 0" "90\\^done"  "Select stack frame 0"

mi_gdb_test "208-exec-step" "208\\^running.*208\\\*stopped,frame=\{func\"foo \\\inlined\\\]\".*line=\"27\",file=\".*$srcfile\",reason=\"end-stepping-range\".*208\\^done"  "Exec step"

mi_gdb_test "209-thread-list-ids" ".*209\\^done,thread-ids=\{thread-id=\"1\"\},number-of-threads=\"1\""  "threat-list-ids"

mi_gdb_test "210-stack-list-frames-lite -limit 500" "210\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\},1=\{pc=\"$hex\",fp=\"$hex\"}],valid=\"1\",count=\"2\"" "stack-list-frames-lite"

mi_gdb_test "211-stack-list-frames 0 0" "211\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"27\",dir=\".*\"\}\\\]" "stack-list-frames"

mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame 0"

mi_gdb_test "214-stack-list-arguments 2 0 0" "214\\^done,stack-args=\\\[frame=\{level=\"0\",args=\\\[varobj=\{exp=\"argc\",value=\"1\",name=\"var7\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"argv\",value=\"$hex\",name=\"var8\",numchild=\"1\",type=\"char \\\*\\\*\",typecode=\"PTR\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\}\\\]\}\\\]" "stack-list-arguments 2 0 0"

mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame"

mi_gdb_test "215-stack-list-locals 2 1" "215\\^done,locals=\\\[varobj=\{exp=\"x\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var9\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"result\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var10\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"n\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var11\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\},varobj=\{exp=\"i\",value=\"<value temporarily unavailable, due to optimizations>\",name=\"var12\",numchild=\"0\",type=\"int\",typecode=\"INT\",dynamic_type=\"\",in_scope=\"true\",block_start_addr=\"$hex\",block_end_addr=\"$hex\"\}\\\]" "stack-list-locals"

mi_gdb_test "216-file-list-statics -file \"\\\*CURRENT FRAME\\\*\" -shlib \"\" --no-values -filter \"\\^_OBJC\" -constants 0" "216\\\^done,statics=\\\[\\\]" "file-list-statics"

# mi_gdb_test "217-data-read-memory -- 0x00000000 x 1 1 100" "217\\^done,addr=\"$hex\",nr-bytes=\"0\",total-bytes=\"100\",next-row=\"$hex\",prev-row=\"$hex\",next-page=\"$hex\",prev-page=\"$hex\",memory=\\\[\{addr=\"$hex\",data=\\\[\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\",\"N/A\"\\\]\}\\\]" "data-read-memory"

mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame"

mi_gdb_test "218-var-update  \"var7\" \"var8\" \"var9\" \"var10\" \"var11\" \"var12\"" "218\\^done,changelist=\\\[\\\]" "var-update"

mi_gdb_test "220-exec-next" "220\\^running.*220\\\*stopped,reason=\"end-stepping-range\",thread-id=\"1\"" "Exec next"

mi_gdb_test "221-thread-list-ids" "221\\^done,thread-ids=\{thread-id=\"1\"\},number-of-threads=\"1\"" "thread-list-ids"

mi_gdb_test "222-stack-list-frames-lite -limit 500" "222\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\},1=\{pc=\"$hex\",fp=\"$hex\"\}\\\],valid=\"1\",count=\"2\"" "stack-list-frames-lite"

mi_gdb_test "223-stack-list-frames 0 1" "223\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"foo \\\[inlined\\\]\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"29\",dir=\".*\"\},frame=\{level=\"1\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"14\",dir=\".*\"\}\\\]" "stack-list-frames 0 1"

mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame 0"

mi_gdb_test "226-var-update  \"var7\" \"var8\" \"var9\" \"var10\" \"var11\" \"var12\"" "226\\^done,changelist=\\\[varobj=\{name=\"var9\",in_scope=\"true\",type_changed=\"false\"\}.*\\\]" "var update 7-12"

mi_gdb_test "0-stack-select-frame 0" "0\\^done" "stack-select-frame 0"

mi_gdb_test "227-var-evaluate-expression \"var9\"" "227\\^done,value=\"12345\"" "var-evaluate var9"

mi_gdb_test "228-exec-finish" "228\\^running.*228\\\*stopped,reason=\"function-finished\",thread-id=\"1\",gdb-result-var=\".*\",return-value=\"39\"" "Exec finish"

mi_gdb_test "150-thread-list-ids" "150\\^done,thread-ids=\{thread-id=\"1\"\},number-of-threads=\"1\"" "thread-list-ids"

mi_gdb_test "151-stack-list-frames-lite -limit 500" "151\\^done,frames=\\\[0=\{pc=\"$hex\",fp=\"$hex\"\}\\\],valid=\"1\",count=\"1\"" "stack-list-frames-lite"

mi_gdb_test "152-stack-list-frames 0 0" "152\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",fp=\"$hex\",func=\"main\",file=\".*$srcfile\",fullname=\".*$srcfile\",line=\"16\",dir=\".*\"\}\\\]"  "stack-list-frames 0 0"


mi_gdb_test "233-var-delete \"var7\"" "233\\^done,ndeleted=\"1\"" "delete var7"

mi_gdb_test "234-var-delete \"var8\"" "234\\^done,ndeleted=\"1\"" "delete var8"

mi_gdb_test "235-var-delete \"var9\"" "235\\^done,ndeleted=\"1\"" "delete var9"

mi_gdb_test "236-var-delete \"var10\"" "236\\^done,ndeleted=\"1\"" "delete var10"

mi_gdb_test "237-var-delete \"var11\"" "237\\^done,ndeleted=\"1\"" "delete var11"

mi_gdb_test "238-var-delete \"var12\"" "238\\^done,ndeleted=\"1\"" "delete var12"


mi_gdb_test "200-stack-select-frame 0" "200\\^done"  "Select stack frame 0"

mi_gdb_test "155-var-update  \"var1\" \"var2\" \"var3\" \"var4\" \"var5\" \"var6\"" "155\\^done,changelist=\\\[varobj=\{name=\"var3\",in_scope=\"true\",type_changed=\"false\"\}.*\\\]"  "var-update"

mi_gdb_test "210-stack-select-frame 0" "210\\^done" "Select stack frame 0"

mi_gdb_test "156-var-evaluate-expression \"var3\"" "156\\^done,value=\"12345\"" "var-evaluate-expression var3"

mi_gdb_test "164-exec-continue" "164\\^running.*164\\\*stopped,reason=\"exited-normally\"" "Finish program"

mi_gdb_exit
return 0
