public abstract class org.junit.runners.ParentRunner extends org.junit.runner.Runner implements org.junit.runner.manipulation.Filterable, org.junit.runner.manipulation.Orderable
{
private static final java.util.List VALIDATORS;
private final java.util.concurrent.locks.Lock childrenLock;
private final org.junit.runners.model.TestClass testClass;
private volatile java.util.List filteredChildren;
private volatile org.junit.runners.model.RunnerScheduler scheduler;
protected void <init>(java.lang.Class) throws org.junit.runners.model.InitializationError
{
java.util.concurrent.locks.ReentrantLock v;
org.junit.runners.model.TestClass v;
java.lang.Class v;
org.junit.runners.ParentRunner v;
org.junit.runners.ParentRunner$1 v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: java.lang.Class;
specialinvoke v.<org.junit.runner.Runner: void <init>()>();
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock> = v;
v.<org.junit.runners.ParentRunner: java.util.List filteredChildren> = null;
v = new org.junit.runners.ParentRunner$1;
specialinvoke v.<org.junit.runners.ParentRunner$1: void <init>(org.junit.runners.ParentRunner)>(v);
v.<org.junit.runners.ParentRunner: org.junit.runners.model.RunnerScheduler scheduler> = v;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass createTestClass(java.lang.Class)>(v);
v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass> = v;
specialinvoke v.<org.junit.runners.ParentRunner: void validate()>();
return;
}
protected void <init>(org.junit.runners.model.TestClass) throws org.junit.runners.model.InitializationError
{
java.util.concurrent.locks.ReentrantLock v;
org.junit.runners.model.TestClass v;
java.lang.Object v;
org.junit.runners.ParentRunner v;
org.junit.runners.ParentRunner$1 v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runners.model.TestClass;
specialinvoke v.<org.junit.runner.Runner: void <init>()>();
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock> = v;
v.<org.junit.runners.ParentRunner: java.util.List filteredChildren> = null;
v = new org.junit.runners.ParentRunner$1;
specialinvoke v.<org.junit.runners.ParentRunner$1: void <init>(org.junit.runners.ParentRunner)>(v);
v.<org.junit.runners.ParentRunner: org.junit.runners.model.RunnerScheduler scheduler> = v;
v = staticinvoke <org.junit.internal.Checks: java.lang.Object notNull(java.lang.Object)>(v);
v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass> = v;
specialinvoke v.<org.junit.runners.ParentRunner: void validate()>();
return;
}
protected org.junit.runners.model.TestClass createTestClass(java.lang.Class)
{
java.lang.Class v;
org.junit.runners.ParentRunner v;
org.junit.runners.model.TestClass v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: java.lang.Class;
v = new org.junit.runners.model.TestClass;
specialinvoke v.<org.junit.runners.model.TestClass: void <init>(java.lang.Class)>(v);
return v;
}
protected abstract java.util.List getChildren();
protected abstract org.junit.runner.Description describeChild(java.lang.Object);
protected abstract void runChild(java.lang.Object, org.junit.runner.notification.RunNotifier);
protected void collectInitializationErrors(java.util.List)
{
java.util.List v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: java.util.List;
virtualinvoke v.<org.junit.runners.ParentRunner: void validatePublicVoidNoArgMethods(java.lang.Class,boolean,java.util.List)>(class "Lorg/junit/BeforeClass;", 1, v);
virtualinvoke v.<org.junit.runners.ParentRunner: void validatePublicVoidNoArgMethods(java.lang.Class,boolean,java.util.List)>(class "Lorg/junit/AfterClass;", 1, v);
specialinvoke v.<org.junit.runners.ParentRunner: void validateClassRules(java.util.List)>(v);
specialinvoke v.<org.junit.runners.ParentRunner: void applyValidators(java.util.List)>(v);
return;
}
private void applyValidators(java.util.List)
{
java.util.Iterator v;
java.util.List v, v, v;
org.junit.runners.model.TestClass v, v;
java.lang.Class v;
java.lang.Object v;
org.junit.runners.ParentRunner v;
boolean v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: java.util.List;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass getTestClass()>();
v = virtualinvoke v.<org.junit.runners.model.TestClass: java.lang.Class getJavaClass()>();
if v == null goto label;
v = <org.junit.runners.ParentRunner: java.util.List VALIDATORS>;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass getTestClass()>();
v = interfaceinvoke v.<org.junit.validator.TestClassValidator: java.util.List validateTestClass(org.junit.runners.model.TestClass)>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
goto label;
label:
return;
}
protected void validatePublicVoidNoArgMethods(java.lang.Class, boolean, java.util.List)
{
java.util.Iterator v;
java.util.List v, v;
org.junit.runners.model.TestClass v;
java.lang.Class v;
java.lang.Object v;
org.junit.runners.ParentRunner v;
boolean v, v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: java.lang.Class;
v := @parameter: boolean;
v := @parameter: java.util.List;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass getTestClass()>();
v = virtualinvoke v.<org.junit.runners.model.TestClass: java.util.List getAnnotatedMethods(java.lang.Class)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.junit.runners.model.FrameworkMethod: void validatePublicVoidNoArg(boolean,java.util.List)>(v, v);
goto label;
label:
return;
}
private void validateClassRules(java.util.List)
{
java.util.List v;
org.junit.runners.model.TestClass v, v;
org.junit.internal.runners.rules.RuleMemberValidator v, v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: java.util.List;
v = <org.junit.internal.runners.rules.RuleMemberValidator: org.junit.internal.runners.rules.RuleMemberValidator CLASS_RULE_VALIDATOR>;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass getTestClass()>();
virtualinvoke v.<org.junit.internal.runners.rules.RuleMemberValidator: void validate(org.junit.runners.model.TestClass,java.util.List)>(v, v);
v = <org.junit.internal.runners.rules.RuleMemberValidator: org.junit.internal.runners.rules.RuleMemberValidator CLASS_RULE_METHOD_VALIDATOR>;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass getTestClass()>();
virtualinvoke v.<org.junit.internal.runners.rules.RuleMemberValidator: void validate(org.junit.runners.model.TestClass,java.util.List)>(v, v);
return;
}
protected org.junit.runners.model.Statement classBlock(org.junit.runner.notification.RunNotifier)
{
org.junit.runners.model.Statement v, v, v, v;
org.junit.runners.ParentRunner v;
org.junit.runner.notification.RunNotifier v;
boolean v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.notification.RunNotifier;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.Statement childrenInvoker(org.junit.runner.notification.RunNotifier)>(v);
v = specialinvoke v.<org.junit.runners.ParentRunner: boolean areAllChildrenIgnored()>();
if v != 0 goto label;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.Statement withBeforeClasses(org.junit.runners.model.Statement)>(v);
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.Statement withAfterClasses(org.junit.runners.model.Statement)>(v);
v = specialinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.Statement withClassRules(org.junit.runners.model.Statement)>(v);
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.Statement withInterruptIsolation(org.junit.runners.model.Statement)>(v);
label:
return v;
}
private boolean areAllChildrenIgnored()
{
java.util.List v;
java.util.Iterator v;
java.lang.Object v;
org.junit.runners.ParentRunner v;
boolean v, v;
v := @this: org.junit.runners.ParentRunner;
v = specialinvoke v.<org.junit.runners.ParentRunner: java.util.List getFilteredChildren()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.junit.runners.ParentRunner: boolean isIgnored(java.lang.Object)>(v);
if v != 0 goto label;
return 0;
label:
return 1;
}
protected org.junit.runners.model.Statement withBeforeClasses(org.junit.runners.model.Statement)
{
org.junit.runners.model.Statement v, v;
java.util.List v;
org.junit.runners.model.TestClass v;
org.junit.internal.runners.statements.RunBefores v;
org.junit.runners.ParentRunner v;
boolean v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runners.model.Statement;
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass>;
v = virtualinvoke v.<org.junit.runners.model.TestClass: java.util.List getAnnotatedMethods(java.lang.Class)>(class "Lorg/junit/BeforeClass;");
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = new org.junit.internal.runners.statements.RunBefores;
v = v;
specialinvoke v.<org.junit.internal.runners.statements.RunBefores: void <init>(org.junit.runners.model.Statement,java.util.List,java.lang.Object)>(v, v, null);
label:
return v;
}
protected org.junit.runners.model.Statement withAfterClasses(org.junit.runners.model.Statement)
{
org.junit.runners.model.Statement v, v;
java.util.List v;
org.junit.runners.model.TestClass v;
org.junit.internal.runners.statements.RunAfters v;
org.junit.runners.ParentRunner v;
boolean v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runners.model.Statement;
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass>;
v = virtualinvoke v.<org.junit.runners.model.TestClass: java.util.List getAnnotatedMethods(java.lang.Class)>(class "Lorg/junit/AfterClass;");
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = new org.junit.internal.runners.statements.RunAfters;
v = v;
specialinvoke v.<org.junit.internal.runners.statements.RunAfters: void <init>(org.junit.runners.model.Statement,java.util.List,java.lang.Object)>(v, v, null);
label:
return v;
}
private org.junit.runners.model.Statement withClassRules(org.junit.runners.model.Statement)
{
org.junit.runners.model.Statement v, v;
java.util.List v;
org.junit.rules.RunRules v;
org.junit.runner.Description v;
org.junit.runners.ParentRunner v;
boolean v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runners.model.Statement;
v = virtualinvoke v.<org.junit.runners.ParentRunner: java.util.List classRules()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = new org.junit.rules.RunRules;
v = v;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runner.Description getDescription()>();
specialinvoke v.<org.junit.rules.RunRules: void <init>(org.junit.runners.model.Statement,java.lang.Iterable,org.junit.runner.Description)>(v, v, v);
label:
return v;
}
protected java.util.List classRules()
{
java.util.List v;
org.junit.runners.model.TestClass v, v;
org.junit.runners.ParentRunner$ClassRuleCollector v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v = new org.junit.runners.ParentRunner$ClassRuleCollector;
specialinvoke v.<org.junit.runners.ParentRunner$ClassRuleCollector: void <init>()>();
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass>;
virtualinvoke v.<org.junit.runners.model.TestClass: void collectAnnotatedMethodValues(java.lang.Object,java.lang.Class,java.lang.Class,org.junit.runners.model.MemberValueConsumer)>(null, class "Lorg/junit/ClassRule;", class "Lorg/junit/rules/TestRule;", v);
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass>;
virtualinvoke v.<org.junit.runners.model.TestClass: void collectAnnotatedFieldValues(java.lang.Object,java.lang.Class,java.lang.Class,org.junit.runners.model.MemberValueConsumer)>(null, class "Lorg/junit/ClassRule;", class "Lorg/junit/rules/TestRule;", v);
v = virtualinvoke v.<org.junit.runners.ParentRunner$ClassRuleCollector: java.util.List getOrderedRules()>();
return v;
}
protected org.junit.runners.model.Statement childrenInvoker(org.junit.runner.notification.RunNotifier)
{
org.junit.runners.ParentRunner v;
org.junit.runner.notification.RunNotifier v;
org.junit.runners.ParentRunner$2 v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.notification.RunNotifier;
v = new org.junit.runners.ParentRunner$2;
specialinvoke v.<org.junit.runners.ParentRunner$2: void <init>(org.junit.runners.ParentRunner,org.junit.runner.notification.RunNotifier)>(v, v);
return v;
}
protected final org.junit.runners.model.Statement withInterruptIsolation(org.junit.runners.model.Statement)
{
org.junit.runners.ParentRunner$3 v;
org.junit.runners.model.Statement v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runners.model.Statement;
v = new org.junit.runners.ParentRunner$3;
specialinvoke v.<org.junit.runners.ParentRunner$3: void <init>(org.junit.runners.ParentRunner,org.junit.runners.model.Statement)>(v, v);
return v;
}
protected boolean isIgnored(java.lang.Object)
{
java.lang.Object v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: java.lang.Object;
return 0;
}
private void runChildren(org.junit.runner.notification.RunNotifier)
{
java.lang.Throwable v;
java.util.Iterator v;
org.junit.runners.ParentRunner$4 v;
org.junit.runners.model.RunnerScheduler v;
java.util.List v;
java.lang.Object v;
org.junit.runners.ParentRunner v;
org.junit.runner.notification.RunNotifier v;
boolean v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.notification.RunNotifier;
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.RunnerScheduler scheduler>;
label:
v = specialinvoke v.<org.junit.runners.ParentRunner: java.util.List getFilteredChildren()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.junit.runners.ParentRunner$4;
specialinvoke v.<org.junit.runners.ParentRunner$4: void <init>(org.junit.runners.ParentRunner,java.lang.Object,org.junit.runner.notification.RunNotifier)>(v, v, v);
interfaceinvoke v.<org.junit.runners.model.RunnerScheduler: void schedule(java.lang.Runnable)>(v);
goto label;
label:
interfaceinvoke v.<org.junit.runners.model.RunnerScheduler: void finished()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.junit.runners.model.RunnerScheduler: void finished()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
protected java.lang.String getName()
{
org.junit.runners.ParentRunner v;
java.lang.String v;
org.junit.runners.model.TestClass v;
v := @this: org.junit.runners.ParentRunner;
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass>;
v = virtualinvoke v.<org.junit.runners.model.TestClass: java.lang.String getName()>();
return v;
}
public final org.junit.runners.model.TestClass getTestClass()
{
org.junit.runners.ParentRunner v;
org.junit.runners.model.TestClass v;
v := @this: org.junit.runners.ParentRunner;
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass>;
return v;
}
protected final void runLeaf(org.junit.runners.model.Statement, org.junit.runner.Description, org.junit.runner.notification.RunNotifier)
{
java.lang.Throwable v, v;
org.junit.runners.model.Statement v;
org.junit.internal.runners.model.EachTestNotifier v;
org.junit.runner.Description v;
org.junit.internal.AssumptionViolatedException v;
org.junit.runners.ParentRunner v;
org.junit.runner.notification.RunNotifier v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runners.model.Statement;
v := @parameter: org.junit.runner.Description;
v := @parameter: org.junit.runner.notification.RunNotifier;
v = new org.junit.internal.runners.model.EachTestNotifier;
specialinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void <init>(org.junit.runner.notification.RunNotifier,org.junit.runner.Description)>(v, v);
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestStarted()>();
label:
virtualinvoke v.<org.junit.runners.model.Statement: void evaluate()>();
label:
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestFinished()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void addFailedAssumption(org.junit.internal.AssumptionViolatedException)>(v);
label:
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestFinished()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void addFailure(java.lang.Throwable)>(v);
label:
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestFinished()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestFinished()>();
throw v;
label:
return;
catch org.junit.internal.AssumptionViolatedException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected java.lang.'annotation'.Annotation[] getRunnerAnnotations()
{
org.junit.runners.ParentRunner v;
java.lang.'annotation'.Annotation[] v;
org.junit.runners.model.TestClass v;
v := @this: org.junit.runners.ParentRunner;
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass>;
v = virtualinvoke v.<org.junit.runners.model.TestClass: java.lang.'annotation'.Annotation[] getAnnotations()>();
return v;
}
public org.junit.runner.Description getDescription()
{
java.util.Iterator v;
org.junit.runner.Description v, v;
java.lang.'annotation'.Annotation[] v, v;
java.util.List v;
org.junit.runners.model.TestClass v;
java.lang.Class v;
java.lang.Object v;
org.junit.runners.ParentRunner v;
java.lang.String v, v, v;
boolean v, v;
v := @this: org.junit.runners.ParentRunner;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass getTestClass()>();
v = virtualinvoke v.<org.junit.runners.model.TestClass: java.lang.Class getJavaClass()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<org.junit.runners.ParentRunner: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = virtualinvoke v.<org.junit.runners.ParentRunner: java.lang.String getName()>();
v = virtualinvoke v.<org.junit.runners.ParentRunner: java.lang.'annotation'.Annotation[] getRunnerAnnotations()>();
v = staticinvoke <org.junit.runner.Description: org.junit.runner.Description createSuiteDescription(java.lang.String,java.lang.'annotation'.Annotation[])>(v, v);
goto label;
label:
v = virtualinvoke v.<org.junit.runners.ParentRunner: java.lang.'annotation'.Annotation[] getRunnerAnnotations()>();
v = staticinvoke <org.junit.runner.Description: org.junit.runner.Description createSuiteDescription(java.lang.Class,java.lang.'annotation'.Annotation[])>(v, v);
label:
v = specialinvoke v.<org.junit.runners.ParentRunner: java.util.List getFilteredChildren()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runner.Description describeChild(java.lang.Object)>(v);
virtualinvoke v.<org.junit.runner.Description: void addChild(org.junit.runner.Description)>(v);
goto label;
label:
return v;
}
public void run(org.junit.runner.notification.RunNotifier)
{
java.lang.Throwable v, v;
org.junit.runners.model.Statement v;
org.junit.internal.runners.model.EachTestNotifier v;
org.junit.runner.Description v;
org.junit.internal.AssumptionViolatedException v;
org.junit.runner.notification.StoppedByUserException v;
org.junit.runners.ParentRunner v;
org.junit.runner.notification.RunNotifier v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.notification.RunNotifier;
v = new org.junit.internal.runners.model.EachTestNotifier;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runner.Description getDescription()>();
specialinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void <init>(org.junit.runner.notification.RunNotifier,org.junit.runner.Description)>(v, v);
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestSuiteStarted()>();
label:
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runners.model.Statement classBlock(org.junit.runner.notification.RunNotifier)>(v);
virtualinvoke v.<org.junit.runners.model.Statement: void evaluate()>();
label:
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestSuiteFinished()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void addFailedAssumption(org.junit.internal.AssumptionViolatedException)>(v);
label:
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestSuiteFinished()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void addFailure(java.lang.Throwable)>(v);
label:
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestSuiteFinished()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.junit.internal.runners.model.EachTestNotifier: void fireTestSuiteFinished()>();
throw v;
label:
return;
catch org.junit.internal.AssumptionViolatedException from label to label with label;
catch org.junit.runner.notification.StoppedByUserException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void filter(org.junit.runner.manipulation.Filter) throws org.junit.runner.manipulation.NoTestsRemainException
{
java.lang.Throwable v;
java.util.ArrayList v;
boolean v, v, v;
java.util.Iterator v;
org.junit.runner.manipulation.Filter v;
org.junit.runner.manipulation.NoTestsRemainException v, v;
java.util.List v, v, v;
java.util.concurrent.locks.Lock v, v, v;
java.lang.Object v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.manipulation.Filter;
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = new java.util.ArrayList;
v = specialinvoke v.<org.junit.runners.ParentRunner: java.util.List getFilteredChildren()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = specialinvoke v.<org.junit.runners.ParentRunner: boolean shouldRun(org.junit.runner.manipulation.Filter,java.lang.Object)>(v, v);
if v == 0 goto label;
label:
virtualinvoke v.<org.junit.runner.manipulation.Filter: void apply(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
v.<org.junit.runners.ParentRunner: java.util.List filteredChildren> = v;
v = v.<org.junit.runners.ParentRunner: java.util.List filteredChildren>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = new org.junit.runner.manipulation.NoTestsRemainException;
specialinvoke v.<org.junit.runner.manipulation.NoTestsRemainException: void <init>()>();
throw v;
label:
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch org.junit.runner.manipulation.NoTestsRemainException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void sort(org.junit.runner.manipulation.Sorter)
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.ArrayList v;
java.util.List v, v, v;
java.util.concurrent.locks.Lock v, v, v;
java.lang.Object v;
org.junit.runners.ParentRunner v;
java.util.Comparator v;
boolean v, v;
org.junit.runner.manipulation.Sorter v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.manipulation.Sorter;
v = specialinvoke v.<org.junit.runners.ParentRunner: boolean shouldNotReorder()>();
if v == 0 goto label;
return;
label:
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = specialinvoke v.<org.junit.runners.ParentRunner: java.util.List getFilteredChildren()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.junit.runner.manipulation.Sorter: void apply(java.lang.Object)>(v);
goto label;
label:
v = new java.util.ArrayList;
v = specialinvoke v.<org.junit.runners.ParentRunner: java.util.List getFilteredChildren()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = specialinvoke v.<org.junit.runners.ParentRunner: java.util.Comparator comparator(org.junit.runner.manipulation.Sorter)>(v);
staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
v.<org.junit.runners.ParentRunner: java.util.List filteredChildren> = v;
label:
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void order(org.junit.runner.manipulation.Orderer) throws org.junit.runner.manipulation.InvalidOrderingException
{
java.lang.Throwable v;
java.util.ArrayList v, v;
java.util.LinkedHashMap v;
org.junit.runner.manipulation.Orderer v;
int v, v;
boolean v, v, v;
java.util.Iterator v, v;
java.util.Set v;
org.junit.runner.Description v;
java.util.List v, v, v;
java.util.concurrent.locks.Lock v, v, v;
java.lang.Object v, v, v, v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.manipulation.Orderer;
v = specialinvoke v.<org.junit.runners.ParentRunner: boolean shouldNotReorder()>();
if v == 0 goto label;
return;
label:
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = specialinvoke v.<org.junit.runners.ParentRunner: java.util.List getFilteredChildren()>();
v = new java.util.LinkedHashMap;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<java.util.LinkedHashMap: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runner.Description describeChild(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(1);
v = v;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.junit.runner.manipulation.Orderer: void apply(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = virtualinvoke v.<org.junit.runner.manipulation.Orderer: java.util.List order(java.util.Collection)>(v);
v = new java.util.ArrayList;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
v.<org.junit.runners.ParentRunner: java.util.List filteredChildren> = v;
label:
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private boolean shouldNotReorder()
{
java.lang.'annotation'.Annotation v;
org.junit.runner.Description v;
org.junit.runners.ParentRunner v;
boolean v;
v := @this: org.junit.runners.ParentRunner;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runner.Description getDescription()>();
v = virtualinvoke v.<org.junit.runner.Description: java.lang.'annotation'.Annotation getAnnotation(java.lang.Class)>(class "Lorg/junit/FixMethodOrder;");
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void validate() throws org.junit.runners.model.InitializationError
{
org.junit.runners.model.InvalidTestClassError v;
org.junit.runners.model.TestClass v;
java.lang.Class v;
org.junit.runners.ParentRunner v;
boolean v;
java.util.ArrayList v;
v := @this: org.junit.runners.ParentRunner;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
virtualinvoke v.<org.junit.runners.ParentRunner: void collectInitializationErrors(java.util.List)>(v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = new org.junit.runners.model.InvalidTestClassError;
v = v.<org.junit.runners.ParentRunner: org.junit.runners.model.TestClass testClass>;
v = virtualinvoke v.<org.junit.runners.model.TestClass: java.lang.Class getJavaClass()>();
specialinvoke v.<org.junit.runners.model.InvalidTestClassError: void <init>(java.lang.Class,java.util.List)>(v, v);
throw v;
label:
return;
}
private java.util.List getFilteredChildren()
{
java.lang.Throwable v;
java.util.ArrayList v;
java.util.List v, v, v, v, v;
java.util.concurrent.locks.Lock v, v, v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v = v.<org.junit.runners.ParentRunner: java.util.List filteredChildren>;
if v != null goto label;
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<org.junit.runners.ParentRunner: java.util.List filteredChildren>;
if v != null goto label;
v = new java.util.ArrayList;
v = virtualinvoke v.<org.junit.runners.ParentRunner: java.util.List getChildren()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = staticinvoke <java.util.Collections: java.util.List unmodifiableList(java.util.List)>(v);
v.<org.junit.runners.ParentRunner: java.util.List filteredChildren> = v;
label:
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.junit.runners.ParentRunner: java.util.concurrent.locks.Lock childrenLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
v = v.<org.junit.runners.ParentRunner: java.util.List filteredChildren>;
return v;
catch java.lang.Throwable from label to label with label;
}
private boolean shouldRun(org.junit.runner.manipulation.Filter, java.lang.Object)
{
org.junit.runner.manipulation.Filter v;
java.lang.Object v;
org.junit.runner.Description v;
org.junit.runners.ParentRunner v;
boolean v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.manipulation.Filter;
v := @parameter: java.lang.Object;
v = virtualinvoke v.<org.junit.runners.ParentRunner: org.junit.runner.Description describeChild(java.lang.Object)>(v);
v = virtualinvoke v.<org.junit.runner.manipulation.Filter: boolean shouldRun(org.junit.runner.Description)>(v);
return v;
}
private java.util.Comparator comparator(org.junit.runner.manipulation.Sorter)
{
org.junit.runners.ParentRunner v;
org.junit.runners.ParentRunner$5 v;
org.junit.runner.manipulation.Sorter v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runner.manipulation.Sorter;
v = new org.junit.runners.ParentRunner$5;
specialinvoke v.<org.junit.runners.ParentRunner$5: void <init>(org.junit.runners.ParentRunner,org.junit.runner.manipulation.Sorter)>(v, v);
return v;
}
public void setScheduler(org.junit.runners.model.RunnerScheduler)
{
org.junit.runners.model.RunnerScheduler v;
org.junit.runners.ParentRunner v;
v := @this: org.junit.runners.ParentRunner;
v := @parameter: org.junit.runners.model.RunnerScheduler;
v.<org.junit.runners.ParentRunner: org.junit.runners.model.RunnerScheduler scheduler> = v;
return;
}
static void <clinit>()
{
org.junit.validator.AnnotationsValidator v;
java.util.List v;
v = new org.junit.validator.AnnotationsValidator;
specialinvoke v.<org.junit.validator.AnnotationsValidator: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
<org.junit.runners.ParentRunner: java.util.List VALIDATORS> = v;
return;
}
}