Package edu.umd.cs.findbugs.detect
Class InvalidJUnitTest
- java.lang.Object
-
- All Implemented Interfaces:
Detector
,Priorities
,org.apache.bcel.classfile.Visitor
public class InvalidJUnitTest extends BytecodeScanningDetector
-
-
Field Summary
Fields Modifier and Type Field Description private BugReporter
bugReporter
(package private) boolean
directChildOfTestCase
private boolean
sawSuperCall
private static int
SEEN_ALOAD_0
private static int
SEEN_NOTHING
private int
state
-
Fields inherited from class edu.umd.cs.findbugs.visitclass.DismantleBytecode
codeBytes, lineNumberTable, M_BR, M_CP, M_INT, M_PAD, M_R, M_UINT
-
Fields inherited from interface edu.umd.cs.findbugs.Priorities
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY
-
-
Constructor Summary
Constructors Constructor Description InvalidJUnitTest(BugReporter bugReporter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
enabled()
Check whether or not this detector should be enabled.private boolean
hasSuite(org.apache.bcel.classfile.Method[] methods)
is there a JUnit3TestSuiteprivate boolean
hasTestMethods(org.apache.bcel.classfile.JavaClass jClass)
private boolean
isJunit3TestCase(XClass jClass)
void
sawOpcode(int seen)
void
visit(org.apache.bcel.classfile.Code obj)
void
visit(org.apache.bcel.classfile.Method obj)
void
visitClassContext(ClassContext classContext)
Visit the ClassContext for a class which should be analyzed for instances of bug patterns.-
Methods inherited from class edu.umd.cs.findbugs.BytecodeScanningDetector
getClassContext, report, shouldVisitCode
-
Methods inherited from class edu.umd.cs.findbugs.visitclass.DismantleBytecode
afterOpcode, areOppositeBranches, atCatchBlock, beforeOpcode, getBranchFallThrough, getBranchOffset, getBranchTarget, getClassConstantOperand, getClassDescriptorOperand, getCodeByte, getConstantRefOperand, getDefaultSwitchOffset, getDottedClassConstantOperand, getFieldDescriptorOperand, getIntConstant, getLongConstant, getMaxPC, getMethodDescriptorOperand, getNameConstantOperand, getNextCodeByte, getNextOpcode, getNextPC, getOpcode, getPC, getPrevOpcode, getRefConstantOperand, getRefFieldIsStatic, getRegisterOperand, getSigConstantOperand, getStringConstantOperand, getSwitchLabels, getSwitchOffsets, getXClassOperand, getXFieldOperand, getXMethodOperand, isBranch, isMethodCall, isRegisterLoad, isRegisterStore, isRegisterStore, isReturn, isShift, isSwitch, isWideOpcode, printOpCode, sawBranchTo, sawClass, sawDouble, sawField, sawFloat, sawIMethod, sawInt, sawLong, sawMethod, sawRegister, sawString
-
Methods inherited from class edu.umd.cs.findbugs.visitclass.AnnotationVisitor
getAnnotationParameterAsEnum, getAnnotationParameterAsString, getAnnotationParameterAsStringArray, visitAnnotation, visitAnnotation, visitParameterAnnotation, visitParameterAnnotation, visitSyntheticParameterAnnotation
-
Methods inherited from class edu.umd.cs.findbugs.visitclass.PreorderVisitor
amVisitingMainMethod, asUnsignedByte, doVisitMethod, getClassDescriptor, getClassName, getCode, getConstantPool, getDottedClassName, getDottedFieldSig, getDottedMethodSig, getDottedSuperclassName, getField, getFieldDescriptor, getFieldIsStatic, getFieldName, getFieldSig, getFullyQualifiedFieldName, getFullyQualifiedMethodName, getMethod, getMethodDescriptor, getMethodName, getMethodSig, getMethodVisitOrder, getNumberArguments, getNumberMethodArguments, getPackageName, getSizeOfSurroundingTryBlock, getSizeOfSurroundingTryBlock, getSourceFile, getStringFromIndex, getSuperclassName, getSurroundingCaughtExceptions, getSurroundingCaughtExceptions, getSurroundingCaughtExceptionTypes, getSurroundingTryBlock, getSurroundingTryBlock, getThisClass, getXClass, getXField, getXMethod, hasInterestingClass, hasInterestingMethod, isVisitMethodsInCallOrder, setupVisitorForClass, setVisitMethodsInCallOrder, shouldVisit, toString, visitAfter, visitAfter, visitAnnotationDefault, visitAnnotationEntry, visitBootstrapMethods, visitCode, visitConstantInvokeDynamic, visitConstantMethodHandle, visitConstantMethodType, visitConstantModule, visitConstantPackage, visitConstantPool, visitEnclosingMethod, visitingField, visitingMethod, visitInnerClasses, visitJavaClass, visitLineNumberTable, visitLocalVariableTable, visitMethodParameters, visitParameterAnnotationEntry, visitStackMap, visitStackMapEntry
-
Methods inherited from class edu.umd.cs.findbugs.visitclass.BetterVisitor
clone, report, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantLong, visitConstantMethodref, visitConstantNameAndType, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitExceptionTable, visitField, visitInnerClass, visitLineNumber, visitLocalVariable, visitLocalVariableTypeTable, visitMethod, visitSignature, visitSourceFile, visitSynthetic, visitUnknown
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.bcel.classfile.Visitor
visitConstantDynamic, visitMethodParameter, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitNestMembers, visitRecord, visitRecordComponent, visitStackMapType
-
-
-
-
Field Detail
-
SEEN_NOTHING
private static final int SEEN_NOTHING
- See Also:
- Constant Field Values
-
SEEN_ALOAD_0
private static final int SEEN_ALOAD_0
- See Also:
- Constant Field Values
-
bugReporter
private final BugReporter bugReporter
-
state
private int state
-
directChildOfTestCase
boolean directChildOfTestCase
-
sawSuperCall
private boolean sawSuperCall
-
-
Constructor Detail
-
InvalidJUnitTest
public InvalidJUnitTest(BugReporter bugReporter)
-
-
Method Detail
-
visitClassContext
public void visitClassContext(ClassContext classContext)
Description copied from interface:Detector
Visit the ClassContext for a class which should be analyzed for instances of bug patterns.- Specified by:
visitClassContext
in interfaceDetector
- Overrides:
visitClassContext
in classBytecodeScanningDetector
- Parameters:
classContext
- the ClassContext
-
isJunit3TestCase
private boolean isJunit3TestCase(XClass jClass) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
hasTestMethods
private boolean hasTestMethods(org.apache.bcel.classfile.JavaClass jClass)
-
hasSuite
private boolean hasSuite(org.apache.bcel.classfile.Method[] methods)
is there a JUnit3TestSuite
-
enabled
private boolean enabled()
Check whether or not this detector should be enabled. The detector is disabled if the TestCase class cannot be found (meaning we don't have junit.jar on the aux classpath).- Returns:
- true if it should be enabled, false if not
-
visit
public void visit(org.apache.bcel.classfile.Method obj)
- Overrides:
visit
in classBetterVisitor
-
visit
public void visit(org.apache.bcel.classfile.Code obj)
- Overrides:
visit
in classDismantleBytecode
-
sawOpcode
public void sawOpcode(int seen)
- Overrides:
sawOpcode
in classDismantleBytecode
-
-