OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [gdb/] [testsuite/] [TODO] - Diff between revs 578 and 1765

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.