Package org.eclipse.jgit.junit.ssh
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
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 ClassesModifier and TypeClassDescriptionprotected static class
protected static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate SshSessionFactory
private File
protected File
protected File
protected File
protected File
protected File
protected SshTestGitServer
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, LENGTH, mockSystemReader, MOD_TIME, SMUDGE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected File
cloneWith
(String uri, File to, 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, usingClass.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.private static File
createKeyPair
(KeyPair newKey, File privateKeyFile) 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 SshSessionFactory
protected 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
protected void
pushTo
(CredentialsProvider provider, File localClone) void
setUp()
Setup testvoid
private static void
write
(BufferedWriter out, byte[] bytes, int lineLength) Methods inherited from class org.eclipse.jgit.junit.RepositoryTestCase
assertEqualsFile, check, checkFile, checkoutBranch, commitFile, copyFile, createBranch, createEntry, createEntry, createEntry, createGitLink, deleteTrashFile, fsTick, 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
-
Field Details
-
TEST_USER
- See Also:
-
sshDir
-
privateKey1
-
privateKey2
-
publicKey1
-
publicKey2
-
server
-
factory
-
testPort
protected int testPort -
knownHosts
-
homeDir
-
-
Constructor Details
-
SshTestHarness
public SshTestHarness()
-
-
Method Details
-
setUp
Description copied from class:RepositoryTestCase
Setup test- Overrides:
setUp
in classRepositoryTestCase
- Throws:
Exception
-
createKeyPair
- Throws:
Exception
-
write
- Throws:
IOException
-
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 tohost
- for the entryport
- for the entrypublicKey
- to use- Returns:
- the public-key part of the line
- Throws:
IOException
-
hasHostKey
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 forport
- to look forkeyPart
- to look forlines
- to look in- Returns:
true
if found,false
otherwise
-
shutdownServer
- Throws:
Exception
-
createSessionFactory
-
getSessionFactory
-
installConfig
-
copyTestResource
Copies a test data file contained in the test bundle to the given file. Equivalent tocopyTestResource(Class, String, File)
withSshTestHarness.class
as first parameter.- Parameters:
resourceName
- of the test resource to copyto
- file to copy the resource to- Throws:
IOException
- if the resource cannot be copied
-
copyTestResource
Copies a test data file contained in the test bundle to the given file, usingClass.getResourceAsStream(String)
to get the test resource.- Parameters:
loader
-Class
to use to load the resourceresourceName
- of the test resource to copyto
- file to copy the resource to- Throws:
IOException
- if the resource cannot be copied
-
cloneWith
protected File cloneWith(String uri, File to, CredentialsProvider provider, String... config) throws Exception - Throws:
Exception
-
pushTo
- Throws:
Exception
-
pushTo
- Throws:
Exception
-