Class CheckerFrameworkWPIPerDirectoryTest
- java.lang.Object
-
- org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest
-
- org.checkerframework.framework.test.CheckerFrameworkWPIPerDirectoryTest
-
- Direct Known Subclasses:
AinferGeneratePerDirectoryTest
,AinferValidatePerDirectoryTest
public abstract class CheckerFrameworkWPIPerDirectoryTest extends CheckerFrameworkPerDirectoryTest
A specialized variant ofCheckerFrameworkPerDirectoryTest
for testing the Whole Program Inference feature of the Checker Framework, which is tested by running pairs of these tests: a "generation test" (of classAinferGeneratePerDirectoryTest
) to do inference using the-Ainfer
option, and a "validation test" (of classAinferValidatePerDirectoryTest
) to check that files typecheck after those inferences are taken into account. This common superclass of those two classes should never be used directly.
-
-
Field Summary
-
Fields inherited from class org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest
checkerNames, checkerOptions, classpathExtra, testDir, testFiles
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CheckerFrameworkWPIPerDirectoryTest(java.util.List<java.io.File> testFiles, java.lang.Class<? extends javax.annotation.processing.AbstractProcessor> checker, java.lang.String testDir, java.lang.String... checkerOptions)
Creates a new checker test.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
checkResult(TypecheckResult typecheckResult)
Check that theTypecheckResult
did not fail.protected void
doNotTypecheck(java.lang.String endswith)
Do not typecheck any file ending with the given String.static boolean
hasSkipComment(java.io.File file, java.lang.String skipComment)
Whetherfile
containsskipComment
.protected java.io.File
resolveTestDirectory()
Resolves the test root directory from the optionalTestRootDirectory
annotation or falls back to the default ofcurrentDir/tests
.-
Methods inherited from class org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest
adjustTypecheckResult, customizeOptions, run
-
-
-
-
Constructor Detail
-
CheckerFrameworkWPIPerDirectoryTest
protected CheckerFrameworkWPIPerDirectoryTest(java.util.List<java.io.File> testFiles, java.lang.Class<? extends javax.annotation.processing.AbstractProcessor> checker, java.lang.String testDir, java.lang.String... checkerOptions)
Creates a new checker test. Use this constructor when creating a generation test.TestConfigurationBuilder.getDefaultConfigurationBuilder(String, File, String, Iterable, Iterable, List, boolean)
adds additional checker options.- Parameters:
testFiles
- the files containing test code, which will be type-checkedchecker
- the class for the checker to usetestDir
- the path to the directory of test inputscheckerOptions
- options to pass to the compiler when running tests
-
-
Method Detail
-
doNotTypecheck
protected void doNotTypecheck(@UnderInitialization(CheckerFrameworkPerDirectoryTest.class) CheckerFrameworkWPIPerDirectoryTest this, java.lang.String endswith)
Do not typecheck any file ending with the given String. A subclass of CheckerFrameworkWPIPerDirectoryTest uses this routine to avoid typechecking files in the all-systems test suite that are problematic for one typechecker. For example, this routine is useful when running the all-systems tests using WPI, because some all-systems tests have expected errors that become warnings during a WPI run (because of-Awarns
) and so must be excluded.This code takes advantage of the mutability of the
CheckerFrameworkPerDirectoryTest.testFiles
field.- Parameters:
endswith
- a string that the absolute path of the target file that should not be typechecked ends with. Usually, this takes the form "all-systems/ProblematicFile.java".
-
hasSkipComment
public static boolean hasSkipComment(java.io.File file, java.lang.String skipComment)
Whetherfile
containsskipComment
.- Parameters:
file
- a java test fileskipComment
- a comment that indicates that a test should be skipped- Returns:
- whether
file
containsskipComment
-
resolveTestDirectory
protected java.io.File resolveTestDirectory()
Resolves the test root directory from the optionalTestRootDirectory
annotation or falls back to the default ofcurrentDir/tests
.- Returns:
- the resolved directory
-
checkResult
public void checkResult(TypecheckResult typecheckResult)
Check that theTypecheckResult
did not fail.- Parameters:
typecheckResult
- result to check
-
-