public abstract class CheckerFrameworkPerDirectoryTest extends Object
CheckerFrameworkPerFileTest
to
compile each test file in a test directory individually. A CheckerFrameworkPerDirectoryTest
is faster than an equivalent CheckerFrameworkPerFileTest
, but can only test that processor errors or warnings are issued.
To create a CheckerFrameworkPerDirectoryTest
, create a new class that extends this
class. The new class must do the following:
java.util.List<java.io.File>
. This
is a list of the files that will be compiled.
@Parameters public static String [] getTestDirs()
getTestDir must return an array of directories that exist in the test folder. The directories can contain more path information (e.g., "myTestDir/moreTests") but note, the test suite will find all of the Java test files that exists below the listed directories. It is unnecessary to list child directories of a directory you have already listed.
public class MyTest extends CheckerFrameworkPerDirectoryTest {
public MyTest(List<File> testFiles) {
super(testFiles, MyChecker.class, "", "Anomsgtext");
}
{@literal @}Parameters
public static String [] getTestDirs() {
return new String[]{"all-systems"};
}
}
Modifier and Type | Field and Description |
---|---|
protected String |
checkerName
The fully-qualified class name of the checker to use for tests.
|
protected List<String> |
checkerOptions
Extra options to pass to javac when running the checker.
|
protected String |
testDir
The path, relative to currentDir/test to the directory containing test inputs.
|
protected List<File> |
testFiles |
Constructor and Description |
---|
CheckerFrameworkPerDirectoryTest(List<File> testFiles,
Class<? extends AbstractProcessor> checker,
String testDir,
String... checkerOptions)
Creates a new checker test.
|
Modifier and Type | Method and Description |
---|---|
List<String> |
customizeOptions(List<String> previousOptions)
Override this method if you would like to supply a checker command-line option that depends
on the Java files passed to the test.
|
void |
run() |
protected final String checkerName
protected final String testDir
public CheckerFrameworkPerDirectoryTest(List<File> testFiles, Class<? extends AbstractProcessor> checker, String testDir, String... checkerOptions)
TestConfigurationBuilder.getDefaultConfigurationBuilder(String, File, String,
Iterable, Iterable, List, boolean)
adds additional checker options such as
-AprintErrorStack.
checker
- the class for the checker to usetestDir
- the path to the directory of test inputscheckerOptions
- options to pass to the compiler when running testspublic void run()
public List<String> customizeOptions(List<String> previousOptions)
testFiles
.
If you want to specify the same command-line option for all tests of a particular checker,
then pass it to the CheckerFrameworkPerDirectoryTest(java.util.List<java.io.File>, java.lang.Class<? extends javax.annotation.processing.AbstractProcessor>, java.lang.String, java.lang.String...)
constructor.
previousOptions
- the options specified in the constructor of the test previousOptions
is unmodifiable