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:
Andreas Tobler 2006-05-24 22:42:38 +02:00 committed by Andreas Tobler
parent ee4e9e6531
commit 860d14158e
3 changed files with 79 additions and 1 deletions

View File

@ -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

View 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);
}
}
}

View File

@ -0,0 +1,6 @@
stacktrace.e
stacktrace.d
stacktrace.c
stacktrace.b
stacktrace.a
stacktrace.main