Class TestUtilities
- java.lang.Object
-
- org.checkerframework.framework.test.TestUtilities
-
public class TestUtilities extends java.lang.Object
Utilities for testing.
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
IS_AT_LEAST_10_JVM
True if the JVM is version 10 or above.static boolean
IS_AT_LEAST_11_JVM
True if the JVM is version 11 or above.static boolean
IS_AT_LEAST_14_JVM
True if the JVM is version 14 or above.static boolean
IS_AT_LEAST_16_JVM
True if the JVM is version 16 or above.static boolean
IS_AT_LEAST_17_JVM
True if the JVM is version 17 or above.static boolean
IS_AT_LEAST_18_JVM
True if the JVM is version 18 or above.static boolean
IS_AT_LEAST_21_JVM
True if the JVM is version 21 or above.static boolean
IS_AT_LEAST_9_JVM
True if the JVM is version 9 or above.static boolean
IS_AT_MOST_11_JVM
True if the JVM is version 11 or lower.static boolean
IS_AT_MOST_14_JVM
True if the JVM is version 14 or lower.static boolean
IS_AT_MOST_16_JVM
True if the JVM is version 16 or lower.static boolean
IS_AT_MOST_17_JVM
True if the JVM is version 17 or lower.static boolean
IS_AT_MOST_18_JVM
True if the JVM is version 18 or lower.
-
Constructor Summary
Constructors Constructor Description TestUtilities()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
assertTestDidNotFail(TypecheckResult testResult)
If the given TypecheckResult has unexpected or missing diagnostics, fail the running JUnit test.static java.util.List<java.io.File>
deeplyEnclosedJavaTestFiles(java.io.File directory)
Returns all the Java files that are descendants of the given directory.static java.util.Set<java.lang.String>
diagnosticsToStrings(java.lang.Iterable<javax.tools.Diagnostic<? extends javax.tools.JavaFileObject>> actualDiagnostics, boolean usingAnomsgtxt)
static @Nullable java.lang.String
diagnosticToString(javax.tools.Diagnostic<? extends javax.tools.JavaFileObject> diagnostic, boolean usingAnomsgtxt)
static void
ensureDirectoryExists(java.lang.String dir)
Create the directory (and its parents) if it does not exist.static java.io.File
findComparisonFile(java.io.File testFile)
static java.util.List<java.lang.Object[]>
findFilesInParent(java.io.File parent, java.lang.String... fileNames)
Prepends a file to the beginning of each filename.static java.util.List<java.util.List<java.io.File>>
findJavaFilesPerDirectory(java.io.File parent, java.lang.String... dirNames)
Returns a list where each item is a list of Java files, excluding any skip tests, for each directory given by dirName and also a list for any subdirectory.static java.util.List<java.io.File>
findNestedJavaTestFiles(java.lang.String... dirNames)
Find test java sources within currentDir/tests.static java.util.List<java.io.File>
findRelativeNestedJavaFiles(java.io.File parent, java.lang.String... dirNames)
Find test java sources withinparent
.static java.util.List<java.io.File>
findRelativeNestedJavaFiles(java.lang.String parent, java.lang.String... dirNames)
Find test java sources withinparent
.static java.util.List<java.io.File>
getJavaFilesAsArgumentList(java.io.File... dirs)
Traverses the directories listed looking for Java test files.static boolean
getShouldEmitDebugInfo()
Returns the value of system property "emit.test.debug".static java.io.File
getTestFile(java.lang.String fileRelativeToTestsDir)
static boolean
isJavaFile(java.io.File file)
static boolean
isJavaTestFile(java.io.File file)
static java.util.List<java.lang.String>
optionMapToList(java.util.Map<java.lang.String,@Nullable java.lang.String> options)
Given an option map, return a list of option names.static java.lang.String
summarizeSourceFiles(java.util.List<java.io.File> javaFiles)
Return the file absolute pathnames, separated by commas.static void
writeDiagnostics(java.io.File file, java.io.File testFile, java.util.List<java.lang.String> expected, java.util.List<java.lang.String> actual, java.util.List<java.lang.String> unexpected, java.util.List<java.lang.String> missing, boolean usingNoMsgText, boolean testFailed)
static void
writeJavacArguments(java.io.File file, java.lang.Iterable<? extends javax.tools.JavaFileObject> files, java.lang.Iterable<java.lang.String> options, java.lang.Iterable<java.lang.String> processors)
static void
writeLines(java.io.File file, java.lang.Iterable<?> lines)
Write all the lines in the given Iterable to the given File.static void
writeTestConfiguration(java.io.File file, TestConfiguration config)
Append a test configuration to the end of a file.
-
-
-
Field Detail
-
IS_AT_LEAST_9_JVM
public static final boolean IS_AT_LEAST_9_JVM
True if the JVM is version 9 or above.
-
IS_AT_LEAST_10_JVM
public static final boolean IS_AT_LEAST_10_JVM
True if the JVM is version 10 or above.
-
IS_AT_LEAST_11_JVM
public static final boolean IS_AT_LEAST_11_JVM
True if the JVM is version 11 or above.
-
IS_AT_MOST_11_JVM
public static final boolean IS_AT_MOST_11_JVM
True if the JVM is version 11 or lower.
-
IS_AT_LEAST_14_JVM
public static final boolean IS_AT_LEAST_14_JVM
True if the JVM is version 14 or above.
-
IS_AT_MOST_14_JVM
public static final boolean IS_AT_MOST_14_JVM
True if the JVM is version 14 or lower.
-
IS_AT_LEAST_16_JVM
public static final boolean IS_AT_LEAST_16_JVM
True if the JVM is version 16 or above.
-
IS_AT_MOST_16_JVM
public static final boolean IS_AT_MOST_16_JVM
True if the JVM is version 16 or lower.
-
IS_AT_LEAST_17_JVM
public static final boolean IS_AT_LEAST_17_JVM
True if the JVM is version 17 or above.
-
IS_AT_MOST_17_JVM
public static final boolean IS_AT_MOST_17_JVM
True if the JVM is version 17 or lower.
-
IS_AT_LEAST_18_JVM
public static final boolean IS_AT_LEAST_18_JVM
True if the JVM is version 18 or above.
-
IS_AT_MOST_18_JVM
public static final boolean IS_AT_MOST_18_JVM
True if the JVM is version 18 or lower.
-
IS_AT_LEAST_21_JVM
public static final boolean IS_AT_LEAST_21_JVM
True if the JVM is version 21 or above.
-
-
Method Detail
-
findNestedJavaTestFiles
public static java.util.List<java.io.File> findNestedJavaTestFiles(java.lang.String... dirNames)
Find test java sources within currentDir/tests.- Parameters:
dirNames
- subdirectories of currentDir/tests- Returns:
- found files
-
findRelativeNestedJavaFiles
public static java.util.List<java.io.File> findRelativeNestedJavaFiles(java.lang.String parent, java.lang.String... dirNames)
Find test java sources withinparent
.- Parameters:
parent
- directory to search withindirNames
- subdirectories ofparent
- Returns:
- found files
-
findRelativeNestedJavaFiles
public static java.util.List<java.io.File> findRelativeNestedJavaFiles(java.io.File parent, java.lang.String... dirNames)
Find test java sources withinparent
.- Parameters:
parent
- directory to search withindirNames
- subdirectories ofparent
- Returns:
- found files
-
findJavaFilesPerDirectory
public static java.util.List<java.util.List<java.io.File>> findJavaFilesPerDirectory(java.io.File parent, java.lang.String... dirNames)
Returns a list where each item is a list of Java files, excluding any skip tests, for each directory given by dirName and also a list for any subdirectory.- Parameters:
parent
- parent directory of the dirNames directoriesdirNames
- names of directories to search- Returns:
- list where each item is a list of Java test files grouped by directory
-
findFilesInParent
public static java.util.List<java.lang.Object[]> findFilesInParent(java.io.File parent, java.lang.String... fileNames)
Prepends a file to the beginning of each filename.- Parameters:
parent
- a file to prepend to each filenamefileNames
- file names- Returns:
- the file names, each with
parent
prepended
-
getJavaFilesAsArgumentList
public static java.util.List<java.io.File> getJavaFilesAsArgumentList(java.io.File... dirs)
Traverses the directories listed looking for Java test files.- Parameters:
dirs
- directories in which to search for Java test files- Returns:
- a list of Java test files found in the directories
-
deeplyEnclosedJavaTestFiles
public static java.util.List<java.io.File> deeplyEnclosedJavaTestFiles(java.io.File directory)
Returns all the Java files that are descendants of the given directory.- Parameters:
directory
- a directory- Returns:
- all the Java files that are descendants of the given directory
-
isJavaFile
public static boolean isJavaFile(java.io.File file)
-
isJavaTestFile
public static boolean isJavaTestFile(java.io.File file)
-
diagnosticToString
public static @Nullable java.lang.String diagnosticToString(javax.tools.Diagnostic<? extends javax.tools.JavaFileObject> diagnostic, boolean usingAnomsgtxt)
-
diagnosticsToStrings
public static java.util.Set<java.lang.String> diagnosticsToStrings(java.lang.Iterable<javax.tools.Diagnostic<? extends javax.tools.JavaFileObject>> actualDiagnostics, boolean usingAnomsgtxt)
-
summarizeSourceFiles
public static java.lang.String summarizeSourceFiles(java.util.List<java.io.File> javaFiles)
Return the file absolute pathnames, separated by commas.- Parameters:
javaFiles
- a list of Java files- Returns:
- the file absolute pathnames, separated by commas
-
getTestFile
public static java.io.File getTestFile(java.lang.String fileRelativeToTestsDir)
-
findComparisonFile
public static java.io.File findComparisonFile(java.io.File testFile)
-
optionMapToList
public static java.util.List<java.lang.String> optionMapToList(java.util.Map<java.lang.String,@Nullable java.lang.String> options)
Given an option map, return a list of option names.- Parameters:
options
- an option map- Returns:
- return a list of option names
-
writeLines
public static void writeLines(java.io.File file, java.lang.Iterable<?> lines)
Write all the lines in the given Iterable to the given File.- Parameters:
file
- where to write the lineslines
- what lines to write
-
writeDiagnostics
public static void writeDiagnostics(java.io.File file, java.io.File testFile, java.util.List<java.lang.String> expected, java.util.List<java.lang.String> actual, java.util.List<java.lang.String> unexpected, java.util.List<java.lang.String> missing, boolean usingNoMsgText, boolean testFailed)
-
writeTestConfiguration
public static void writeTestConfiguration(java.io.File file, TestConfiguration config)
Append a test configuration to the end of a file.- Parameters:
file
- the file to write toconfig
- the configuration to append to the end of the file
-
writeJavacArguments
public static void writeJavacArguments(java.io.File file, java.lang.Iterable<? extends javax.tools.JavaFileObject> files, java.lang.Iterable<java.lang.String> options, java.lang.Iterable<java.lang.String> processors)
-
assertTestDidNotFail
public static void assertTestDidNotFail(TypecheckResult testResult)
If the given TypecheckResult has unexpected or missing diagnostics, fail the running JUnit test.- Parameters:
testResult
- the result of type-checking
-
ensureDirectoryExists
public static void ensureDirectoryExists(java.lang.String dir)
Create the directory (and its parents) if it does not exist.- Parameters:
dir
- the directory to create
-
getShouldEmitDebugInfo
public static boolean getShouldEmitDebugInfo()
Returns the value of system property "emit.test.debug".- Returns:
- the value of system property "emit.test.debug"
-
-