package hudson.model; import static org.junit.Assert.assertEquals; import hudson.Launcher; import org.junit.Rule; import org.junit.Test; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; import org.jvnet.hudson.test.JenkinsRule.TestBuildWrapper; import org.jvnet.hudson.test.TestBuilder; import java.io.IOException; public class AbortedFreeStyleBuildTest { @Rule public JenkinsRule j = new JenkinsRule(); @Test @Issue("JENKINS-8054") public void buildWrapperSeesAbortedStatus() throws Exception { FreeStyleProject project = j.createFreeStyleProject(); TestBuildWrapper wrapper = new TestBuildWrapper(); project.getBuildWrappersList().add(wrapper); project.getBuildersList().add(new AbortingBuilder()); Run build = project.scheduleBuild2(0).get(); assertEquals(Result.ABORTED, build.getResult()); assertEquals(Result.ABORTED, wrapper.buildResultInTearDown); } @Test @Issue("JENKINS-9203") public void interruptAsFailure() throws Exception { FreeStyleProject project = j.createFreeStyleProject(); TestBuildWrapper wrapper = new TestBuildWrapper(); project.getBuildWrappersList().add(wrapper); project.getBuildersList().add(new TestBuilder() { @Override public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { Executor.currentExecutor().interrupt(Result.FAILURE); throw new InterruptedException(); } }); Run build = project.scheduleBuild2(0).get(); assertEquals(Result.FAILURE, build.getResult()); assertEquals(Result.FAILURE, wrapper.buildResultInTearDown); } private static class AbortingBuilder extends TestBuilder { @Override public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { throw new InterruptedException(); } } }