public class com.oracle.svm.junit.SVMJUnitRunner
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.junit.SVMJUnitRunner
super_class: java.lang.Object
{
private final com.oracle.mxtool.junit.MxJUnitRequest request;
descriptor: Lcom/oracle/mxtool/junit/MxJUnitRequest;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String missingClassesStr;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(org.graalvm.nativeimage.hosted.Feature$FeatureAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new com.oracle.svm.junit.SVMJUnitRunner$1
dup
aload 0
aload 1
invokespecial com.oracle.svm.junit.SVMJUnitRunner$1.<init>:(Lcom/oracle/svm/junit/SVMJUnitRunner;Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;)V
astore 2
start local 2 2: aconst_null
astore 3
aconst_null
astore 4
3: new java.io.BufferedReader
dup
new java.io.FileReader
dup
getstatic com.oracle.svm.junit.SVMJUnitRunner$Options.TestFile:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String
invokespecial java.io.FileReader.<init>:(Ljava/lang/String;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 5
start local 5 4: goto 6
start local 6 5: StackMap locals: com.oracle.svm.junit.SVMJUnitRunner org.graalvm.nativeimage.hosted.Feature$FeatureAccess com.oracle.mxtool.junit.MxJUnitRequest$Builder java.lang.Throwable java.lang.Throwable java.io.BufferedReader java.lang.String
StackMap stack:
aload 2
aload 6
invokevirtual com.oracle.mxtool.junit.MxJUnitRequest$Builder.addTestSpec:(Ljava/lang/String;)V
end local 6 6: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 6
start local 6 7: ifnonnull 5
end local 6 8: aload 5
ifnull 16
aload 5
invokevirtual java.io.BufferedReader.close:()V
goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 3
aload 5
ifnull 10
aload 5
invokevirtual java.io.BufferedReader.close:()V
end local 5 StackMap locals:
StackMap stack:
10: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 4
aload 3
ifnonnull 12
aload 4
astore 3
goto 13
StackMap locals:
StackMap stack:
12: aload 3
aload 4
if_acmpeq 13
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
13: aload 3
athrow
StackMap locals: com.oracle.svm.junit.SVMJUnitRunner org.graalvm.nativeimage.hosted.Feature$FeatureAccess com.oracle.mxtool.junit.MxJUnitRequest$Builder
StackMap stack: java.lang.Exception
14: astore 3
start local 3 15: aload 3
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 3 16: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.oracle.mxtool.junit.MxJUnitRequest$Builder.build:()Lcom/oracle/mxtool/junit/MxJUnitRequest;
putfield com.oracle.svm.junit.SVMJUnitRunner.request:Lcom/oracle/mxtool/junit/MxJUnitRequest;
17: aload 0
aload 0
invokevirtual com.oracle.svm.junit.SVMJUnitRunner.getMissingClasses:()Ljava/lang/String;
putfield com.oracle.svm.junit.SVMJUnitRunner.missingClassesStr:Ljava/lang/String;
18: aload 0
getfield com.oracle.svm.junit.SVMJUnitRunner.missingClassesStr:Ljava/lang/String;
ifnull 25
19: getstatic com.oracle.svm.junit.SVMJUnitRunner$Options.TestFile:Lcom/oracle/svm/core/option/HostedOptionKey;
getstatic com.oracle.svm.junit.SVMJUnitRunner$Options.TestFile:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String
invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 20: new java.lang.StringBuilder
dup
ldc "Warning: The test configuration file specified via "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: ldc " contains missing classes. Test execution will fail at run time. "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: ldc "Missing classes in configuration file: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.oracle.svm.junit.SVMJUnitRunner.missingClassesStr:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: astore 4
start local 4 24: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 4
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
end local 4 end local 3 25: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/oracle/svm/junit/SVMJUnitRunner;
0 26 1 access Lorg/graalvm/nativeimage/hosted/Feature$FeatureAccess;
2 26 2 builder Lcom/oracle/mxtool/junit/MxJUnitRequest$Builder;
4 10 5 br Ljava/io/BufferedReader;
5 6 6 buf Ljava/lang/String;
7 8 6 buf Ljava/lang/String;
15 16 3 ex Ljava/lang/Exception;
20 25 3 testFileOption Ljava/lang/String;
24 25 4 msg Ljava/lang/StringBuilder;
Exception table:
from to target type
4 8 9 any
3 11 11 any
2 14 14 Class java.lang.Exception
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
MethodParameters:
Name Flags
access
org.junit.runner.Request getJUnitRequest();
descriptor: ()Lorg/junit/runner/Request;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.junit.SVMJUnitRunner.request:Lcom/oracle/mxtool/junit/MxJUnitRequest;
invokevirtual com.oracle.mxtool.junit.MxJUnitRequest.getRequest:()Lorg/junit/runner/Request;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/junit/SVMJUnitRunner;
private java.lang.String getMissingClasses();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.junit.SVMJUnitRunner.request:Lcom/oracle/mxtool/junit/MxJUnitRequest;
invokevirtual com.oracle.mxtool.junit.MxJUnitRequest.getMissingClasses:()Ljava/util/List;
astore 1
start local 1 1: aload 1
invokeinterface java.util.List.size:()I
ifle 10
2: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 3: ldc ""
astore 3
start local 3 4: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 8
StackMap locals: com.oracle.svm.junit.SVMJUnitRunner java.util.List java.lang.StringBuilder java.lang.String top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.junit.runner.notification.Failure
astore 4
start local 4 6: aload 2
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual org.junit.runner.notification.Failure.getDescription:()Lorg/junit/runner/Description;
invokevirtual org.junit.runner.Description.getDisplayName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: ldc ", "
astore 3
end local 4 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 10: StackMap locals: com.oracle.svm.junit.SVMJUnitRunner java.util.List
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/junit/SVMJUnitRunner;
1 11 1 missingClasses Ljava/util/List<Lorg/junit/runner/notification/Failure;>;
3 10 2 missingClassesBuilder Ljava/lang/StringBuilder;
4 10 3 delim Ljava/lang/String;
6 8 4 missingClass Lorg/junit/runner/notification/Failure;
private void run(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: new org.junit.internal.RealSystem
dup
invokespecial org.junit.internal.RealSystem.<init>:()V
astore 2
start local 2 1: new org.junit.runner.JUnitCore
dup
invokespecial org.junit.runner.JUnitCore.<init>:()V
astore 3
start local 3 2: aload 2
invokeinterface org.junit.internal.JUnitSystem.out:()Ljava/io/PrintStream;
ldc "SVMJUnitCore"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: aload 2
invokeinterface org.junit.internal.JUnitSystem.out:()Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "JUnit version "
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: new com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig
dup
invokespecial com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.<init>:()V
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: goto 41
7: StackMap locals: com.oracle.svm.junit.SVMJUnitRunner java.lang.String[] org.junit.internal.JUnitSystem org.junit.runner.JUnitCore com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig int
StackMap stack:
aload 1
iload 5
iinc 5 1
aaload
astore 6
start local 6 8: aload 6
dup
astore 7
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 8
-1628852797: 9
-738798318: 10
-178600492: 11
-99208181: 12
531663243: 13
1465482043: 14
1737088994: 15
2004134452: 16
default: 40
}
StackMap locals: java.lang.String java.lang.String
StackMap stack:
9: aload 7
ldc "--color"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 25
goto 40
StackMap locals:
StackMap stack:
10: aload 7
ldc "--eager-stacktrace"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 38
goto 40
StackMap locals:
StackMap stack:
11: aload 7
ldc "--gc-after-test"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 27
goto 40
StackMap locals:
StackMap stack:
12: aload 7
ldc "--fail-fast"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
goto 40
StackMap locals:
StackMap stack:
13: aload 7
ldc "--very-verbose"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 19
goto 40
StackMap locals:
StackMap stack:
14: aload 7
ldc "--repeat"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 29
goto 40
StackMap locals:
StackMap stack:
15: aload 7
ldc "--verbose"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 17
goto 40
StackMap locals:
StackMap stack:
16: aload 7
ldc "--enable-timing"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 23
goto 40
17: StackMap locals:
StackMap stack:
aload 4
iconst_1
putfield com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.verbose:Z
18: goto 41
19: StackMap locals:
StackMap stack:
aload 4
iconst_1
putfield com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.veryVerbose:Z
20: goto 41
21: StackMap locals:
StackMap stack:
aload 4
iconst_1
putfield com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.failFast:Z
22: goto 41
23: StackMap locals:
StackMap stack:
aload 4
iconst_1
putfield com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.enableTiming:Z
24: goto 41
25: StackMap locals:
StackMap stack:
aload 4
iconst_1
putfield com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.color:Z
26: goto 41
27: StackMap locals:
StackMap stack:
aload 4
iconst_1
putfield com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.gcAfterTest:Z
28: goto 41
29: StackMap locals:
StackMap stack:
iload 5
aload 1
arraylength
if_icmpge 36
30: aload 1
iload 5
iinc 5 1
aaload
astore 8
start local 8 31: aload 4
aload 8
invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
putfield com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.repeatCount:I
32: goto 41
StackMap locals: com.oracle.svm.junit.SVMJUnitRunner java.lang.String[] org.junit.internal.JUnitSystem org.junit.runner.JUnitCore com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig int java.lang.String java.lang.String java.lang.String
StackMap stack: java.lang.NumberFormatException
33: pop
34: aload 2
invokeinterface org.junit.internal.JUnitSystem.out:()Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Invalid argument to --repeat, expected number, but got "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
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
end local 8 35: goto 41
36: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.junit.internal.JUnitSystem.out:()Ljava/io/PrintStream;
ldc "Missing argument to --repeat"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
37: goto 41
38: StackMap locals:
StackMap stack:
aload 4
iconst_1
putfield com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig.eagerStackTrace:Z
39: goto 41
40: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.junit.internal.JUnitSystem.out:()Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "Unknown command line argument: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
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
end local 6 41: StackMap locals:
StackMap stack:
iload 5
aload 1
arraylength
if_icmplt 7
42: aload 3
aload 2
aload 4
aload 0
getfield com.oracle.svm.junit.SVMJUnitRunner.request:Lcom/oracle/mxtool/junit/MxJUnitRequest;
invokestatic com.oracle.mxtool.junit.MxJUnitWrapper.runRequest:(Lorg/junit/runner/JUnitCore;Lorg/junit/internal/JUnitSystem;Lcom/oracle/mxtool/junit/MxJUnitWrapper$MxJUnitConfig;Lcom/oracle/mxtool/junit/MxJUnitRequest;)Lorg/junit/runner/Result;
astore 6
start local 6 43: aload 6
invokevirtual org.junit.runner.Result.wasSuccessful:()Z
ifeq 47
44: aload 2
invokeinterface org.junit.internal.JUnitSystem.out:()Ljava/io/PrintStream;
ldc "Test run PASSED. Exiting with status 0."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
45: iconst_0
invokestatic java.lang.System.exit:(I)V
46: goto 55
47: StackMap locals: org.junit.runner.Result
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Test run FAILED!"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 7
start local 7 48: aload 0
getfield com.oracle.svm.junit.SVMJUnitRunner.missingClassesStr:Ljava/lang/String;
ifnull 52
49: aload 7
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
50: aload 7
ldc "Missing classes in configuration file: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.oracle.svm.junit.SVMJUnitRunner.missingClassesStr:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
51: aload 7
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
52: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 7
ldc "Exiting with status 1."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
53: aload 2
invokeinterface org.junit.internal.JUnitSystem.out:()Ljava/io/PrintStream;
aload 7
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
54: iconst_1
invokestatic java.lang.System.exit:(I)V
end local 7 55: StackMap locals:
StackMap stack:
return
end local 6 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 56 0 this Lcom/oracle/svm/junit/SVMJUnitRunner;
0 56 1 args [Ljava/lang/String;
1 56 2 system Lorg/junit/internal/JUnitSystem;
2 56 3 junitCore Lorg/junit/runner/JUnitCore;
5 56 4 config Lcom/oracle/mxtool/junit/MxJUnitWrapper$MxJUnitConfig;
6 56 5 i I
8 41 6 arg Ljava/lang/String;
31 35 8 count Ljava/lang/String;
43 56 6 result Lorg/junit/runner/Result;
48 55 7 msg Ljava/lang/StringBuilder;
Exception table:
from to target type
31 32 33 Class java.lang.NumberFormatException
MethodParameters:
Name Flags
args
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc Lcom/oracle/svm/junit/SVMJUnitRunner;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast com.oracle.svm.junit.SVMJUnitRunner
aload 0
invokevirtual com.oracle.svm.junit.SVMJUnitRunner.run:([Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 args [Ljava/lang/String;
MethodParameters:
Name Flags
args
}
SourceFile: "SVMJUnitRunner.java"
NestMembers:
com.oracle.svm.junit.SVMJUnitRunner$1 com.oracle.svm.junit.SVMJUnitRunner$Options
InnerClasses:
public Builder = com.oracle.mxtool.junit.MxJUnitRequest$Builder of com.oracle.mxtool.junit.MxJUnitRequest
public MxJUnitConfig = com.oracle.mxtool.junit.MxJUnitWrapper$MxJUnitConfig of com.oracle.mxtool.junit.MxJUnitWrapper
com.oracle.svm.junit.SVMJUnitRunner$1
public Options = com.oracle.svm.junit.SVMJUnitRunner$Options of com.oracle.svm.junit.SVMJUnitRunner
public abstract FeatureAccess = org.graalvm.nativeimage.hosted.Feature$FeatureAccess of org.graalvm.nativeimage.hosted.Feature