Skip to content

Commit

Permalink
Merge pull request #76 from coldy77/master
Browse files Browse the repository at this point in the history
[FIXED JENKINS-26029] Add FAILURE_OR_BETTER Trigger Threshold.
  • Loading branch information
ikedam committed Dec 11, 2014
2 parents e873abb + 3469d49 commit b915c9c
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 8 deletions.
Expand Up @@ -9,17 +9,22 @@ boolean isMet(Result result) {
return result == Result.SUCCESS;
}
},
UNSTABLE("Unstable") {
boolean isMet(Result result) {
return result == Result.UNSTABLE;
}
},
UNSTABLE("Unstable") {
boolean isMet(Result result) {
return result == Result.UNSTABLE;
}
},
FAILED_OR_BETTER("Stable, unstable or failed, but not aborted") {
boolean isMet(Result result) {
return result.isBetterOrEqualTo(Result.FAILURE);
}
},
UNSTABLE_OR_BETTER("Stable or unstable but not failed") {
boolean isMet(Result result) {
return result.isBetterOrEqualTo(Result.UNSTABLE);
boolean isMet(Result result) {
return result.isBetterOrEqualTo(Result.UNSTABLE);
}
},
UNSTABLE_OR_WORSE("Unstable or Failed but not stable") {
UNSTABLE_OR_WORSE("Unstable or Failed but not stable") {
boolean isMet(Result result) {
return result.isWorseOrEqualTo(Result.UNSTABLE);
}
Expand Down
@@ -0,0 +1,39 @@
package hudson.plugins.parameterizedtrigger.test;

import hudson.Extension;
import hudson.Launcher;
import hudson.model.AbstractBuild;
import hudson.model.BuildListener;
import hudson.model.Descriptor;
import hudson.model.Result;
import hudson.tasks.Builder;
import net.sf.json.JSONObject;
import org.kohsuke.stapler.StaplerRequest;

import java.io.IOException;

/**
* A Builder which simulates an aborted build.
* To use for testing behaviour of Build Results.
*/
public class AbortedBuilder extends Builder {
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
listener.getLogger().println("Simulating an aborted build");
build.setResult(Result.ABORTED);
return true;
}

@Extension
public static final class DescriptorImpl extends Descriptor<Builder> {
public DescriptorImpl() {
}

public String getDisplayName() {
return "Make build aborted";
}

public AbortedBuilder newInstance(StaplerRequest req, JSONObject data) {
return new AbortedBuilder();
}
}
}
Expand Up @@ -58,6 +58,9 @@ public void testTriggerByStableBuild() throws Exception {

schedule(projectA, projectB, ResultCondition.UNSTABLE_OR_WORSE);
assertEquals(2, projectB.getLastBuild().getNumber());

schedule(projectA, projectB, ResultCondition.FAILED_OR_BETTER);
assertEquals(3, projectB.getLastBuild().getNumber());
}

public void testTriggerByUnstableBuild() throws Exception {
Expand All @@ -80,6 +83,9 @@ public void testTriggerByUnstableBuild() throws Exception {

schedule(projectA, projectB, ResultCondition.UNSTABLE_OR_WORSE);
assertEquals(3, projectB.getLastBuild().getNumber());

schedule(projectA, projectB, ResultCondition.FAILED_OR_BETTER);
assertEquals(4, projectB.getLastBuild().getNumber());
}

private void schedule(Project projectA, Project projectB, ResultCondition condition)
Expand Down Expand Up @@ -111,5 +117,37 @@ public void testTriggerByFailedBuild() throws Exception {

schedule(projectA, projectB, ResultCondition.UNSTABLE_OR_WORSE);
assertEquals(2, projectB.getLastBuild().getNumber());

schedule(projectA, projectB, ResultCondition.FAILED_OR_BETTER);
assertEquals(3, projectB.getLastBuild().getNumber());
}

public void testTriggerByAbortedBuild() throws Exception {
Project projectA = createFreeStyleProject("projectA");
projectA.getBuildersList().add(new AbortedBuilder());
Project projectB = createFreeStyleProject("projectB");
projectB.setQuietPeriod(1);

schedule(projectA, projectB, ResultCondition.SUCCESS);
assertNull(projectB.getLastBuild());

schedule(projectA, projectB, ResultCondition.FAILED);
assertNull(projectB.getLastBuild());

schedule(projectA, projectB, ResultCondition.UNSTABLE_OR_BETTER);
assertNull(projectB.getLastBuild());

schedule(projectA, projectB, ResultCondition.UNSTABLE);
assertNull(projectB.getLastBuild());

schedule(projectA, projectB, ResultCondition.UNSTABLE_OR_WORSE);
assertEquals(1, projectB.getLastBuild().getNumber());

schedule(projectA, projectB, ResultCondition.FAILED_OR_BETTER);
assertEquals(1, projectB.getLastBuild().getNumber());

schedule(projectA, projectB, ResultCondition.ALWAYS);
assertEquals(2, projectB.getLastBuild().getNumber());
}

}

0 comments on commit b915c9c

Please sign in to comment.