Skip to content

Commit 27cd7c0

Browse files
committed
Skip ssh host tests on ci.jenkins.io (#1255)
The GitHub.com SSH abuse prevention system rejects connections from the tests when they are run on ci.jenkins.io. These tests should only be run as end to end acceptance tests but they are not too disruptive (for now) to continue to be included in the default tests. Additional tests should be created that use test containers so that they can use the ssh connection on the test container instead of using the GitHub.com SSH servers. Unfortunately, I can't prioritize that test rewrite now, so these tests are disabled on ci.jenkins.io. (cherry picked from commit 2d90e37)
1 parent cf16f3d commit 27cd7c0

File tree

4 files changed

+18
-0
lines changed

4 files changed

+18
-0
lines changed

src/test/java/org/jenkinsci/plugins/gitclient/verifier/AcceptFirstConnectionVerifierTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static org.hamcrest.Matchers.hasItem;
66
import static org.hamcrest.Matchers.is;
77
import static org.hamcrest.io.FileMatchers.anExistingFile;
8+
import static org.jenkinsci.plugins.gitclient.verifier.KnownHostsTestUtil.runKnownHostsTests;
89
import static org.mockito.Mockito.spy;
910
import static org.mockito.Mockito.when;
1011

@@ -17,6 +18,7 @@
1718
import java.util.Collections;
1819
import java.util.List;
1920
import org.awaitility.Awaitility;
21+
import org.junit.Assume;
2022
import org.junit.Ignore;
2123
import org.junit.Rule;
2224
import org.junit.Test;
@@ -46,13 +48,15 @@ public class AcceptFirstConnectionVerifierTest {
4648

4749
@Test
4850
public void testVerifyHostKeyOption() throws IOException {
51+
Assume.assumeTrue(runKnownHostsTests());
4952
assertThat(
5053
new AcceptFirstConnectionVerifier().forCliGit(TaskListener.NULL).getVerifyHostKeyOption(null),
5154
is("-o StrictHostKeyChecking=accept-new -o HashKnownHosts=yes"));
5255
}
5356

5457
@Test
5558
public void testVerifyServerHostKeyWhenFirstConnection() throws Exception {
59+
Assume.assumeTrue(runKnownHostsTests());
5660
File file = new File(testFolder.getRoot() + "path/to/file");
5761
AcceptFirstConnectionVerifier acceptFirstConnectionVerifier = spy(new AcceptFirstConnectionVerifier());
5862
when(acceptFirstConnectionVerifier.getKnownHostsFile()).thenReturn(file);
@@ -77,6 +81,7 @@ public void testVerifyServerHostKeyWhenFirstConnection() throws Exception {
7781

7882
@Test
7983
public void testVerifyServerHostKeyWhenSecondConnectionWithEqualKeys() throws Exception {
84+
Assume.assumeTrue(runKnownHostsTests());
8085
String hostKeyEntry =
8186
"|1|FJGXVAi7jMQIsl1J6uE6KnCiteM=|xlH92KQ91GuBgRxvRbU/sBo60Bo= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=";
8287

@@ -105,6 +110,7 @@ public void testVerifyServerHostKeyWhenSecondConnectionWithEqualKeys() throws Ex
105110

106111
@Test
107112
public void testVerifyServerHostKeyWhenHostnameWithoutPort() throws Exception {
113+
Assume.assumeTrue(runKnownHostsTests());
108114
String hostKeyEntry =
109115
"github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=";
110116
File mockedKnownHosts = knownHostsTestUtil.createFakeKnownHosts(hostKeyEntry);
@@ -128,6 +134,7 @@ public void testVerifyServerHostKeyWhenHostnameWithoutPort() throws Exception {
128134

129135
@Test
130136
public void testVerifyServerHostKeyWhenSecondConnectionWhenNotDefaultAlgorithm() throws Exception {
137+
Assume.assumeTrue(runKnownHostsTests());
131138
String fileContent =
132139
"""
133140
github.com,140.82.121.4\
@@ -158,6 +165,7 @@ public void testVerifyServerHostKeyWhenSecondConnectionWhenNotDefaultAlgorithm()
158165
@Test
159166
@Ignore("FIXME not sure what is the test here")
160167
public void testVerifyServerHostKeyWhenSecondConnectionWithNonEqualKeys() throws Exception {
168+
Assume.assumeTrue(runKnownHostsTests());
161169
String fileContent =
162170
"""
163171
|1|f7esvmtaiBk+EMHjPzWbRYRpBPY=|T7Qe4QAksYPZPwYEx5QxQykSjfc=\
@@ -188,6 +196,7 @@ public void testVerifyServerHostKeyWhenSecondConnectionWithNonEqualKeys() throws
188196

189197
@Test
190198
public void testVerifyServerHostKeyWhenConnectionWithAnotherHost() throws Exception {
199+
Assume.assumeTrue(runKnownHostsTests());
191200
String bitbucketFileContent =
192201
"""
193202
|1|HnmPCP38pBhCY0NUtBXSraOg9pM=|L6YZ9asEeb2xplTDEThGOxRq7ZY=\
@@ -220,6 +229,7 @@ public void testVerifyServerHostKeyWhenConnectionWithAnotherHost() throws Except
220229

221230
@Test
222231
public void testVerifyServerHostKeyWhenHostnamePortProvided() throws Exception {
232+
Assume.assumeTrue(runKnownHostsTests());
223233
String fileContent =
224234
"""
225235
|1|6uMj3M7sLgZpn54vQbGqgPNTCVM=|OkV9Lu9REJZR5QCVrITAIY34I1M=\

src/test/java/org/jenkinsci/plugins/gitclient/verifier/KnownHostsFileVerifierTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public void connectWhenHostKeyNotInKnownHostsFileForOtherHostNameThenShouldFail(
6464

6565
@Test
6666
public void connectWhenHostKeyProvidedThenShouldNotFail() throws IOException {
67+
Assume.assumeTrue(runKnownHostsTests());
6768
KnownHostsFileVerifier knownHostsFileVerifier = spy(new KnownHostsFileVerifier());
6869
when(knownHostsFileVerifier.getKnownHostsFile()).thenReturn(fakeKnownHosts);
6970

@@ -84,6 +85,7 @@ public void connectWhenHostKeyProvidedThenShouldNotFail() throws IOException {
8485

8586
@Test
8687
public void connectWhenHostKeyInKnownHostsFileWithNotDefaultAlgorithmThenShouldNotFail() throws IOException {
88+
Assume.assumeTrue(runKnownHostsTests());
8789
fakeKnownHosts = knownHostsTestUtil.createFakeKnownHosts(
8890
"fake2.ssh",
8991
"known_hosts_fake2",

src/test/java/org/jenkinsci/plugins/gitclient/verifier/ManuallyProvidedKeyVerifierTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public void connectWhenHostKeyProvidedForOtherHostNameThenShouldFail() throws Ex
6060

6161
@Test
6262
public void connectWhenHostKeyProvidedThenShouldNotFail() throws Exception {
63+
Assume.assumeTrue(runKnownHostsTests());
6364
ManuallyProvidedKeyVerifier verifier = new ManuallyProvidedKeyVerifier(hostKey);
6465
ManuallyProvidedKeyVerifier.ManuallyProvidedKeyJGitHostKeyVerifier jGitHostKeyVerifier =
6566
(ManuallyProvidedKeyVerifier.ManuallyProvidedKeyJGitHostKeyVerifier)
@@ -78,6 +79,7 @@ public void connectWhenHostKeyProvidedThenShouldNotFail() throws Exception {
7879

7980
@Test
8081
public void connectWhenWrongHostKeyProvidedThenShouldFail() throws Exception {
82+
Assume.assumeTrue(runKnownHostsTests());
8183
String key = "github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9OOOO";
8284
HostKeyVerifierFactory verifier = new ManuallyProvidedKeyVerifier(key);
8385

@@ -97,6 +99,7 @@ public void connectWhenWrongHostKeyProvidedThenShouldFail() throws Exception {
9799

98100
@Test
99101
public void connectWhenHostKeyProvidedWithPortThenShouldNotFail() throws Exception {
102+
Assume.assumeTrue(runKnownHostsTests());
100103
String key =
101104
"github.com:22 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=";
102105
HostKeyVerifierFactory verifier = new ManuallyProvidedKeyVerifier(key);

src/test/java/org/jenkinsci/plugins/gitclient/verifier/NoHostKeyVerifierTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import static org.hamcrest.MatcherAssert.assertThat;
44
import static org.hamcrest.Matchers.is;
5+
import static org.jenkinsci.plugins.gitclient.verifier.KnownHostsTestUtil.runKnownHostsTests;
56

67
import hudson.model.StreamBuildListener;
78
import hudson.model.TaskListener;
89
import java.io.IOException;
910
import java.nio.file.Path;
1011
import java.time.Duration;
1112
import org.awaitility.Awaitility;
13+
import org.junit.Assume;
1214
import org.junit.Before;
1315
import org.junit.Test;
1416

@@ -23,6 +25,7 @@ public void assignVerifier() {
2325

2426
@Test
2527
public void verifyServerHostKey() throws IOException {
28+
Assume.assumeTrue(runKnownHostsTests());
2629
NoHostKeyVerifier acceptFirstConnectionVerifier = new NoHostKeyVerifier();
2730

2831
KnownHostsTestUtil.connectToHost(

0 commit comments

Comments
 (0)