OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.2/] [gdb/] [testsuite/] [gdb.base/] [return2.exp] - Blame information for rev 445

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 330 jeremybenn
# Copyright 2000, 2001, 2004, 2007, 2008, 2009, 2010
2
# Free Software Foundation, Inc.
3
 
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 3 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program.  If not, see .
16
 
17
# This file was written by Michael Snyder (msnyder@redhat.com)
18
 
19
if $tracelevel then {
20
        strace $tracelevel
21
}
22
 
23
 
24
set testfile "return2"
25
set srcfile ${testfile}.c
26
set binfile ${objdir}/${subdir}/${testfile}
27
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
28
     untested return2.exp
29
     return -1
30
}
31
 
32
proc return_1 { type } {
33
    global gdb_prompt
34
 
35
    gdb_test "break ${type}_func" "Breakpoint \[0123456789\].*" \
36
            "set break on ${type}_func"
37
    gdb_test "continue" "Breakpoint.* ${type}_func.*" \
38
            "continue to ${type}_func"
39
 
40
    gdb_test_multiple "return testval.${type}_testval" \
41
        "return from ${type}_func" {
42
            -re "Make ${type}_func return now.*y or n. $" {
43
                send_gdb "y\n"
44
                exp_continue
45
            }
46
            -re ".*${type}_resultval *= ${type}_func.*$gdb_prompt $" {
47
                send_gdb "step\n"
48
                exp_continue
49
            }
50
            -re ".*${type}_checkpoint.*$gdb_prompt $" {
51
                pass "return from ${type}_func"
52
            }
53
        }
54
    gdb_test "print ${type}_resultval == testval.${type}_testval" ".* = 1" \
55
            "${type} value returned successfully"
56
    gdb_test "print ${type}_resultval != ${type}_returnval" ".* = 1" \
57
            "validate result value not equal to program return value"
58
}
59
 
60
proc return_void { } {
61
    global gdb_prompt
62
 
63
    gdb_test "break void_func" "Breakpoint \[0123456789\].*" \
64
            "set break on void_func"
65
    gdb_test "continue" "Breakpoint.* void_func.*" \
66
            "continue to void_func"
67
 
68
    gdb_test_multiple "return" "return from void_func" {
69
        -re "Make void_func return now.*y or n. $" {
70
            send_gdb "y\n"
71
            exp_continue
72
        }
73
        -re ".*void_func.*call to void_func.*$gdb_prompt $" {
74
            send_gdb "step\n"
75
            exp_continue
76
        }
77
        -re ".*void_checkpoint.*$gdb_prompt $" {
78
            pass "return from void_func"
79
        }
80
    }
81
    gdb_test "print void_test == 0" ".* = 1" \
82
            "void function returned successfully"
83
}
84
 
85
proc return2_tests { } {
86
    global gdb_prompt
87
 
88
    if { ! [ runto_main ] } then {
89
        untested return2.exp
90
        return -1
91
    }
92
 
93
    return_void
94
    return_1 "char"
95
    return_1 "short"
96
    return_1 "int"
97
    return_1 "long"
98
    if { ! [istarget "m6811-*-*"] && ![istarget "h8300*-*"] } then {
99
        return_1 "long_long"
100
    }
101
    return_1 "float"
102
    if { ! [istarget "m6811-*-*"] } then {
103
        return_1 "double"
104
    }
105
}
106
 
107
# Start with a fresh gdb.
108
 
109
gdb_exit
110
gdb_start
111
gdb_reinitialize_dir $srcdir/$subdir
112
gdb_load ${binfile}
113
 
114
set timeout 30
115
return2_tests

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.