KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gov > nasa > jpf > jvm > TestStackTrace


1 //
2
// Copyright (C) 2005 United States Government as represented by the
3
// Administrator of the National Aeronautics and Space Administration
4
// (NASA). All Rights Reserved.
5
//
6
// This software is distributed under the NASA Open Source Agreement
7
// (NOSA), version 1.3. The NOSA has been approved by the Open Source
8
// Initiative. See the file NOSA-1.3-JPF at the top of the distribution
9
// directory tree for the complete NOSA document.
10
//
11
// THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY
12
// KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
13
// LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO
14
// SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
15
// A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT
16
// THE SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT
17
// DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE.
18
//
19
package gov.nasa.jpf.jvm;
20
21 /**
22  * stack trace API test
23  */

24 public class TestStackTrace {
25   public static void main (String JavaDoc[] args) {
26     TestStackTrace t = new TestStackTrace();
27
28     if (args.length > 0) {
29       // just run the specified tests
30
for (int i = 0; i < args.length; i++) {
31         String JavaDoc func = args[i];
32
33         // note that we don't use reflection here because this would
34
// blow up execution/test scope under JPF
35
if ("testGetStackTrace".equals(func)) {
36           t.testGetStackTrace();
37         } else {
38           throw new IllegalArgumentException JavaDoc("unknown test function");
39         }
40       }
41     } else {
42       // that's mainly for our standalone test verification
43
t.testGetStackTrace();
44     }
45   }
46
47   public void testGetStackTrace () {
48     getStackTrace_1();
49   }
50
51   void getStackTrace_1 () {
52     getStackTrace_2();
53   }
54
55   void getStackTrace_2 () {
56     Throwable JavaDoc t = new Throwable JavaDoc();
57     StackTraceElement JavaDoc[] s = t.getStackTrace();
58
59     System.out.println("## " + s.length);
60
61     for (int i = 0; i < s.length; i++) {
62       System.out.println(s[i].getFileName() + ":" + s[i].getLineNumber() +
63                          " = " + s[i].getClassName() + "." +
64                          s[i].getMethodName());
65     }
66   }
67 }
Popular Tags