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
ModifierConstructorDescriptionprotected
CheckerFrameworkWPIPerDirectoryTest
(List<File> testFiles, Class<? extends AbstractProcessor> checker, String testDir, String... checkerOptions) Creates a new checker test. -
Method Summary
Modifier and TypeMethodDescriptionvoid
checkResult
(TypecheckResult typecheckResult) Check that theTypecheckResult
did not fail.protected void
doNotTypecheck
(String endswith) Do not typecheck any file ending with the given String.static boolean
hasSkipComment
(File file, String skipComment) Whetherfile
containsskipComment
.protected File
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 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.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
Whetherfile
containsskipComment
.- Parameters:
file
- a java test fileskipComment
- a comment that indicates that a test should be skipped- Returns:
- whether
file
containsskipComment
-
resolveTestDirectory
Resolves the test root directory from the optionalTestRootDirectory
annotation or falls back to the default ofcurrentDir/tests
.- Returns:
- the resolved directory
-
checkResult
Check that theTypecheckResult
did not fail.- Parameters:
typecheckResult
- result to check
-