URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-old/] [gdb-6.8/] [gdb/] [testsuite/] [TODO] - Rev 840
Compare with Previous | Blame | View Log
The highest priority item is not on this list: Fix bugs in theexisting testsuite, fix the GDB/compiler/shell/etc bugs which itdetects (particularly when they are hard to XFAIL), make it runreliably without unexpected failures on the "standard" machines, etc.This list exists largely as "tests we can add when we are ready torisk destabilizing it again".There are some tests which are only run on some platforms because theyhave not been tested on more platforms. Enable them and fix anyproblems. 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 9tharguments (PR 1714). Test printing structure arguments of2,4,6,8,12,16,and 20 bytes. Same for structure return of all thosesizes ("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 goback to the core file when the program exits.Test handling of floating point variables1. float, double, or long double2. in register or saved register or memory. Also the case where adouble is in two float registers and only one of them is saved.3. print them or set them4. (Alpha) integer (32 or 64 bit) in floating point register.Print registers--"p $r5", "p sizeof ($r5)". Test that they printappropriately (integer registers in decimal, registers which alwayscontain 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 lineof the file works right.weird.exp--test that unrecognized cross-reference types orunrecognized 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 nestedtypes). Test classes nested more than 9 levels deep (g++ manglesthese differently) (both a demangle test and some tests which alsotest the compiler). Test calling a method of a class nested more than9 levels (for gdb_mangle_name and demangling).Test static member functions (C++). Test that "ptype" shows themcorrectly, both before and after they have been converted from stubmethods. Test that we can call them.Test printing complicated types, including functions, pointers toarrays of pointers of functions, functions which return pointers tofunctions, etc.printcmd.exp--test printing enum values. Test printing an enumvariable whose value is out of range. Test "p (int)enum_var", "p/xenum_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 forC++). 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 righttypes): 5, 5LL, 5LuL, 5L6u (invalid), 5LU. Maybe things like0x12345678, 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" ishandled differently from most types because it requires more alignmentand 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 stdinis redirected (to a file or a pipe). Test user defined command. Runan inferior each of these ways (to test that inflow.c works). Testthat GDB works if the last line of stdin or a source'd file lacks anewline.Test that unmatched single quotes produce error messages, both inexpressions 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 theseexamples should continue to work with trailing slashes.Test scoping; here is a start1 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 }910 print_line(i)11 int i;12 {13 h();14 printf("%d\n",i);15 }1617 h()18 {19 printf("In h...");20 }Set a breakpoint in h, and print i, print_line::i, and main::i. Set abreakpoint in main (or don't run the program), and test thatprint_line::i is an error. But if i were static, "p main::i" shouldwork even if the program is not being run.Write a test for the reentracy bug with rs6000_struct_return_addressin rs6000-tdep.c.Test "return" from dummy frames. Test "return" from non-innermostframe. Test that "return" from a non-innermost frame restoresregisters 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 ofone 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 bsssegments. Test that it works if program is compiled with or without-g. Test that it works if preceding symbol is static or if it isextern.Given `char abc[] = "abc\0def";' test "x/s abc" followed by "x/s"(should display "abc" followed by "def"). Test this works with noerror message even if this is the last thing in the section (teststhat 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 ina shared library which has line number info, breakpoint in a functionin a shared library (either before or after the program is run and theshared libraries are loaded--also maybe write a test where the PLTwill be in an unloaded state even though the shared library is loaded).If there are two breakpoints in the same place, and exactly one ofthem has its condition true, test that the correct breakpoint getsprinted.Test "jump" including jump to a breakpoint (the latter will need anxfail for UDI and probably VxWorks (PR 1786 for vxworks; PR 2416contains some info for 29k).Set a watchpoint on a local variable (to be interesting, make a fewcalls, to be more interesting, make a recursive call). Test that itgets disabled when leaving that scope.Test calling a function, hitting a breakpoint in the called function,calling another function, and hitting a breakpoint. Test backtraceworks in the presence of multiple dummy frames. Test that "continue"will get you out of the inner called function, and "continue" againwill get you back to where you were when you called the first one.Test special longjmp handling in wait_for_inferior (need to figure outin detail what the proper behavior in each case is). Test longjmp toa place where there is a breakpoint (such thatBPSTAT_WHAT_CLEAR_LONGJMP_RESUME_SINGLE happens). In general, testinteractions between longjmp and watchpoints, breakpoints, stepping,call function, etc.Test jumping right past a breakpoint (the case where wait_for_inferiorpasses not_a_breakpoint to bpstat_stop_status). Might already betested by some of the sun3 tests. Probably want a .s test to avoidcompiler dependencies.Test more obscure wait_for_inferior cases, expanding on the tests inwatchpoint.exp, signals.exp, etc.Test stepping into functions which are one line long and functionswhich are on line 1 of the source file. (there is a class of bugs inwhich gdb doesn't find the line number information, and thus doesn'tstep into the function).Test that prologue recognition, backtrace, printing locals, etc.,still work in the presence of large frames (the point being that atsome point immediate fields in RISC instructions will overflow andprologues will need to look different. For sparc, the immediate fieldis 13 bits (signed), so I believe the threshold would be 4K bytes in aframe).(this is for editing this file with GNU emacs)Local Variables:mode: textEnd:
