public class junit.textui.TestRunner extends junit.runner.BaseTestRunner
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: junit.textui.TestRunner
super_class: junit.runner.BaseTestRunner
{
private junit.textui.ResultPrinter fPrinter;
descriptor: Ljunit/textui/ResultPrinter;
flags: (0x0002) ACC_PRIVATE
public static final int SUCCESS_EXIT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int FAILURE_EXIT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int EXCEPTION_EXIT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.lang.System.out:Ljava/io/PrintStream;
invokespecial junit.textui.TestRunner.<init>:(Ljava/io/PrintStream;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljunit/textui/TestRunner;
public void <init>(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new junit.textui.ResultPrinter
dup
aload 1
invokespecial junit.textui.ResultPrinter.<init>:(Ljava/io/PrintStream;)V
invokespecial junit.textui.TestRunner.<init>:(Ljunit/textui/ResultPrinter;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljunit/textui/TestRunner;
0 2 1 writer Ljava/io/PrintStream;
MethodParameters:
Name Flags
writer
public void <init>(junit.textui.ResultPrinter);
descriptor: (Ljunit/textui/ResultPrinter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial junit.runner.BaseTestRunner.<init>:()V
1: aload 0
aload 1
putfield junit.textui.TestRunner.fPrinter:Ljunit/textui/ResultPrinter;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljunit/textui/TestRunner;
0 3 1 printer Ljunit/textui/ResultPrinter;
MethodParameters:
Name Flags
printer
public static void run(java.lang.Class<? extends junit.framework.TestCase>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new junit.framework.TestSuite
dup
aload 0
invokespecial junit.framework.TestSuite.<init>:(Ljava/lang/Class;)V
invokestatic junit.textui.TestRunner.run:(Ljunit/framework/Test;)Ljunit/framework/TestResult;
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 testClass Ljava/lang/Class<+Ljunit/framework/TestCase;>;
Signature: (Ljava/lang/Class<+Ljunit/framework/TestCase;>;)V
MethodParameters:
Name Flags
testClass
public static junit.framework.TestResult run(junit.framework.Test);
descriptor: (Ljunit/framework/Test;)Ljunit/framework/TestResult;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new junit.textui.TestRunner
dup
invokespecial junit.textui.TestRunner.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual junit.textui.TestRunner.doRun:(Ljunit/framework/Test;)Ljunit/framework/TestResult;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 test Ljunit/framework/Test;
1 2 1 runner Ljunit/textui/TestRunner;
MethodParameters:
Name Flags
test
public static void runAndWait(junit.framework.Test);
descriptor: (Ljunit/framework/Test;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new junit.textui.TestRunner
dup
invokespecial junit.textui.TestRunner.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
iconst_1
invokevirtual junit.textui.TestRunner.doRun:(Ljunit/framework/Test;Z)Ljunit/framework/TestResult;
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 suite Ljunit/framework/Test;
1 3 1 aTestRunner Ljunit/textui/TestRunner;
MethodParameters:
Name Flags
suite
public void testFailed(int, junit.framework.Test, java.lang.Throwable);
descriptor: (ILjunit/framework/Test;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljunit/textui/TestRunner;
0 1 1 status I
0 1 2 test Ljunit/framework/Test;
0 1 3 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
status
test
e
public void testStarted(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljunit/textui/TestRunner;
0 1 1 testName Ljava/lang/String;
MethodParameters:
Name Flags
testName
public void testEnded(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljunit/textui/TestRunner;
0 1 1 testName Ljava/lang/String;
MethodParameters:
Name Flags
testName
protected junit.framework.TestResult createTestResult();
descriptor: ()Ljunit/framework/TestResult;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: new junit.framework.TestResult
dup
invokespecial junit.framework.TestResult.<init>:()V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljunit/textui/TestRunner;
public junit.framework.TestResult doRun(junit.framework.Test);
descriptor: (Ljunit/framework/Test;)Ljunit/framework/TestResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual junit.textui.TestRunner.doRun:(Ljunit/framework/Test;Z)Ljunit/framework/TestResult;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljunit/textui/TestRunner;
0 1 1 test Ljunit/framework/Test;
MethodParameters:
Name Flags
test
public junit.framework.TestResult doRun(junit.framework.Test, boolean);
descriptor: (Ljunit/framework/Test;Z)Ljunit/framework/TestResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual junit.textui.TestRunner.createTestResult:()Ljunit/framework/TestResult;
astore 3
start local 3 1: aload 3
aload 0
getfield junit.textui.TestRunner.fPrinter:Ljunit/textui/ResultPrinter;
invokevirtual junit.framework.TestResult.addListener:(Ljunit/framework/TestListener;)V
2: invokestatic java.lang.System.currentTimeMillis:()J
lstore 4
start local 4 3: aload 1
aload 3
invokeinterface junit.framework.Test.run:(Ljunit/framework/TestResult;)V
4: invokestatic java.lang.System.currentTimeMillis:()J
lstore 6
start local 6 5: lload 6
lload 4
lsub
lstore 8
start local 8 6: aload 0
getfield junit.textui.TestRunner.fPrinter:Ljunit/textui/ResultPrinter;
aload 3
lload 8
invokevirtual junit.textui.ResultPrinter.print:(Ljunit/framework/TestResult;J)V
7: aload 0
iload 2
invokevirtual junit.textui.TestRunner.pause:(Z)V
8: aload 3
areturn
end local 8 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljunit/textui/TestRunner;
0 9 1 suite Ljunit/framework/Test;
0 9 2 wait Z
1 9 3 result Ljunit/framework/TestResult;
3 9 4 startTime J
5 9 6 endTime J
6 9 8 runTime J
MethodParameters:
Name Flags
suite
wait
protected void pause(boolean);
descriptor: (Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifne 1
return
1: StackMap locals:
StackMap stack:
aload 0
getfield junit.textui.TestRunner.fPrinter:Ljunit/textui/ResultPrinter;
invokevirtual junit.textui.ResultPrinter.printWaitPrompt:()V
2: getstatic java.lang.System.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
pop
3: goto 5
StackMap locals:
StackMap stack: java.lang.Exception
4: pop
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljunit/textui/TestRunner;
0 6 1 wait Z
Exception table:
from to target type
2 3 4 Class java.lang.Exception
MethodParameters:
Name Flags
wait
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: new junit.textui.TestRunner
dup
invokespecial junit.textui.TestRunner.<init>:()V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual junit.textui.TestRunner.start:([Ljava/lang/String;)Ljunit/framework/TestResult;
astore 2
start local 2 2: aload 2
invokevirtual junit.framework.TestResult.wasSuccessful:()Z
ifne 4
3: iconst_1
invokestatic java.lang.System.exit:(I)V
4: StackMap locals: junit.textui.TestRunner junit.framework.TestResult
StackMap stack:
iconst_0
invokestatic java.lang.System.exit:(I)V
end local 2 5: goto 9
StackMap locals: java.lang.String[] junit.textui.TestRunner
StackMap stack: java.lang.Exception
6: astore 2
start local 2 7: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 2
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
8: iconst_2
invokestatic java.lang.System.exit:(I)V
end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 args [Ljava/lang/String;
1 10 1 aTestRunner Ljunit/textui/TestRunner;
2 5 2 r Ljunit/framework/TestResult;
7 9 2 e Ljava/lang/Exception;
Exception table:
from to target type
1 5 6 Class java.lang.Exception
MethodParameters:
Name Flags
args
public junit.framework.TestResult start(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljunit/framework/TestResult;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: ldc ""
astore 2
start local 2 1: ldc ""
astore 3
start local 3 2: iconst_0
istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 22
5: StackMap locals: junit.textui.TestRunner java.lang.String[] java.lang.String java.lang.String int int
StackMap stack:
aload 1
iload 5
aaload
ldc "-wait"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
6: iconst_1
istore 4
7: goto 21
StackMap locals:
StackMap stack:
8: aload 1
iload 5
aaload
ldc "-c"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 11
9: aload 0
aload 1
iinc 5 1
iload 5
aaload
invokevirtual junit.textui.TestRunner.extractClassName:(Ljava/lang/String;)Ljava/lang/String;
astore 2
10: goto 21
StackMap locals:
StackMap stack:
11: aload 1
iload 5
aaload
ldc "-m"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
12: aload 1
iinc 5 1
iload 5
aaload
astore 6
start local 6 13: aload 6
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 7
start local 7 14: aload 6
iconst_0
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
15: aload 6
iload 7
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
end local 7 end local 6 16: goto 21
StackMap locals:
StackMap stack:
17: aload 1
iload 5
aaload
ldc "-v"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
18: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "JUnit "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic junit.runner.Version.id:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " by Kent Beck and Erich Gamma"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
19: goto 21
20: StackMap locals:
StackMap stack:
aload 1
iload 5
aaload
astore 2
21: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
22: iload 5
aload 1
arraylength
if_icmplt 5
end local 5 23: aload 2
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
24: new java.lang.Exception
dup
ldc "Usage: TestRunner [-wait] testCaseName, where name is the name of the TestCase class"
invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 3
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 28
26: aload 0
aload 2
aload 3
iload 4
invokevirtual junit.textui.TestRunner.runSingleMethod:(Ljava/lang/String;Ljava/lang/String;Z)Ljunit/framework/TestResult;
27: areturn
28: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual junit.textui.TestRunner.getTest:(Ljava/lang/String;)Ljunit/framework/Test;
astore 5
start local 5 29: aload 0
aload 5
iload 4
invokevirtual junit.textui.TestRunner.doRun:(Ljunit/framework/Test;Z)Ljunit/framework/TestResult;
30: areturn
end local 5 31: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 32: new java.lang.Exception
dup
new java.lang.StringBuilder
dup
ldc "Could not create and run test suite: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
athrow
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Ljunit/textui/TestRunner;
0 33 1 args [Ljava/lang/String;
1 33 2 testCase Ljava/lang/String;
2 33 3 method Ljava/lang/String;
3 33 4 wait Z
4 23 5 i I
13 16 6 arg Ljava/lang/String;
14 16 7 lastIndex I
29 31 5 suite Ljunit/framework/Test;
32 33 5 e Ljava/lang/Exception;
Exception table:
from to target type
25 27 31 Class java.lang.Exception
28 30 31 Class java.lang.Exception
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
args
protected junit.framework.TestResult runSingleMethod(java.lang.String, java.lang.String, boolean);
descriptor: (Ljava/lang/String;Ljava/lang/String;Z)Ljunit/framework/TestResult;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual junit.textui.TestRunner.loadSuiteClass:(Ljava/lang/String;)Ljava/lang/Class;
ldc Ljunit/framework/TestCase;
invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
astore 4
start local 4 1: aload 4
aload 2
invokestatic junit.framework.TestSuite.createTest:(Ljava/lang/Class;Ljava/lang/String;)Ljunit/framework/Test;
astore 5
start local 5 2: aload 0
aload 5
iload 3
invokevirtual junit.textui.TestRunner.doRun:(Ljunit/framework/Test;Z)Ljunit/framework/TestResult;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljunit/textui/TestRunner;
0 3 1 testCase Ljava/lang/String;
0 3 2 method Ljava/lang/String;
0 3 3 wait Z
1 3 4 testClass Ljava/lang/Class<+Ljunit/framework/TestCase;>;
2 3 5 test Ljunit/framework/Test;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
testCase
method
wait
protected void runFailed(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 1
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: iconst_1
invokestatic java.lang.System.exit:(I)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljunit/textui/TestRunner;
0 3 1 message Ljava/lang/String;
MethodParameters:
Name Flags
message
public void setPrinter(junit.textui.ResultPrinter);
descriptor: (Ljunit/textui/ResultPrinter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield junit.textui.TestRunner.fPrinter:Ljunit/textui/ResultPrinter;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljunit/textui/TestRunner;
0 2 1 printer Ljunit/textui/ResultPrinter;
MethodParameters:
Name Flags
printer
}
SourceFile: "TestRunner.java"