Class TestUtilities

java.lang.Object
org.checkerframework.framework.test.TestUtilities

public final class TestUtilities extends Object
Utilities for testing.
  • Field Details

    • 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_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_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.
    • IS_AT_LEAST_22_JVM

      public static final boolean IS_AT_LEAST_22_JVM
      True if the JVM is version 22 or above.
    • IS_AT_LEAST_25_JVM

      public static final boolean IS_AT_LEAST_25_JVM
      True if the JVM is version 25 or above.
  • Method Details

    • findNestedJavaTestFiles

      public static List<File> findNestedJavaTestFiles(String... dirNames)
      Find test java sources within currentDir/tests.
      Parameters:
      dirNames - subdirectories of currentDir/tests
      Returns:
      found files
    • findRelativeNestedJavaFiles

      public static List<File> findRelativeNestedJavaFiles(String parent, String... dirNames)
      Find test java sources within parent.
      Parameters:
      parent - directory to search within
      dirNames - subdirectories of parent
      Returns:
      found files
    • findRelativeNestedJavaFiles

      public static List<File> findRelativeNestedJavaFiles(File parent, String... dirNames)
      Find test java sources within parent.
      Parameters:
      parent - directory to search within
      dirNames - subdirectories of parent
      Returns:
      found files
    • findJavaFilesPerDirectory

      public static List<List<File>> findJavaFilesPerDirectory(File parent, 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 directories
      dirNames - names of directories to search
      Returns:
      list where each item is a list of Java test files grouped by directory
    • findFilesInParent

      public static List<Object[]> findFilesInParent(File parent, String... fileNames)
      Prepends a file to the beginning of each filename.
      Parameters:
      parent - a file to prepend to each filename
      fileNames - file names
      Returns:
      the file names, each with parent prepended
    • getJavaFilesAsArgumentList

      public static List<File> getJavaFilesAsArgumentList(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 List<File> deeplyEnclosedJavaTestFiles(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(File file)
    • isJavaTestFile

      public static boolean isJavaTestFile(File file)
    • diagnosticToString

      public static @Nullable String diagnosticToString(Diagnostic<? extends JavaFileObject> diagnostic, boolean usingAnomsgtxt)
    • diagnosticsToStrings

      public static Set<String> diagnosticsToStrings(Iterable<Diagnostic<? extends JavaFileObject>> actualDiagnostics, boolean usingAnomsgtxt)
    • summarizeSourceFiles

      public static String summarizeSourceFiles(List<File> javaFiles)
      Returns 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 File getTestFile(String fileRelativeToTestsDir)
    • findComparisonFile

      public static File findComparisonFile(File testFile)
      Returns the ".goal" file that corresponds to the given Java test file: a file in the same directory, whose name is the test file's name with ".java" replaced by ".goal". The ".goal" file contains the diagnostics that the test file is expected to produce. This method does not check whether the ".goal" file exists.
      Parameters:
      testFile - a Java test file
      Returns:
      the ".goal" file that corresponds to the given Java test file
    • optionMapToList

      public static List<String> optionMapToList(Map<String,@Nullable 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(File file, Iterable<?> lines)
      Write all the lines in the given Iterable to the given File.
      Parameters:
      file - where to write the lines
      lines - what lines to write
    • writeDiagnostics

      public static void writeDiagnostics(File file, File testFile, List<String> expected, List<String> actual, List<String> unexpected, List<String> missing, boolean usingNoMsgText, boolean testFailed)
    • writeTestConfiguration

      public static void writeTestConfiguration(File file, TestConfiguration config)
      Append a test configuration to the end of a file.
      Parameters:
      file - the file to write to
      config - the configuration to append to the end of the file
    • writeJavacArguments

      public static void writeJavacArguments(File file, Iterable<? extends JavaFileObject> files, Iterable<String> options, Iterable<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(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"