Class CheckerFrameworkWPIPerDirectoryTest
java.lang.Object
org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest
org.checkerframework.framework.test.CheckerFrameworkWPIPerDirectoryTest
- Direct Known Subclasses:
AinferGeneratePerDirectoryTest,AinferValidatePerDirectoryTest
A specialized variant of
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.-
Field Summary
Fields inherited from class org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest
checkerNames, checkerOptions, classpathExtra, testDir, testFiles -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCheckerFrameworkWPIPerDirectoryTest(List<File> testFiles, Class<? extends AbstractProcessor> checker, String testDir, String... checkerOptions) Creates a new checker test. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoNotTypecheck(String endswith) Do not typecheck any file ending with the given String.static booleanhasSkipComment(File file, String skipComment) WhetherfilecontainsskipComment.Methods inherited from class org.checkerframework.framework.test.CheckerFrameworkPerDirectoryTest
adjustTypecheckResult, customizeOptions, run
-
Constructor Details
-
CheckerFrameworkWPIPerDirectoryTest
protected CheckerFrameworkWPIPerDirectoryTest(List<File> testFiles, Class<? extends AbstractProcessor> checker, String testDir, 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 Details
-
doNotTypecheck
protected void doNotTypecheck(@UnderInitialization(CheckerFrameworkPerDirectoryTest.class) CheckerFrameworkWPIPerDirectoryTest this, 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.testFilesfield.- 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
WhetherfilecontainsskipComment.- Parameters:
file- a java test fileskipComment- a comment that indicates that a test should be skipped- Returns:
- whether
filecontainsskipComment
-