Class InboundAgentExtension
java.lang.Object
org.jvnet.hudson.test.junit.jupiter.InboundAgentExtension
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterEachCallback
,org.junit.jupiter.api.extension.Extension
public class InboundAgentExtension
extends Object
implements org.junit.jupiter.api.extension.AfterEachCallback
Manages inbound agents.
While these run on the local host, they are launched outside of Jenkins.
To avoid flakiness when tearing down the test, ensure that the agent has gone offline with:
Slave agent = inboundAgents.createAgent(r, […]); try { […] } finally { inboundAgents.stop(r, agent.getNodeName()); }
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final record
static final class
The options used to (re)start an inbound agent. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
afterEach
(org.junit.jupiter.api.extension.ExtensionContext context) hudson.model.Slave
createAgent
(JenkinsRule r, String name) Creates, attaches, and starts a new inbound agent.hudson.model.Slave
createAgent
(JenkinsRule r, InboundAgentExtension.Options options) Creates, attaches, and optionally starts a new inbound agent.void
createAgent
(RealJenkinsExtension extension, String name) void
createAgent
(RealJenkinsExtension extension, InboundAgentExtension.Options options) boolean
Checks whether an existing inbound agent process is currently running.void
start
(JenkinsRule r, String name) (Re-)starts an existing inbound agent.void
start
(JenkinsRule r, InboundAgentExtension.Options options) (Re-)starts an existing inbound agent.void
start
(InboundAgentExtension.AgentArguments agentArguments, InboundAgentExtension.Options options) void
start
(RealJenkinsExtension r, InboundAgentExtension.Options options) (Re-)starts an existing inbound agent.void
startOnly
(RealJenkinsExtension extension, InboundAgentExtension.Options options) Starts an existing inbound agent without waiting for it to go online.void
Stops an existing inbound agent.void
stop
(JenkinsRule r, String name) Stop an existing inbound agent and wait for it to go offline.void
stop
(RealJenkinsExtension rjr, String name) Stop an existing inbound agent and wait for it to go offline.
-
Constructor Details
-
InboundAgentExtension
public InboundAgentExtension()
-
-
Method Details
-
createAgent
public hudson.model.Slave createAgent(@NonNull JenkinsRule r, @CheckForNull String name) throws Exception Creates, attaches, and starts a new inbound agent.- Parameters:
name
- an optionalSlave.getNodeName()
- Throws:
Exception
-
createAgent
public hudson.model.Slave createAgent(@NonNull JenkinsRule r, InboundAgentExtension.Options options) throws Exception Creates, attaches, and optionally starts a new inbound agent.- Parameters:
options
- the options- Throws:
Exception
-
createAgent
public void createAgent(@NonNull RealJenkinsExtension extension, @CheckForNull String name) throws Throwable - Throws:
Throwable
-
createAgent
public void createAgent(@NonNull RealJenkinsExtension extension, InboundAgentExtension.Options options) throws Throwable - Throws:
Throwable
-
start
(Re-)starts an existing inbound agent.- Throws:
Exception
-
start
(Re-)starts an existing inbound agent.- Throws:
Exception
-
start
public void start(@NonNull RealJenkinsExtension r, InboundAgentExtension.Options options) throws Throwable (Re-)starts an existing inbound agent.- Throws:
Throwable
-
startOnly
public void startOnly(@NonNull RealJenkinsExtension extension, InboundAgentExtension.Options options) throws Throwable Starts an existing inbound agent without waiting for it to go online.- Throws:
Throwable
-
start
public void start(InboundAgentExtension.AgentArguments agentArguments, InboundAgentExtension.Options options) throws Exception - Throws:
Exception
-
stop
Stop an existing inbound agent and wait for it to go offline.- Throws:
InterruptedException
-
stop
Stop an existing inbound agent and wait for it to go offline.- Throws:
Throwable
-
stop
Stops an existing inbound agent. You need only call this to simulate an agent crash, followed bystart(org.jvnet.hudson.test.JenkinsRule, java.lang.String)
. -
isAlive
Checks whether an existing inbound agent process is currently running. (This is distinct from whether Jenkins considers the computer to be connected.) -
afterEach
public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterEach
in interfaceorg.junit.jupiter.api.extension.AfterEachCallback
-