Class SshTestHarness

java.lang.Object
org.eclipse.jgit.junit.LocalDiskRepositoryTestCase
org.eclipse.jgit.junit.RepositoryTestCase
org.eclipse.jgit.junit.ssh.SshTestHarness
Direct Known Subclasses:
SshBasicTestBase

public abstract class SshTestHarness extends org.eclipse.jgit.junit.RepositoryTestCase
Root class for ssh tests. Sets up the ssh test server. A set of pre-computed keys for testing is provided in the bundle and can be used in test cases via copyTestResource(String, File). These test key files names have four components, separated by a single underscore: "id", the algorithm, the bits (if variable), and the password if the private key is encrypted. For instance "id_ecdsa_384_testpass" is an encrypted ECDSA-384 key. The passphrase to decrypt is "testpass". The key "id_ecdsa_384" is the same but unencrypted. All keys were generated and encrypted via ssh-keygen. Note that DSA and ec25519 have no "bits" component. Available keys are listed in SshTestBase.KEY_RESOURCES.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected static class 
     
    protected static class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected File
     
    protected File
     
    protected File
     
    protected File
     
    protected File
     
     
    protected File
     
    protected static final String
     
    protected int
     

    Fields inherited from class org.eclipse.jgit.junit.RepositoryTestCase

    db, trash

    Fields inherited from class org.eclipse.jgit.junit.LocalDiskRepositoryTestCase

    ASSUME_UNCHANGED, author, committer, CONTENT, CONTENT_ID, currentTest, LENGTH, mockSystemReader, MOD_TIME, SMUDGE, testRoot
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected File
    cloneWith(String uri, File to, org.eclipse.jgit.transport.CredentialsProvider provider, String... config)
     
    protected void
    copyTestResource(Class<?> loader, String resourceName, File to)
    Copies a test data file contained in the test bundle to the given file, using Class.getResourceAsStream(String) to get the test resource.
    protected void
    copyTestResource(String resourceName, File to)
    Copies a test data file contained in the test bundle to the given file.
    protected static String
    createKnownHostsFile(File file, String host, int port, File publicKey)
    Creates a new known_hosts file with one entry for the given host and port taken from the given public key file.
    protected abstract org.eclipse.jgit.transport.SshSessionFactory
     
    protected org.eclipse.jgit.transport.SshSessionFactory
     
    protected boolean
    hasHostKey(String host, int port, String keyPart, List<String> lines)
    Checks whether there is a line for the given host and port that also matches the given key part in the list of lines.
    protected abstract void
    installConfig(String... config)
     
    protected void
    pushTo(File localClone)
     
    protected void
    pushTo(org.eclipse.jgit.transport.CredentialsProvider provider, File localClone)
     
    void
     
    void
     

    Methods inherited from class org.eclipse.jgit.junit.RepositoryTestCase

    assertEqualsFile, check, checkFile, checkoutBranch, commitFile, copyFile, createBranch, createEntry, createEntry, createEntry, createGitLink, deleteTrashFile, fsTick, getRefs, indexState, lookup, read, resetIndex, slashify, tearDown, writeLink, writeTrashFile, writeTrashFile, writeTrashFiles

    Methods inherited from class org.eclipse.jgit.junit.LocalDiskRepositoryTestCase

    addRepoToClose, createBareRepository, createRepository, createRepository, createTempDirectory, createTempFile, createUniqueTestGitDir, createWorkRepository, getCeilings, getTemporaryDirectory, indexState, read, recursiveDelete, runHook, tick, write, write

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • TEST_USER

      protected static final String TEST_USER
      See Also:
    • sshDir

      protected File sshDir
    • privateKey1

      protected File privateKey1
    • privateKey2

      protected File privateKey2
    • publicKey1

      protected File publicKey1
    • publicKey2

      protected File publicKey2
      Since:
      5.10
    • server

      protected SshTestGitServer server
    • testPort

      protected int testPort
    • knownHosts

      protected File knownHosts
  • Constructor Details

    • SshTestHarness

      public SshTestHarness()
  • Method Details

    • setUp

      public void setUp() throws Exception
      Overrides:
      setUp in class org.eclipse.jgit.junit.RepositoryTestCase
      Throws:
      Exception
    • createKnownHostsFile

      protected static String createKnownHostsFile(File file, String host, int port, File publicKey) throws IOException
      Creates a new known_hosts file with one entry for the given host and port taken from the given public key file.
      Parameters:
      file - to write the known_hosts file to
      host - for the entry
      port - for the entry
      publicKey - to use
      Returns:
      the public-key part of the line
      Throws:
      IOException - if an IO error occurred
    • hasHostKey

      protected boolean hasHostKey(String host, int port, String keyPart, List<String> lines)
      Checks whether there is a line for the given host and port that also matches the given key part in the list of lines.
      Parameters:
      host - to look for
      port - to look for
      keyPart - to look for
      lines - to look in
      Returns:
      true if found, false otherwise
    • shutdownServer

      public void shutdownServer() throws Exception
      Throws:
      Exception
    • createSessionFactory

      protected abstract org.eclipse.jgit.transport.SshSessionFactory createSessionFactory()
    • getSessionFactory

      protected org.eclipse.jgit.transport.SshSessionFactory getSessionFactory()
    • installConfig

      protected abstract void installConfig(String... config)
    • copyTestResource

      protected void copyTestResource(String resourceName, File to) throws IOException
      Copies a test data file contained in the test bundle to the given file. Equivalent to copyTestResource(Class, String, File) with SshTestHarness.class as first parameter.
      Parameters:
      resourceName - of the test resource to copy
      to - file to copy the resource to
      Throws:
      IOException - if the resource cannot be copied
    • copyTestResource

      protected void copyTestResource(Class<?> loader, String resourceName, File to) throws IOException
      Copies a test data file contained in the test bundle to the given file, using Class.getResourceAsStream(String) to get the test resource.
      Parameters:
      loader - Class to use to load the resource
      resourceName - of the test resource to copy
      to - file to copy the resource to
      Throws:
      IOException - if the resource cannot be copied
    • cloneWith

      protected File cloneWith(String uri, File to, org.eclipse.jgit.transport.CredentialsProvider provider, String... config) throws Exception
      Throws:
      Exception
    • pushTo

      protected void pushTo(File localClone) throws Exception
      Throws:
      Exception
    • pushTo

      protected void pushTo(org.eclipse.jgit.transport.CredentialsProvider provider, File localClone) throws Exception
      Throws:
      Exception