Package ghidra

Class GhidraTestApplicationLayout


public class GhidraTestApplicationLayout extends GhidraApplicationLayout
The Ghidra test application layout defines the customizable elements of the Ghidra application's directory structure when running a test.

This layout exists because tests often need to provide their own user settings directory, rather than using Ghidra's default.

  • Constructor Details

    • GhidraTestApplicationLayout

      public GhidraTestApplicationLayout(File userSettingsDir) throws FileNotFoundException, IOException
      Constructs a new Ghidra application layout object with the provided user settings directory.

      This layout is useful when running Ghidra tests.

      Parameters:
      userSettingsDir - The custom user settings directory to use.
      Throws:
      FileNotFoundException - if there was a problem getting a user directory.
      IOException - if there was a problem getting the application properties.
  • Method Details

    • findExtensionArchiveDirectory

      protected ResourceFile findExtensionArchiveDirectory()
      Description copied from class: GhidraApplicationLayout
      Returns the directory where all Ghidra extension archives are stored. This should be at the following location:
      • {install dir}/Extensions/Ghidra
      Overrides:
      findExtensionArchiveDirectory in class GhidraApplicationLayout
      Returns:
      the archive folder, or null if can't be determined
    • findExtensionInstallationDirectories

      protected List<ResourceFile> findExtensionInstallationDirectories()
      Description copied from class: GhidraApplicationLayout
      Returns a prioritized list of directories where Ghidra extensions are installed. These should be at the following locations:
      • [user settings dir]/Extensions
      • [application install dir]/Ghidra/Extensions (Release Mode)
      • ghidra/Ghidra/Extensions (Development Mode)
      Overrides:
      findExtensionInstallationDirectories in class GhidraApplicationLayout
      Returns:
      the install folder, or null if can't be determined
    • findPatchDirectory

      protected ResourceFile findPatchDirectory()
      Description copied from class: GhidraApplicationLayout
      Returns the directory that allows users to add jar and class files to override existing distribution files
      Overrides:
      findPatchDirectory in class GhidraApplicationLayout
      Returns:
      the patch dir; null if not in a distribution
    • findGhidraModules

      protected Map<String,GModule> findGhidraModules() throws IOException
      Description copied from class: GhidraApplicationLayout
      Finds the modules for this Ghidra application layout.
      Overrides:
      findGhidraModules in class GhidraApplicationLayout
      Returns:
      The modules for this Ghidra application layout.
      Throws:
      IOException - if there was a problem finding the modules on disk.
    • getDependentModulePatterns

      protected Set<String> getDependentModulePatterns()
      Returns patterns that will be used to check against each discovered module. Matching module paths will be included as modules to be used during testing. By default, only modules that match the classpath entries are included. If your tests needs modules not referenced by the classpath, then you can override this method and add any module patterns needed.

      The pattern is any desired text that will be matched against. If you wish to use path separators, be sure to do so in a platform-dependent manner.

      Returns:
      the patterns