# 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"
    }
}

# mi_gdb_test "123-exec-run" ".*running"  "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=\"\",resolved_type=\"int\",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=\"\",resolved_type=\"char \\\*\\\*\",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=\"\",resolved_type=\"int\",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=\"\",resolved_type=\"int\",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=\"\",resolved_type=\"int\",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=\"\",resolved_type=\"int\",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 "148-data-read-memory -- 0x00000000 x 1 1 100" "148\\^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 "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=\"\",resolved_type=\"int\",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=\"\",resolved_type=\"char \\\*\\\*\",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=\"\",resolved_type=\"int\",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=\"\",resolved_type=\"int\",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=\"\",resolved_type=\"int\",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=\"\",resolved_type=\"int\",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 "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\"" "dekete 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
