Skip to content

Commit 86a6fd8

Browse files
Relax checks for flaky tests in ComputerStateTest (#10656)
Co-authored-by: Tim Jacomb <21194782+timja@users.noreply.github.com>
1 parent 017fe26 commit 86a6fd8

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

test/src/test/java/hudson/cli/ComputerStateTest.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import static org.hamcrest.Matchers.empty;
3131
import static org.hamcrest.Matchers.endsWith;
3232
import static org.hamcrest.Matchers.equalTo;
33+
import static org.hamcrest.Matchers.instanceOf;
3334
import static org.hamcrest.Matchers.not;
3435
import static org.junit.Assert.assertThrows;
3536
import static org.junit.Assert.assertTrue;
@@ -94,15 +95,19 @@ public void disconnect() throws Exception {
9495
assertTrue(slave.toComputer().isOnline());
9596

9697
Result result = command.authorizedTo(Jenkins.READ, Computer.DISCONNECT)
97-
.invokeWithArgs(slave.getNodeName(), "-m", "Custom cause message")
98-
;
98+
.invokeWithArgs(slave.getNodeName(), "-m", "Custom cause message");
9999

100100
assertThat(result, succeededSilently());
101101
assertTrue(slave.toComputer().isOffline());
102102

103-
OfflineCause.UserCause cause = (OfflineCause.UserCause) slave.toComputer().getOfflineCause();
104-
assertThat(cause.toString(), endsWith("Custom cause message"));
105-
assertThat(cause.getUser(), equalTo(command.user()));
103+
OfflineCause cause = slave.toComputer().getOfflineCause();
104+
105+
if (cause instanceof OfflineCause.UserCause userCause) {
106+
assertThat(userCause.toString(), endsWith("Custom cause message"));
107+
assertThat(userCause.getUser(), equalTo(command.user()));
108+
} else {
109+
assertThat("seen occasionally in CI", cause, instanceOf(OfflineCause.ChannelTermination.class));
110+
}
106111
}
107112

108113
@Test
@@ -113,15 +118,19 @@ public void offline() throws Exception {
113118
assertTrue(slave.toComputer().isOnline());
114119

115120
Result result = command.authorizedTo(Jenkins.READ, Computer.DISCONNECT)
116-
.invokeWithArgs(slave.getNodeName(), "-m", "Custom cause message")
117-
;
121+
.invokeWithArgs(slave.getNodeName(), "-m", "Custom cause message");
118122

119123
assertThat(result, succeededSilently());
120124
assertTrue(slave.toComputer().isOffline());
121125

122-
OfflineCause.UserCause cause = (OfflineCause.UserCause) slave.toComputer().getOfflineCause();
123-
assertThat(cause.toString(), endsWith("Custom cause message"));
124-
assertThat(cause.getUser(), equalTo(command.user()));
126+
OfflineCause cause = slave.toComputer().getOfflineCause();
127+
128+
if (cause instanceof OfflineCause.UserCause userCause) {
129+
assertThat(userCause.toString(), endsWith("Custom cause message"));
130+
assertThat(userCause.getUser(), equalTo(command.user()));
131+
} else {
132+
assertThat("seen occasionally in CI", cause, instanceOf(OfflineCause.ChannelTermination.class));
133+
}
125134
}
126135

127136
@Test

0 commit comments

Comments
 (0)