Skip to content

Commit b4743a6

Browse files
committedDec 20, 2013
[TEST] [JENKINS-21103] Added test case
Added testcase for JENKINS-21103: "Priorities are assigned top down by first match" does not work correctly
1 parent df55f83 commit b4743a6

File tree

4 files changed

+152
-0
lines changed

4 files changed

+152
-0
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package jenkins.advancedqueue.test;
2+
3+
import hudson.cli.BuildCommand.CLICause;
4+
import hudson.model.Cause;
5+
import jenkins.advancedqueue.testutil.ExpectedItem;
6+
import jenkins.advancedqueue.testutil.JobHelper;
7+
import jenkins.advancedqueue.testutil.TestRunListener;
8+
9+
import org.junit.Rule;
10+
import org.junit.Test;
11+
import org.jvnet.hudson.test.JenkinsRule;
12+
import org.jvnet.hudson.test.recipes.LocalData;
13+
14+
public class MultipleMatchJobGroupTest {
15+
16+
@Rule
17+
public JenkinsRule j = new JenkinsRule();
18+
19+
private JobHelper jobHelper = new JobHelper(j);
20+
21+
@Test
22+
@LocalData
23+
public void multiple_job_group_matches() throws Exception {
24+
// Job 2 and 3 matches View1 and All -> View1 is before All -> priorities are 1 and 2
25+
// Job 0 and 1 matched only All -> priorities are 3 and 4
26+
TestRunListener.init(new ExpectedItem("Job 2", 1), new ExpectedItem("Job 3", 2), new ExpectedItem("Job 0", 3),
27+
new ExpectedItem("Job 1", 4));
28+
jobHelper.scheduleProjects(new CLICause(), new Cause.UserIdCause(), new CLICause(), new Cause.UserIdCause());
29+
j.waitUntilNoActivity();
30+
TestRunListener.assertStartedItems();
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<hudson>
3+
<disabledAdministrativeMonitors>
4+
<string>OldData</string>
5+
</disabledAdministrativeMonitors>
6+
<version>1.520</version>
7+
<numExecutors>0</numExecutors>
8+
<mode>NORMAL</mode>
9+
<useSecurity>true</useSecurity>
10+
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
11+
<securityRealm class="hudson.security.SecurityRealm$None"/>
12+
<projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
13+
<workspaceDir>${ITEM_ROOTDIR}/workspace</workspaceDir>
14+
<buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
15+
<markupFormatter class="hudson.markup.RawHtmlMarkupFormatter">
16+
<disableSyntaxHighlighting>false</disableSyntaxHighlighting>
17+
</markupFormatter>
18+
<jdks/>
19+
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
20+
<myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
21+
<clouds/>
22+
<slaves/>
23+
<quietPeriod>5</quietPeriod>
24+
<scmCheckoutRetryCount>0</scmCheckoutRetryCount>
25+
<views>
26+
<hudson.model.AllView>
27+
<owner class="hudson" reference="../../.."/>
28+
<name>All</name>
29+
<filterExecutors>false</filterExecutors>
30+
<filterQueue>false</filterQueue>
31+
<properties class="hudson.model.View$PropertyList"/>
32+
</hudson.model.AllView>
33+
<listView>
34+
<owner class="hudson" reference="../../.."/>
35+
<name>View1</name>
36+
<filterExecutors>false</filterExecutors>
37+
<filterQueue>false</filterQueue>
38+
<properties class="hudson.model.View$PropertyList"/>
39+
<jobNames>
40+
<comparator class="hudson.util.CaseInsensitiveComparator"/>
41+
<string>Job 2</string>
42+
<string>Job 3</string>
43+
</jobNames>
44+
<jobFilters/>
45+
<columns>
46+
<hudson.views.StatusColumn/>
47+
<hudson.views.WeatherColumn/>
48+
<hudson.views.JobColumn/>
49+
<hudson.views.LastSuccessColumn/>
50+
<hudson.views.LastFailureColumn/>
51+
<hudson.views.LastDurationColumn/>
52+
<hudson.views.BuildButtonColumn/>
53+
<hudson.queueSorter.PrioritySorterJobColumn/>
54+
</columns>
55+
<recurse>false</recurse>
56+
</listView>
57+
</views>
58+
<primaryView>All</primaryView>
59+
<slaveAgentPort>0</slaveAgentPort>
60+
<label></label>
61+
<nodeProperties/>
62+
<globalNodeProperties/>
63+
</hudson>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<jenkins.advancedqueue.PriorityConfiguration plugin="PrioritySorter@2.3-SNAPSHOT">
3+
<jobGroups class="linked-list">
4+
<jenkins.advancedqueue.JobGroup>
5+
<id>0</id>
6+
<priority>1</priority>
7+
<view>View1</view>
8+
<runExclusive>false</runExclusive>
9+
<useJobFilter>false</useJobFilter>
10+
<jobPattern>.*</jobPattern>
11+
<usePriorityStrategies>true</usePriorityStrategies>
12+
<priorityStrategies>
13+
<jenkins.advancedqueue.JobGroup_-PriorityStrategyHolder>
14+
<id>0</id>
15+
<priorityStrategy class="jenkins.advancedqueue.priority.strategy.UserIdCauseStrategy">
16+
<priority>2</priority>
17+
</priorityStrategy>
18+
</jenkins.advancedqueue.JobGroup_-PriorityStrategyHolder>
19+
</priorityStrategies>
20+
</jenkins.advancedqueue.JobGroup>
21+
<jenkins.advancedqueue.JobGroup>
22+
<id>0</id>
23+
<priority>3</priority>
24+
<view>All</view>
25+
<runExclusive>false</runExclusive>
26+
<useJobFilter>false</useJobFilter>
27+
<jobPattern>.*</jobPattern>
28+
<usePriorityStrategies>true</usePriorityStrategies>
29+
<priorityStrategies>
30+
<jenkins.advancedqueue.JobGroup_-PriorityStrategyHolder>
31+
<id>0</id>
32+
<priorityStrategy class="jenkins.advancedqueue.priority.strategy.UserIdCauseStrategy">
33+
<priority>4</priority>
34+
</priorityStrategy>
35+
</jenkins.advancedqueue.JobGroup_-PriorityStrategyHolder>
36+
</priorityStrategies>
37+
</jenkins.advancedqueue.JobGroup>
38+
</jobGroups>
39+
</jenkins.advancedqueue.PriorityConfiguration>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<jenkins.advancedqueue.PrioritySorterConfiguration>
3+
<legacyMode>false</legacyMode>
4+
<legacyMaxPriority>2147483647</legacyMaxPriority>
5+
<legacyMinPriority>-2147483648</legacyMinPriority>
6+
<allowPriorityOnJobs>true</allowPriorityOnJobs>
7+
<strategy class="jenkins.advancedqueue.sorter.strategy.AbsoluteStrategy">
8+
<ifCondition></ifCondition>
9+
<unlessCondition></unlessCondition>
10+
<children/>
11+
<location>
12+
<lineNumber>0</lineNumber>
13+
<columnNumber>0</columnNumber>
14+
</location>
15+
<numberOfPriorities>10</numberOfPriorities>
16+
<defaultPriority>9</defaultPriority>
17+
</strategy>
18+
</jenkins.advancedqueue.PrioritySorterConfiguration>

0 commit comments

Comments
 (0)
Please sign in to comment.