Skip to content

Commit

Permalink
Merge pull request #65 from stephenc/jenkins-40828
Browse files Browse the repository at this point in the history
[JENKINS-40828] Add a failure mode test
  • Loading branch information
stephenc committed Jan 6, 2017
2 parents 1fe2a0d + 1e07706 commit ed01854
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -66,7 +66,7 @@

<properties>
<jenkins.version>1.642.3</jenkins.version>
<scm-api.version>2.0.1-20170105.113635-7</scm-api.version>
<scm-api.version>2.0.1-SNAPSHOT</scm-api.version>
</properties>

<repositories>
Expand Down
40 changes: 40 additions & 0 deletions src/test/java/integration/EventsTest.java
Expand Up @@ -26,7 +26,10 @@
package integration;

import com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy;
import edu.umd.cs.findbugs.annotations.CheckForNull;
import hudson.AbortException;
import hudson.model.FreeStyleProject;
import hudson.model.Result;
import hudson.model.TopLevelItem;
import integration.harness.BasicMultiBranchProject;
import integration.harness.BasicMultiBranchProjectFactory;
Expand All @@ -42,6 +45,7 @@
import jenkins.scm.api.SCMEvents;
import jenkins.scm.api.SCMHeadEvent;
import jenkins.scm.api.SCMSourceEvent;
import jenkins.scm.impl.mock.MockFailure;
import jenkins.scm.impl.mock.MockSCMController;
import jenkins.scm.impl.mock.MockSCMHeadEvent;
import jenkins.scm.impl.mock.MockSCMNavigator;
Expand Down Expand Up @@ -275,6 +279,42 @@ public void given_multibranchWithSourcesWantingBranchesAndTags_when_indexing_the
}
}

@Test
public void given_indexedMultibranch_when_indexingFails_then_previouslyIndexedBranchesAreNotDeleted()
throws Exception {
try (MockSCMController c = MockSCMController.create()) {
c.createRepository("foo");
c.createTag("foo", "master", "master-1.0");
Integer crNum = c.openChangeRequest("foo", "master");
BasicMultiBranchProject prj = r.jenkins.createProject(BasicMultiBranchProject.class, "foo");
prj.setCriteria(null);
prj.getSourcesList().add(new BranchSource(new MockSCMSource(null, c, "foo", true, true, true)));
prj.scheduleBuild2(0).getFuture().get();
r.waitUntilNoActivity();
FreeStyleProject master = prj.getItem("master");
FreeStyleProject tag = prj.getItem("master-1.0");
FreeStyleProject cr = prj.getItem("CR-" + crNum);
assertThat("We have tags and branches and change request",
prj.getItems(), containsInAnyOrder(master, tag, cr));
r.waitUntilNoActivity();
c.addFault(new MockFailure() {
@Override
public void check(@CheckForNull String repository, @CheckForNull String branchOrCR,
@CheckForNull String revision, boolean actions)
throws IOException {
if (!actions && "foo".equals(repository)) {
throw new AbortException("FAULT");
}
}
});
prj.scheduleBuild2(0).getFuture().get();
r.waitUntilNoActivity();
assertThat(prj.getComputation().getResult(), is(Result.FAILURE));
assertThat("We have tags and branches and change request",
prj.getItems(), containsInAnyOrder(master, tag, cr));
}
}

@Test
public void given_multibranchWithSourcesWantingEverything_when_indexing_then_everythingIsFoundAndBuilt()

Expand Down

0 comments on commit ed01854

Please sign in to comment.