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