* lib/gdb.exp (CFLAGS): Remove, unreferenced.
[deliverable/binutils-gdb.git] / gdb / testsuite / TODO
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 nodebug.exp--test printing variables.
9
10 Test printing of structures passed by value, for the 7th, 8th, and 9th
11 arguments (PR 1714). Test printing structure arguments of
12 2,4,6,8,12,16,and 20 bytes. Same for structure return of all those
13 sizes ("return", "finish", and call function).
14
15 Get crossload tests to use --enable-targets and reenable them.
16
17 corefile.exp:
18 1. Print variables from the core file (data and stack), and text
19 (from the exec file). This tests whether the corefile sections are
20 mapped to the right addresses.
21 2. Test what happens when we get a new exec file without explicitly
22 getting rid of the core file (we at least must avoid core dumps and such).
23 3. Test backtrace in corefile.exp.
24 4. Test ability to run program when there is a core target, then go
25 back to the core file when the program exits.
26
27 Test handling of floating point variables
28 1. float, double, or long double
29 2. in register or saved register or memory. Also the case where a
30 double is in two float registers and only one of them is saved.
31 3. print them or set them
32 4. (Alpha) integer (32 or 64 bit) in floating point register.
33
34 Print registers--"p $r5", "p sizeof ($r5)". Test that they print
35 appropriately (integer registers in decimal, registers which always
36 contain addresses (pc, probably sp and fp, maybe others) in hex,
37 floating point).
38
39 Test completer. There is a list of test cases in main.c in the gdb
40 source. Test these with TAB, M-?, and the "complete" command.
41
42 Test "info line" with all kinds of linespecs. Test that the last line
43 of the file works right.
44
45 weird.exp--test that unrecognized cross-reference types or
46 unrecognized visibility or virtual characters get skipped properly
47 (see stabs.texinfo).
48
49 Test C++ nested types (especially if PR 1954 is fixed; even if not
50 *some* things already should work even in the presence of nested
51 types). Test classes nested more than 9 levels deep (g++ mangles
52 these differently) (both a demangle test and some tests which also
53 test the compiler). Test calling a method of a class nested more than
54 9 levels (for gdb_mangle_name and demangling).
55
56 Test static member functions (C++). Test that "ptype" shows them
57 correctly, both before and after they have been converted from stub
58 methods. Test that we can call them.
59
60 Test printing complicated types, including functions, pointers to
61 arrays of pointers of functions, functions which return pointers to
62 functions, etc.
63
64 Test GDB expressions--test all operators (and overloaded operators for
65 C++). Test integer constants which are signed or unsigned int, long,
66 or long long. Test detection of overflow of an integer constant.
67 Here are a few integer constants to test (test they get the right
68 types): 5, 5LL, 5LuL, 5L6u (invalid), 5LU. Maybe things like
69 0x12345678, 0x87654321, etc., but their types depend on sizes of int,
70 long, etc.
71
72 Test that printing const-qualified versions of various types works.
73 In particular, on the sparc and probably other machines, "double" is
74 handled differently from most types because it requires more alignment
75 and thus goes in a different section (there is a gcc 2.4.5 bug with
76 "const double" on sparc).
77
78 Test that GDB's "source" command works and that things work if stdin
79 is redirected (to a file or a pipe). Test user defined command. Run
80 an inferior each of these ways (to test that inflow.c works). Test
81 that GDB works if the last line of stdin or a source'd file lacks a
82 newline.
83
84 Test that module__2do (for example) in a C program does not get
85 demangled.
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 "handle all nostop". Right now this is buggy--it (a) prints "?"
187 for "Unknown signal", (b) prints signal zero (bug or feature?), (c)
188 dumps core when it is done.
189
190 Test that the copyright year in the startup message matches the
191 current year (would produce a single spurious FAIL on old GDB's, but
192 probably still a good idea).
193
194 Test that prologue recognition, backtrace, printing locals, etc.,
195 still work in the presence of large frames (the point being that at
196 some point immediate fields in RISC instructions will overflow and
197 prologues will need to look different. For sparc, the immediate field
198 is 13 bits (signed), so I believe the threshold would be 4K bytes in a
199 frame).
200
201 \f
202 (this is for editing this file with GNU emacs)
203 Local Variables:
204 mode: text
205 End:
This page took 0.032376 seconds and 4 git commands to generate.