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

if $tracelevel then {
        strace $tracelevel
        }

#
# test running programs
#

set prms_id 0
set bug_id 0

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;
}

# Start with a fresh gdb
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_file_cmd "${binfile}"

send_gdb "set width 0\n"
gdb_expect -re "$gdb_prompt $"

gdb_test "break main" "Breakpoint 1 at $hex: file.*, line 12\\." "Set breakpoint at main"

gdb_test "break nested-inlines.c:72" "Breakpoint 2 at $hex: file.*, line 72.*" "Set breakpoint at end of baz"

gdb_test "break nested-inlines.c:50" "Breakpoint 6 at $hex: file.*, line 50.*" "Set breakpoint at end of bar"

gdb_test "run" "Starting program: $binfile *\r\n\Reading symbols for shared libraries \(\[.+\]\)+ done.*Breakpoint 1, main.*" "continue to breakpoint in main()"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"

# PLAN A

gdb_test "step" ".*27.*y = bar.*" "Step into first inlined function (foo)"

gdb_test "step" ".*43.*z = baz.*" "Step into second inlined function (bar)"

gdb_test "step" ".*62.*buffer = .*" "Step into third inlined function (baz)"

gdb_test "next" "baz.*inlined.*" "stepping through baz (1)"
gdb_test "next" "baz.*inlined.*" "stepping through baz (2)"
gdb_test "next" "baz.*inlined.*" "stepping through baz (3)"
gdb_test "next" "baz.*inlined.*" "stepping through baz (4)"
gdb_test "next" "baz.*inlined.*" "stepping through baz (5)"
gdb_test "next" "baz.*inlined.*" "stepping through baz (6)"
gdb_test "next" "baz.*inlined.*" "stepping through baz (7)"
gdb_test "next" "baz.*inlined.*" "stepping through baz (8)"
gdb_test "continue" ".*Breakpoint .*, baz \\\[inlined\\\].*72.*" "Continue to end of baz"

# gdb_test "next" "baz.*inlined.*" "stepping through baz (9)"

gdb_test "step" "bar.*inlined.*" "stepping out of (inlined) baz back to bar"

gdb_test "next" ".*" "stepping through bar (1)"
gdb_test "next" ".*" "stepping through bar (2)"
gdb_test "next" ".*" "stepping through bar (3)"
gdb_test "next" ".*" "stepping through bar (4)"
gdb_test "next" ".*" "stepping through bar (5)"
gdb_test "next" ".*" "stepping through bar (6)"
gdb_test "next" ".*" "stepping through bar (7)"
gdb_test "next" ".*" "stepping through bar (8)"
# gdb_test "next" ".*" "stepping through bar (9)"
# gdb_test "next" ".*" "stepping through bar (10)"
# gdb_test "next" ".*" "stepping through bar (11)"
# gdb_test "next" ".*" "stepping through bar (12)"
# gdb_test "next" ".*" "stepping through bar (13)"
# gdb_test "next" ".*" "stepping through bar (14)"
# gdb_test "next" ".*" "stepping through bar (15)"

gdb_test "continue" ".*Breakpoint .*, bar \\\[inlined\\\].*50.*" "Continue to end of bar"

gdb_test "step" "foo.*inlined.*" "stepping out of (inlined) bar back to foo"

gdb_test "next" "The squareroot of.*" "stepping out of (inlined) foo back to main"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN B

gdb_test "delete 2 3 4 5 6 7 8" ".*" "Delete all breakpoints except first one in main"

gdb_test "run" "Starting program:.*Breakpoint 1.*" "Re-starting program"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"

gdb_test "next" ".*16.*We made it all the way to the top.*" "Next over inlined subroutine (foo)."

gdb_test "next" "We made it.*" "Next (1)"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN C

gdb_test "run" "Starting program:.*Breakpoint 1.*" "Re-starting program"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"

gdb_test "step" ".*27.*y = bar.*" "Step into first inlined function (foo)"

gdb_test "finish" ".*fprintf.*We made it all the way to the top.*" "Finish out of inlined function (foo)"

gdb_test "next" "We made it.*" "Next (1)"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN D

gdb_test "run" "Starting program:.*Breakpoint 1.*" "Re-starting program"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"

gdb_test "step" ".*27.*y = bar.*" "Step into first inlined function (foo)"

gdb_test "next" ".*29.*" "Next over inlined function (bar)" 

gdb_test "finish" ".*fprintf.*We made it all the way to the top.*" "Finish out of inlined function (foo)"

gdb_test "next" "We made it.*" "Next (1)"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN E

gdb_test "run" "Starting program:.*Breakpoint 1.*" "Re-starting program"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"

gdb_test "step" ".*27.*y = bar.*" "Step into first inlined function (foo)"

gdb_test "step" ".*43.*z = baz.*" "Step into second inlined function (bar)"

gdb_test "finish" ".*foo.*inlined.*sqrt.*" "Finish out of inlined function (bar)"

gdb_test "finish" ".*fprintf.*We made it all the way to the top.*" "Finish out of inlined function (foo)"

gdb_test "next" "We made it.*" "Next (1)"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN F

gdb_test "run" "Starting program:.*Breakpoint 1.*" "Re-starting program"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"

gdb_test "step" ".*27.*y = bar.*" "Step into first inlined function (foo)"

gdb_test "step" ".*43.*z = baz.*" "Step into second inlined function (bar)"

gdb_test "next" ".*44.*" "Next over inlined function (baz)"

gdb_test "next" ".*bar.*inlined.*" "Next in bar"

gdb_test "finish" ".*foo.*inlined.*sqrt.*" "Finish out of inlined function (bar)"

gdb_test "finish" ".*fprintf.*We made it all the way to the top.*" "Finish out of inlined function (foo)"

gdb_test "next" "We made it.*" "Next (1)"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN G

gdb_test "run" "Starting program:.*Breakpoint 1.*" "Re-starting program"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"

gdb_test "step" ".*27.*y = bar.*" "Step into first inlined function (foo)"

gdb_test "step" ".*43.*z = baz.*" "Step into second inlined function (bar)"

gdb_test "step" ".*62.*buffer = .*" "Step into third inlined function (baz)"

gdb_test "finish" ".*bar.*inlined.*n = z.*" "Finish out of inlined function (baz)"

gdb_test "finish" ".*foo.*inlined.*sqrt.*" "Finish out of inlined function (bar)"

gdb_test "finish" ".*fprintf.*We made it all the way to the top.*" "Finish out of inlined function (foo)"

gdb_test "next" "We made it.*" "Next (1)"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN H

gdb_test "run" "Starting program:.*Breakpoint 1.*" "Re-starting program"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"

gdb_test "step" ".*27.*y = bar.*" "Step into first inlined function (foo)"

gdb_test "step" ".*43.*z = baz.*" "Step into second inlined function (bar)"

gdb_test "step" ".*62.*buffer = .*" "Step into third inlined function (baz)"

gdb_test "next" ".*baz.*inlined.*fprintf.*" "Next in baz"

gdb_test "finish" ".*bar.*inlined.*n = z.*" "Finish out of inlined function (baz)"

gdb_test "next" ".*bar.*inlined.*" "Next in bar"

gdb_test "finish" ".*foo.*inlined.*sqrt.*" "Finish out of inlined function (bar)"

gdb_test "finish" ".*fprintf.*We made it all the way to the top.*" "Finish out of inlined function (foo)"

gdb_test "next" "We made it.*" "Next (1)"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN I

gdb_test "run" "Starting program:.*Breakpoint 1.*" "Re-starting program"

gdb_test "next" ".*foo ().*" "Step to first inlined call site"
gdb_test "step" ".*27.*y = bar.*" "Step into first inlined function (foo)"

gdb_test "step" ".*43.*z = baz.*" "Step into second inlined function (bar)"

gdb_test "step" ".*62.*buffer = .*" "Step into third inlined function (baz)"


# gdb_test "up" ".*bar.*inlined.*" "up (to  bar)"
# gdb_test "up" ".*foo.*inlined.*" "up (to foo)"
# gdb_test "up" ".*main.*" "up (to main)"
# gdb_test "down" ".*foo.*inlined.*" "down (to foo)"
# gdb_test "down" ".*bar.*inlined.*" "down (to bar)"
# gdb_test "up" ".*foo.*inlined.*" "up (to foo)"
# gdb_test "down" ".*bar.*inlined.*" "down (to bar)"
# gdb_test "down" ".*baz.*inlined.*" "down (to baz)"
# gdb_test "up" ".*bar.*inlined.*" "up (to bar)"
# gdb_test "down" ".*baz.*inlined.*" "down (to baz)"

# gdb_test "where" ".*Function baz was inlined into function bar.*Function bar was inlined into function foo.*Function foo was inlined into function main.*nested-inlines.c:14.*" "Where in baz"

gdb_test "finish" ".*bar.*inlined.*n = z.*" "Finish out of inlined function (baz)"

gdb_test "where" ".*" "Where in bar"

gdb_test "finish" ".*foo.*inlined.*sqrt.*" "Finish out of inlined function (bar)"

gdb_test "where" ".*" "Where in foo"

gdb_test "finish" ".*fprintf.*We made it all the way to the top.*" "Finish out of inlined function (foo)"

gdb_test "where" ".*" "Where in main"

gdb_test "next" "We made it.*" "Next (1)"

gdb_test "continue" ".*Program exited normally.*" "Finish program"

# PLAN J

gdb_test "disable 1" ".*" "Disable breakpoint at main."

gdb_test "break bar" "Breakpoint 9 .*Breakpoint 10 .*Breakpoint 11 .*" "Set breakpoints at inlined function bar"

gdb_test "run" "Starting program: $binfile *\r\n\.*Breakpoint .*, bar.*inlined.*" "continue to breakpoint in bar"

gdb_test "next" ".*44.*n = z.*" "Step over inlined function (baz)"

gdb_test "finish" ".*foo.*inlined.*sqrt.*" "Finish out of inlined function bar"

gdb_test "next" "The squareroot of.*" "stepping out of (inlined) foo back to main"



gdb_exit
return 0


