Skip to content

Commit

Permalink
[TEST] [JENKINS-21103] Added test case
Browse files Browse the repository at this point in the history
Added testcase for JENKINS-21103: 
"Priorities are assigned top down by first match" 
does not work correctly
  • Loading branch information
emsa23 committed Dec 20, 2013
1 parent df55f83 commit b4743a6
Show file tree
Hide file tree
Showing 4 changed files with 152 additions and 0 deletions.
@@ -0,0 +1,32 @@
package jenkins.advancedqueue.test;

import hudson.cli.BuildCommand.CLICause;
import hudson.model.Cause;
import jenkins.advancedqueue.testutil.ExpectedItem;
import jenkins.advancedqueue.testutil.JobHelper;
import jenkins.advancedqueue.testutil.TestRunListener;

import org.junit.Rule;
import org.junit.Test;
import org.jvnet.hudson.test.JenkinsRule;
import org.jvnet.hudson.test.recipes.LocalData;

public class MultipleMatchJobGroupTest {

@Rule
public JenkinsRule j = new JenkinsRule();

private JobHelper jobHelper = new JobHelper(j);

@Test
@LocalData
public void multiple_job_group_matches() throws Exception {
// Job 2 and 3 matches View1 and All -> View1 is before All -> priorities are 1 and 2
// Job 0 and 1 matched only All -> priorities are 3 and 4
TestRunListener.init(new ExpectedItem("Job 2", 1), new ExpectedItem("Job 3", 2), new ExpectedItem("Job 0", 3),
new ExpectedItem("Job 1", 4));
jobHelper.scheduleProjects(new CLICause(), new Cause.UserIdCause(), new CLICause(), new Cause.UserIdCause());
j.waitUntilNoActivity();
TestRunListener.assertStartedItems();
}
}
@@ -0,0 +1,63 @@
<?xml version='1.0' encoding='UTF-8'?>
<hudson>
<disabledAdministrativeMonitors>
<string>OldData</string>
</disabledAdministrativeMonitors>
<version>1.520</version>
<numExecutors>0</numExecutors>
<mode>NORMAL</mode>
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.SecurityRealm$None"/>
<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
<workspaceDir>${ITEM_ROOTDIR}/workspace</workspaceDir>
<buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
<markupFormatter class="hudson.markup.RawHtmlMarkupFormatter">
<disableSyntaxHighlighting>false</disableSyntaxHighlighting>
</markupFormatter>
<jdks/>
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
<myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
<clouds/>
<slaves/>
<quietPeriod>5</quietPeriod>
<scmCheckoutRetryCount>0</scmCheckoutRetryCount>
<views>
<hudson.model.AllView>
<owner class="hudson" reference="../../.."/>
<name>All</name>
<filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue>
<properties class="hudson.model.View$PropertyList"/>
</hudson.model.AllView>
<listView>
<owner class="hudson" reference="../../.."/>
<name>View1</name>
<filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue>
<properties class="hudson.model.View$PropertyList"/>
<jobNames>
<comparator class="hudson.util.CaseInsensitiveComparator"/>
<string>Job 2</string>
<string>Job 3</string>
</jobNames>
<jobFilters/>
<columns>
<hudson.views.StatusColumn/>
<hudson.views.WeatherColumn/>
<hudson.views.JobColumn/>
<hudson.views.LastSuccessColumn/>
<hudson.views.LastFailureColumn/>
<hudson.views.LastDurationColumn/>
<hudson.views.BuildButtonColumn/>
<hudson.queueSorter.PrioritySorterJobColumn/>
</columns>
<recurse>false</recurse>
</listView>
</views>
<primaryView>All</primaryView>
<slaveAgentPort>0</slaveAgentPort>
<label></label>
<nodeProperties/>
<globalNodeProperties/>
</hudson>
@@ -0,0 +1,39 @@
<?xml version='1.0' encoding='UTF-8'?>
<jenkins.advancedqueue.PriorityConfiguration plugin="PrioritySorter@2.3-SNAPSHOT">
<jobGroups class="linked-list">
<jenkins.advancedqueue.JobGroup>
<id>0</id>
<priority>1</priority>
<view>View1</view>
<runExclusive>false</runExclusive>
<useJobFilter>false</useJobFilter>
<jobPattern>.*</jobPattern>
<usePriorityStrategies>true</usePriorityStrategies>
<priorityStrategies>
<jenkins.advancedqueue.JobGroup_-PriorityStrategyHolder>
<id>0</id>
<priorityStrategy class="jenkins.advancedqueue.priority.strategy.UserIdCauseStrategy">
<priority>2</priority>
</priorityStrategy>
</jenkins.advancedqueue.JobGroup_-PriorityStrategyHolder>
</priorityStrategies>
</jenkins.advancedqueue.JobGroup>
<jenkins.advancedqueue.JobGroup>
<id>0</id>
<priority>3</priority>
<view>All</view>
<runExclusive>false</runExclusive>
<useJobFilter>false</useJobFilter>
<jobPattern>.*</jobPattern>
<usePriorityStrategies>true</usePriorityStrategies>
<priorityStrategies>
<jenkins.advancedqueue.JobGroup_-PriorityStrategyHolder>
<id>0</id>
<priorityStrategy class="jenkins.advancedqueue.priority.strategy.UserIdCauseStrategy">
<priority>4</priority>
</priorityStrategy>
</jenkins.advancedqueue.JobGroup_-PriorityStrategyHolder>
</priorityStrategies>
</jenkins.advancedqueue.JobGroup>
</jobGroups>
</jenkins.advancedqueue.PriorityConfiguration>
@@ -0,0 +1,18 @@
<?xml version='1.0' encoding='UTF-8'?>
<jenkins.advancedqueue.PrioritySorterConfiguration>
<legacyMode>false</legacyMode>
<legacyMaxPriority>2147483647</legacyMaxPriority>
<legacyMinPriority>-2147483648</legacyMinPriority>
<allowPriorityOnJobs>true</allowPriorityOnJobs>
<strategy class="jenkins.advancedqueue.sorter.strategy.AbsoluteStrategy">
<ifCondition></ifCondition>
<unlessCondition></unlessCondition>
<children/>
<location>
<lineNumber>0</lineNumber>
<columnNumber>0</columnNumber>
</location>
<numberOfPriorities>10</numberOfPriorities>
<defaultPriority>9</defaultPriority>
</strategy>
</jenkins.advancedqueue.PrioritySorterConfiguration>

0 comments on commit b4743a6

Please sign in to comment.