Commit | Line | Data |
---|---|---|
c906108c SS |
1 | The highest priority item is not on this list: Fix bugs in the |
2 | existing testsuite, fix the GDB/compiler/shell/etc bugs which it | |
3 | detects (particularly when they are hard to XFAIL), make it run | |
4 | reliably without unexpected failures on the "standard" machines, etc. | |
5 | This list exists largely as "tests we can add when we are ready to | |
6 | risk destabilizing it again". | |
7 | ||
8 | There are some tests which are only run on some platforms because they | |
9 | have not been tested on more platforms. Enable them and fix any | |
10 | problems. A partial list: recurse.exp, watchpoint.exp | |
11 | (test_watchpoint_triggered_in_syscall, test_complex_watchpoint). | |
12 | ||
13 | Test printing of structures passed by value, for the 7th, 8th, and 9th | |
14 | arguments (PR 1714). Test printing structure arguments of | |
15 | 2,4,6,8,12,16,and 20 bytes. Same for structure return of all those | |
16 | sizes ("return", "finish", and call function). | |
17 | ||
18 | Get crossload tests to use --enable-targets and reenable them. | |
19 | ||
20 | corefile.exp: | |
21 | Test ability to run program when there is a core target, then go | |
22 | back to the core file when the program exits. | |
23 | ||
24 | Test handling of floating point variables | |
25 | 1. float, double, or long double | |
26 | 2. in register or saved register or memory. Also the case where a | |
27 | double is in two float registers and only one of them is saved. | |
28 | 3. print them or set them | |
29 | 4. (Alpha) integer (32 or 64 bit) in floating point register. | |
30 | ||
31 | Print registers--"p $r5", "p sizeof ($r5)". Test that they print | |
32 | appropriately (integer registers in decimal, registers which always | |
33 | contain addresses (pc, probably sp and fp, maybe others) in hex, | |
34 | floating point). | |
35 | ||
36 | Test completer. Test that it completes a variety of things correctly | |
37 | (see the list of test cases in main.c in the gdb source). Test TAB, | |
38 | M-?, and the "complete" command. | |
39 | ||
40 | Test "info line" with all kinds of linespecs. Test that the last line | |
41 | of the file works right. | |
42 | ||
43 | weird.exp--test that unrecognized cross-reference types or | |
44 | unrecognized visibility or virtual characters get skipped properly | |
45 | (see stabs.texinfo). | |
46 | ||
47 | Test C++ nested types (especially if PR 1954 is fixed; even if not | |
48 | *some* things already should work even in the presence of nested | |
49 | types). Test classes nested more than 9 levels deep (g++ mangles | |
50 | these differently) (both a demangle test and some tests which also | |
51 | test the compiler). Test calling a method of a class nested more than | |
52 | 9 levels (for gdb_mangle_name and demangling). | |
53 | ||
54 | Test static member functions (C++). Test that "ptype" shows them | |
55 | correctly, both before and after they have been converted from stub | |
56 | methods. Test that we can call them. | |
57 | ||
58 | Test printing complicated types, including functions, pointers to | |
59 | arrays of pointers of functions, functions which return pointers to | |
60 | functions, etc. | |
61 | ||
62 | printcmd.exp--test printing enum values. Test printing an enum | |
63 | variable whose value is out of range. Test "p (int)enum_var", "p/x | |
64 | enum_var". Test that in something like "enum {FOO, LAST_THING=FOO}" | |
65 | we print FOO, not LAST_THING. | |
66 | ||
67 | Test GDB expressions--test all operators (and overloaded operators for | |
68 | C++). Test integer constants which are signed or unsigned int, long, | |
69 | or long long. Test detection of overflow of an integer constant. | |
70 | Here are a few integer constants to test (test they get the right | |
71 | types): 5, 5LL, 5LuL, 5L6u (invalid), 5LU. Maybe things like | |
72 | 0x12345678, 0x87654321, etc., but their types depend on sizes of int, | |
73 | long, etc. | |
74 | ||
75 | Test that printing const-qualified versions of various types works. | |
76 | In particular, on the sparc and probably other machines, "double" is | |
77 | handled differently from most types because it requires more alignment | |
78 | and thus goes in a different section (there is a gcc 2.4.5 bug with | |
79 | "const double" on sparc). | |
80 | ||
81 | Test that GDB's "source" command works and that things work if stdin | |
82 | is redirected (to a file or a pipe). Test user defined command. Run | |
83 | an inferior each of these ways (to test that inflow.c works). Test | |
84 | that GDB works if the last line of stdin or a source'd file lacks a | |
85 | newline. | |
86 | ||
87 | Test that unmatched single quotes produce error messages, both in | |
88 | expressions and linespecs. | |
89 | ||
90 | Test "cd". "foo/bar/.." should get simplified to "foo". "/../.." | |
91 | should not get simplified (for Mach). "/.." should not get simplified | |
92 | (for other networked OSes; POSIX.1 section B.2.3.7). All these | |
93 | examples should continue to work with trailing slashes. | |
94 | ||
95 | Test scoping; here is a start | |
96 | 1 int i=2; | |
97 | 2 int j=3; | |
98 | 3 main() | |
99 | 4 { | |
100 | 5 int i; | |
101 | 6 for (i=600; i>0; i--) | |
102 | 7 print_line(i); | |
103 | 8 } | |
104 | 9 | |
105 | 10 print_line(i) | |
106 | 11 int i; | |
107 | 12 { | |
108 | 13 h(); | |
109 | 14 printf("%d\n",i); | |
110 | 15 } | |
111 | 16 | |
112 | 17 h() | |
113 | 18 { | |
114 | 19 printf("In h..."); | |
115 | 20 } | |
116 | Set a breakpoint in h, and print i, print_line::i, and main::i. Set a | |
117 | breakpoint in main (or don't run the program), and test that | |
118 | print_line::i is an error. But if i were static, "p main::i" should | |
119 | work even if the program is not being run. | |
120 | ||
121 | Write a test for the reentracy bug with rs6000_struct_return_address | |
122 | in rs6000-tdep.c. | |
123 | ||
124 | Test "return" from dummy frames. Test "return" from non-innermost | |
125 | frame. Test that "return" from a non-innermost frame restores | |
126 | registers which are saved not in that frame but in a frame more inner | |
127 | (I believe this currently works on few if any architectures). | |
128 | ||
129 | FORTRAN common blocks (a.out and xcoff--weird.exp has the start of | |
130 | one but it is not quite right as of 19 Nov 1993). | |
131 | ||
132 | Test that "x" command sets $_ and $__. Test $_ in general. | |
133 | ||
134 | Test that "p/a" works when given addresses in text, data, and bss | |
135 | segments. Test that it works if program is compiled with or without | |
136 | -g. Test that it works if preceding symbol is static or if it is | |
137 | extern. | |
138 | ||
139 | Given `char abc[] = "abc\0def";' test "x/s abc" followed by "x/s" | |
140 | (should display "abc" followed by "def"). Test this works with no | |
141 | error message even if this is the last thing in the section (tests | |
142 | that val_print_string ignores an error if the error occurs after the | |
143 | '\0'). | |
144 | ||
145 | Test ability to process NMAGIC a.out files. | |
146 | ||
147 | Test shared libraries: "next" over printf, "step" into a function in | |
148 | a shared library which has line number info, breakpoint in a function | |
149 | in a shared library (either before or after the program is run and the | |
150 | shared libraries are loaded--also maybe write a test where the PLT | |
151 | will be in an unloaded state even though the shared library is loaded). | |
152 | ||
153 | If there are two breakpoints in the same place, and exactly one of | |
154 | them has its condition true, test that the correct breakpoint gets | |
155 | printed. | |
156 | ||
157 | Test "jump" including jump to a breakpoint (the latter will need an | |
158 | xfail for UDI and probably VxWorks (PR 1786 for vxworks; PR 2416 | |
159 | contains some info for 29k). | |
160 | ||
161 | Set a watchpoint on a local variable (to be interesting, make a few | |
162 | calls, to be more interesting, make a recursive call). Test that it | |
163 | gets disabled when leaving that scope. | |
164 | ||
165 | Test calling a function, hitting a breakpoint in the called function, | |
166 | calling another function, and hitting a breakpoint. Test backtrace | |
167 | works in the presence of multiple dummy frames. Test that "continue" | |
168 | will get you out of the inner called function, and "continue" again | |
169 | will get you back to where you were when you called the first one. | |
170 | ||
171 | Test special longjmp handling in wait_for_inferior (need to figure out | |
172 | in detail what the proper behavior in each case is). Test longjmp to | |
173 | a place where there is a breakpoint (such that | |
174 | BPSTAT_WHAT_CLEAR_LONGJMP_RESUME_SINGLE happens). In general, test | |
175 | interactions between longjmp and watchpoints, breakpoints, stepping, | |
176 | call function, etc. | |
177 | ||
178 | Test jumping right past a breakpoint (the case where wait_for_inferior | |
179 | passes not_a_breakpoint to bpstat_stop_status). Might already be | |
180 | tested by some of the sun3 tests. Probably want a .s test to avoid | |
181 | compiler dependencies. | |
182 | ||
183 | Test more obscure wait_for_inferior cases, expanding on the tests in | |
184 | watchpoint.exp, signals.exp, etc. | |
185 | ||
186 | Test stepping into functions which are one line long and functions | |
187 | which are on line 1 of the source file. (there is a class of bugs in | |
188 | which gdb doesn't find the line number information, and thus doesn't | |
189 | step into the function). | |
190 | ||
191 | Test that prologue recognition, backtrace, printing locals, etc., | |
192 | still work in the presence of large frames (the point being that at | |
193 | some point immediate fields in RISC instructions will overflow and | |
194 | prologues will need to look different. For sparc, the immediate field | |
195 | is 13 bits (signed), so I believe the threshold would be 4K bytes in a | |
196 | frame). | |
197 | ||
198 | \f | |
199 | (this is for editing this file with GNU emacs) | |
200 | Local Variables: | |
201 | mode: text | |
202 | End: |