From c906108c21474dfb4ed285bcc0ac6fe02cd400cc Mon Sep 17 00:00:00 2001 From: Stan Shebs Date: Fri, 16 Apr 1999 01:35:26 +0000 Subject: Initial creation of sourceware repository --- gdb/testsuite/TODO | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 gdb/testsuite/TODO (limited to 'gdb/testsuite/TODO') diff --git a/gdb/testsuite/TODO b/gdb/testsuite/TODO new file mode 100644 index 0000000..978991c --- /dev/null +++ b/gdb/testsuite/TODO @@ -0,0 +1,202 @@ +The highest priority item is not on this list: Fix bugs in the +existing testsuite, fix the GDB/compiler/shell/etc bugs which it +detects (particularly when they are hard to XFAIL), make it run +reliably without unexpected failures on the "standard" machines, etc. +This list exists largely as "tests we can add when we are ready to +risk destabilizing it again". + +There are some tests which are only run on some platforms because they +have not been tested on more platforms. Enable them and fix any +problems. A partial list: recurse.exp, watchpoint.exp +(test_watchpoint_triggered_in_syscall, test_complex_watchpoint). + +Test printing of structures passed by value, for the 7th, 8th, and 9th +arguments (PR 1714). Test printing structure arguments of +2,4,6,8,12,16,and 20 bytes. Same for structure return of all those +sizes ("return", "finish", and call function). + +Get crossload tests to use --enable-targets and reenable them. + +corefile.exp: +Test ability to run program when there is a core target, then go +back to the core file when the program exits. + +Test handling of floating point variables +1. float, double, or long double +2. in register or saved register or memory. Also the case where a +double is in two float registers and only one of them is saved. +3. print them or set them +4. (Alpha) integer (32 or 64 bit) in floating point register. + +Print registers--"p $r5", "p sizeof ($r5)". Test that they print +appropriately (integer registers in decimal, registers which always +contain addresses (pc, probably sp and fp, maybe others) in hex, +floating point). + +Test completer. Test that it completes a variety of things correctly +(see the list of test cases in main.c in the gdb source). Test TAB, +M-?, and the "complete" command. + +Test "info line" with all kinds of linespecs. Test that the last line +of the file works right. + +weird.exp--test that unrecognized cross-reference types or +unrecognized visibility or virtual characters get skipped properly +(see stabs.texinfo). + +Test C++ nested types (especially if PR 1954 is fixed; even if not +*some* things already should work even in the presence of nested +types). Test classes nested more than 9 levels deep (g++ mangles +these differently) (both a demangle test and some tests which also +test the compiler). Test calling a method of a class nested more than +9 levels (for gdb_mangle_name and demangling). + +Test static member functions (C++). Test that "ptype" shows them +correctly, both before and after they have been converted from stub +methods. Test that we can call them. + +Test printing complicated types, including functions, pointers to +arrays of pointers of functions, functions which return pointers to +functions, etc. + +printcmd.exp--test printing enum values. Test printing an enum +variable whose value is out of range. Test "p (int)enum_var", "p/x +enum_var". Test that in something like "enum {FOO, LAST_THING=FOO}" +we print FOO, not LAST_THING. + +Test GDB expressions--test all operators (and overloaded operators for +C++). Test integer constants which are signed or unsigned int, long, +or long long. Test detection of overflow of an integer constant. +Here are a few integer constants to test (test they get the right +types): 5, 5LL, 5LuL, 5L6u (invalid), 5LU. Maybe things like +0x12345678, 0x87654321, etc., but their types depend on sizes of int, +long, etc. + +Test that printing const-qualified versions of various types works. +In particular, on the sparc and probably other machines, "double" is +handled differently from most types because it requires more alignment +and thus goes in a different section (there is a gcc 2.4.5 bug with +"const double" on sparc). + +Test that GDB's "source" command works and that things work if stdin +is redirected (to a file or a pipe). Test user defined command. Run +an inferior each of these ways (to test that inflow.c works). Test +that GDB works if the last line of stdin or a source'd file lacks a +newline. + +Test that unmatched single quotes produce error messages, both in +expressions and linespecs. + +Test "cd". "foo/bar/.." should get simplified to "foo". "/../.." +should not get simplified (for Mach). "/.." should not get simplified +(for other networked OSes; POSIX.1 section B.2.3.7). All these +examples should continue to work with trailing slashes. + +Test scoping; here is a start + 1 int i=2; + 2 int j=3; + 3 main() + 4 { + 5 int i; + 6 for (i=600; i>0; i--) + 7 print_line(i); + 8 } + 9 +10 print_line(i) +11 int i; +12 { +13 h(); +14 printf("%d\n",i); +15 } +16 +17 h() +18 { +19 printf("In h..."); +20 } +Set a breakpoint in h, and print i, print_line::i, and main::i. Set a +breakpoint in main (or don't run the program), and test that +print_line::i is an error. But if i were static, "p main::i" should +work even if the program is not being run. + +Write a test for the reentracy bug with rs6000_struct_return_address +in rs6000-tdep.c. + +Test "return" from dummy frames. Test "return" from non-innermost +frame. Test that "return" from a non-innermost frame restores +registers which are saved not in that frame but in a frame more inner +(I believe this currently works on few if any architectures). + +FORTRAN common blocks (a.out and xcoff--weird.exp has the start of +one but it is not quite right as of 19 Nov 1993). + +Test that "x" command sets $_ and $__. Test $_ in general. + +Test that "p/a" works when given addresses in text, data, and bss +segments. Test that it works if program is compiled with or without +-g. Test that it works if preceding symbol is static or if it is +extern. + +Given `char abc[] = "abc\0def";' test "x/s abc" followed by "x/s" +(should display "abc" followed by "def"). Test this works with no +error message even if this is the last thing in the section (tests +that val_print_string ignores an error if the error occurs after the +'\0'). + +Test ability to process NMAGIC a.out files. + +Test shared libraries: "next" over printf, "step" into a function in +a shared library which has line number info, breakpoint in a function +in a shared library (either before or after the program is run and the +shared libraries are loaded--also maybe write a test where the PLT +will be in an unloaded state even though the shared library is loaded). + +If there are two breakpoints in the same place, and exactly one of +them has its condition true, test that the correct breakpoint gets +printed. + +Test "jump" including jump to a breakpoint (the latter will need an +xfail for UDI and probably VxWorks (PR 1786 for vxworks; PR 2416 +contains some info for 29k). + +Set a watchpoint on a local variable (to be interesting, make a few +calls, to be more interesting, make a recursive call). Test that it +gets disabled when leaving that scope. + +Test calling a function, hitting a breakpoint in the called function, +calling another function, and hitting a breakpoint. Test backtrace +works in the presence of multiple dummy frames. Test that "continue" +will get you out of the inner called function, and "continue" again +will get you back to where you were when you called the first one. + +Test special longjmp handling in wait_for_inferior (need to figure out +in detail what the proper behavior in each case is). Test longjmp to +a place where there is a breakpoint (such that +BPSTAT_WHAT_CLEAR_LONGJMP_RESUME_SINGLE happens). In general, test +interactions between longjmp and watchpoints, breakpoints, stepping, +call function, etc. + +Test jumping right past a breakpoint (the case where wait_for_inferior +passes not_a_breakpoint to bpstat_stop_status). Might already be +tested by some of the sun3 tests. Probably want a .s test to avoid +compiler dependencies. + +Test more obscure wait_for_inferior cases, expanding on the tests in +watchpoint.exp, signals.exp, etc. + +Test stepping into functions which are one line long and functions +which are on line 1 of the source file. (there is a class of bugs in +which gdb doesn't find the line number information, and thus doesn't +step into the function). + +Test that prologue recognition, backtrace, printing locals, etc., +still work in the presence of large frames (the point being that at +some point immediate fields in RISC instructions will overflow and +prologues will need to look different. For sparc, the immediate field +is 13 bits (signed), so I believe the threshold would be 4K bytes in a +frame). + + +(this is for editing this file with GNU emacs) +Local Variables: +mode: text +End: -- cgit v1.1