mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-10 12:40:14 +08:00
stacktrace.java: New file.
2006-05-24 Andreas Tobler <a.tobler@schweiz.ch> * testsuite/libjava.lang/stacktrace.java: New file. * testsuite/libjava.lang/stacktrace.out: Likewise. From-SVN: r114052
This commit is contained in:
parent
ee4e9e6531
commit
860d14158e
@ -1,3 +1,8 @@
|
||||
2006-05-24 Andreas Tobler <a.tobler@schweiz.ch>
|
||||
|
||||
* testsuite/libjava.lang/stacktrace.java: New file.
|
||||
* testsuite/libjava.lang/stacktrace.out: Likewise.
|
||||
|
||||
2006-05-24 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* sources.am, Makefile.in: Rebuilt.
|
||||
@ -59,7 +64,7 @@
|
||||
2006-05-22 Mark Wielaard <mark@klomp.org>
|
||||
|
||||
* HACKING: Update GNU Classpath import instructions.
|
||||
|
||||
|
||||
2006-05-21 Andreas Tobler <a.tobler@schweiz.ch>
|
||||
|
||||
* java/lang/natClass.cc (_Jv_FindMethodInCache): Mark klass, name and
|
||||
|
67
libjava/testsuite/libjava.lang/stacktrace.java
Normal file
67
libjava/testsuite/libjava.lang/stacktrace.java
Normal file
@ -0,0 +1,67 @@
|
||||
/* This test should test the stacktrace functionality.
|
||||
We only print ClassName and MethName since the other information
|
||||
like FileName and LineNumber are not consistent while building
|
||||
native or interpreted and we want to test the output inside the dejagnu
|
||||
test environment.
|
||||
Also, we have to make the methods public since they might be optimized away
|
||||
with inline's and then the -O3/-O2 execution might fail.
|
||||
*/
|
||||
public class stacktrace {
|
||||
public static void main(String args[]) {
|
||||
try {
|
||||
new stacktrace().a();
|
||||
} catch (TopException e) {
|
||||
}
|
||||
}
|
||||
|
||||
public void a() throws TopException {
|
||||
try {
|
||||
b();
|
||||
} catch (MiddleException e) {
|
||||
throw new TopException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void b() throws MiddleException {
|
||||
c();
|
||||
}
|
||||
|
||||
public void c() throws MiddleException {
|
||||
try {
|
||||
d();
|
||||
} catch (BottomException e) {
|
||||
throw new MiddleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void d() throws BottomException {
|
||||
e();
|
||||
}
|
||||
|
||||
public void e() throws BottomException {
|
||||
throw new BottomException();
|
||||
}
|
||||
}
|
||||
|
||||
class TopException extends Exception {
|
||||
TopException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
||||
|
||||
class MiddleException extends Exception {
|
||||
MiddleException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
||||
|
||||
class BottomException extends Exception {
|
||||
BottomException() {
|
||||
StackTraceElement stack[] = this.getStackTrace();
|
||||
for (int i = 0; i < stack.length; i++) {
|
||||
String className = stack[i].getClassName();
|
||||
String methodName = stack[i].getMethodName();
|
||||
System.out.println(className + "." + methodName);
|
||||
}
|
||||
}
|
||||
}
|
6
libjava/testsuite/libjava.lang/stacktrace.out
Normal file
6
libjava/testsuite/libjava.lang/stacktrace.out
Normal file
@ -0,0 +1,6 @@
|
||||
stacktrace.e
|
||||
stacktrace.d
|
||||
stacktrace.c
|
||||
stacktrace.b
|
||||
stacktrace.a
|
||||
stacktrace.main
|
Loading…
Reference in New Issue
Block a user