Class StaticFieldsInvariantRule
- java.lang.Object
-
- com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule
-
- All Implemented Interfaces:
org.junit.rules.TestRule
public class StaticFieldsInvariantRule extends java.lang.Object implements org.junit.rules.TestRule
ATestRule
that ensures static, reference fields of the suite class (and optionally its superclasses) are cleaned up after a suite is completed. This is helpful in finding out static memory leaks (a class references something huge but is no longer used).- See Also:
ClassRule
,accept(Field)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
StaticFieldsInvariantRule.Entry
-
Field Summary
Fields Modifier and Type Field Description private boolean
countSuperclasses
static long
DEFAULT_LEAK_THRESHOLD
private long
leakThreshold
-
Constructor Summary
Constructors Constructor Description StaticFieldsInvariantRule()
By default useDEFAULT_LEAK_THRESHOLD
as the threshold and count in superclasses.StaticFieldsInvariantRule(long leakThresholdBytes, boolean countSuperclasses)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
accept(java.lang.reflect.Field field)
org.junit.runners.model.Statement
apply(org.junit.runners.model.Statement s, org.junit.runner.Description d)
-
-
-
Field Detail
-
DEFAULT_LEAK_THRESHOLD
public static final long DEFAULT_LEAK_THRESHOLD
- See Also:
- Constant Field Values
-
leakThreshold
private final long leakThreshold
-
countSuperclasses
private final boolean countSuperclasses
-
-
Constructor Detail
-
StaticFieldsInvariantRule
public StaticFieldsInvariantRule()
By default useDEFAULT_LEAK_THRESHOLD
as the threshold and count in superclasses.
-
StaticFieldsInvariantRule
public StaticFieldsInvariantRule(long leakThresholdBytes, boolean countSuperclasses)
-
-
Method Detail
-
apply
public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement s, org.junit.runner.Description d)
- Specified by:
apply
in interfaceorg.junit.rules.TestRule
-
accept
protected boolean accept(java.lang.reflect.Field field)
- Returns:
- Return
false
to exclude a given field from being counted. By default final fields are rejected.
-
-