Class ImmutableTestConfiguration
- java.lang.Object
-
- org.checkerframework.framework.test.ImmutableTestConfiguration
-
- All Implemented Interfaces:
TestConfiguration
public class ImmutableTestConfiguration extends java.lang.Object implements TestConfiguration
Represents all of the information needed to execute the Javac compiler for a given set of test files.
-
-
Constructor Summary
Constructors Constructor Description ImmutableTestConfiguration(java.util.List<java.io.File> diagnosticFiles, java.util.List<java.io.File> testSourceFiles, java.util.List<@BinaryName java.lang.String> processors, java.util.Map<java.lang.String,@Nullable java.lang.String> options, boolean shouldEmitDebugInfo)
Create a new ImmutableTestConfiguration.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.io.File>
getDiagnosticFiles()
Diagnostic files consist of a set of lines that enumerate expected error/warning diagnostics.java.util.List<java.lang.String>
getFlatOptions()
Returns the map returned byTestConfiguration.getOptions()
, flattened into a list.java.util.Map<java.lang.String,@Nullable java.lang.String>
getOptions()
Some Javac command line arguments require arguments themselves (e.g.java.util.List<@BinaryName java.lang.String>
getProcessors()
Returns a list of annotation processors (Checkers) passed to the Javac compiler.java.util.List<java.io.File>
getTestSourceFiles()
Returns a list of source files a CheckerFrameworkPerDirectoryTest should be run over.boolean
shouldEmitDebugInfo()
Returns true if the TypecheckExecutor should emit debug information on system out, false otherwise.java.lang.String
toString()
-
-
-
Constructor Detail
-
ImmutableTestConfiguration
public ImmutableTestConfiguration(java.util.List<java.io.File> diagnosticFiles, java.util.List<java.io.File> testSourceFiles, java.util.List<@BinaryName java.lang.String> processors, java.util.Map<java.lang.String,@Nullable java.lang.String> options, boolean shouldEmitDebugInfo)
Create a new ImmutableTestConfiguration.- Parameters:
diagnosticFiles
- files containing diagnostics that should be returned by javactestSourceFiles
- the source files to compileprocessors
- the annotation processors (usually checkers) to runoptions
- options that should be passed to the compilershouldEmitDebugInfo
- the value of system property "emit.test.debug"
-
-
Method Detail
-
getTestSourceFiles
public java.util.List<java.io.File> getTestSourceFiles()
Description copied from interface:TestConfiguration
Returns a list of source files a CheckerFrameworkPerDirectoryTest should be run over. These source files will be passed to Javac when the test is run. These are NOT JUnit tests.- Specified by:
getTestSourceFiles
in interfaceTestConfiguration
- Returns:
- a list of source files a CheckerFrameworkPerDirectoryTest should be run over
-
getDiagnosticFiles
public java.util.List<java.io.File> getDiagnosticFiles()
Description copied from interface:TestConfiguration
Diagnostic files consist of a set of lines that enumerate expected error/warning diagnostics. The lines are of the form:fileName:lineNumber: diagnostKind: (messageKey)
e.g.,MethodInvocation.java:17: error: (method.invocation.invalid)
If getDiagnosticFiles does NOT return an empty list, then the only diagnostics expected by the TestExecutor will be the ones found in these files. If it does return an empty list, then the only diagnostics expected will be the ones found in comments in the input test files.It is preferred that users write the errors in the test files and not in diagnostic files.
- Specified by:
getDiagnosticFiles
in interfaceTestConfiguration
- Returns:
- a List of diagnostic files containing the error/warning messages expected to be output when Javac is run on the files returned by getTestSourceFiles. Return an empty list if these messages were specified within the source files.
-
getProcessors
public java.util.List<@BinaryName java.lang.String> getProcessors()
Description copied from interface:TestConfiguration
Returns a list of annotation processors (Checkers) passed to the Javac compiler.- Specified by:
getProcessors
in interfaceTestConfiguration
- Returns:
- a list of annotation processors (Checkers) passed to the Javac compiler
-
getOptions
public java.util.Map<java.lang.String,@Nullable java.lang.String> getOptions()
Description copied from interface:TestConfiguration
Some Javac command line arguments require arguments themselves (e.g.-classpath
takes a path) getOptions returns aMap(optionName => optionArgumentIfAny)
. If an option does not take an argument, pass null as the value.E.g.,
Map( "-AprintAllQualifiers" => null "-classpath" => "myDir1:myDir2" )
- Specified by:
getOptions
in interfaceTestConfiguration
- Returns:
- a Map representing all command-line options to Javac other than source files and processors
-
getFlatOptions
public java.util.List<java.lang.String> getFlatOptions()
Description copied from interface:TestConfiguration
Returns the map returned byTestConfiguration.getOptions()
, flattened into a list. The entries will be added as followed: List(key1, value1, key2, value2, ..., keyN, valueN). If a value is NULL, then it will not appear in the list.- Specified by:
getFlatOptions
in interfaceTestConfiguration
- Returns:
- the map returned
TestConfiguration.getOptions()
, but flattened into a list
-
shouldEmitDebugInfo
public boolean shouldEmitDebugInfo()
Description copied from interface:TestConfiguration
Returns true if the TypecheckExecutor should emit debug information on system out, false otherwise.- Specified by:
shouldEmitDebugInfo
in interfaceTestConfiguration
- Returns:
- true if the TypecheckExecutor should emit debug information on system out, false otherwise
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-