public abstract class CheckerFrameworkWPIPerDirectoryTest extends CheckerFrameworkPerDirectoryTest
CheckerFrameworkPerDirectoryTest for testing the Whole Program
Inference feature of the Checker Framework, which is tested by running pairs of these tests: a
"generation test" (of class AinferGeneratePerDirectoryTest) to do inference using the
-Ainfer option, and a "validation test" (of class AinferValidatePerDirectoryTest)
to check that files typecheck after those inferences are taken into account. This common
superclass of those two classes should never be used directly.checkerNames, checkerOptions, classpathExtra, testDir, testFiles| Modifier | Constructor and Description |
|---|---|
protected |
CheckerFrameworkWPIPerDirectoryTest(List<File> testFiles,
Class<? extends AbstractProcessor> checker,
String testDir,
String... checkerOptions)
Creates a new checker test.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
doNotTypecheck(String endswith)
Do not typecheck any file ending with the given String.
|
adjustTypecheckResult, customizeOptions, runprotected CheckerFrameworkWPIPerDirectoryTest(List<File> testFiles, Class<? extends AbstractProcessor> checker, String testDir, String... checkerOptions)
TestConfigurationBuilder.getDefaultConfigurationBuilder(String, File, String,
Iterable, Iterable, List, boolean) adds additional checker options.
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 testsprotected void doNotTypecheck(@UnderInitialization(value=CheckerFrameworkPerDirectoryTest.class) CheckerFrameworkWPIPerDirectoryTest this, String endswith)
-Awarns) and so
must be excluded.
This code takes advantage of the mutability of the CheckerFrameworkPerDirectoryTest.testFiles field.
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".