Skip to content

Commit 5b5a933

Browse files
authored
[Chore] Add IT Case for task using taskGroup with different taskGroupPriority (#17680)
1 parent 92edbb4 commit 5b5a933

File tree

2 files changed

+46
-13
lines changed

2 files changed

+46
-13
lines changed

dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/integration/cases/WorkflowStartTestCase.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,9 @@ public void testStartWorkflow_with_oneSuccessTaskDryRun() {
125125
}
126126

127127
@Test
128-
@DisplayName("Test start a workflow with one fake task(A) using task group")
129-
public void testStartWorkflow_with_oneSuccessTaskUsingTaskGroup() {
130-
final String yaml = "/it/start/workflow_with_one_fake_task_using_task_group.yaml";
128+
@DisplayName("Test start a workflow with two fake task(A) using task group")
129+
public void testStartWorkflow_with_successTaskUsingTaskGroup() {
130+
final String yaml = "/it/start/workflow_with_fake_tasks_using_task_group.yaml";
131131
final WorkflowTestCaseContext context = workflowTestCaseContextFactory.initializeContextFromYaml(yaml);
132132
final WorkflowDefinition workflow = context.getOneWorkflow();
133133

@@ -137,19 +137,28 @@ public void testStartWorkflow_with_oneSuccessTaskUsingTaskGroup() {
137137
.build();
138138

139139
workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
140-
workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
141-
workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
142-
workflowOperator.manualTriggerWorkflow(workflowTriggerDTO);
143140

144141
await()
145142
.atMost(Duration.ofMinutes(2))
146143
.atLeast(Duration.ofSeconds(20))
147144
.untilAsserted(() -> {
145+
final List<TaskInstance> taskInstances = repository.queryTaskInstance(workflow);
148146
Assertions
149-
.assertThat(repository.queryTaskInstance(workflow))
150-
.hasSize(4)
151-
.allMatch(taskInstance -> TaskExecutionStatus.SUCCESS.equals(taskInstance.getState())
152-
&& taskInstance.getTaskGroupId() == context.getTaskGroups().get(0).getId());
147+
.assertThat(taskInstances)
148+
.hasSize(2)
149+
.allMatch(taskInstance -> TaskExecutionStatus.SUCCESS.equals(taskInstance.getState()) &&
150+
taskInstance.getTaskGroupId() == context.getTaskGroups().get(0).getId());
151+
152+
final TaskInstance taskA = taskInstances.stream()
153+
.filter(t -> "A".equals(t.getName()))
154+
.findFirst().get();
155+
final TaskInstance taskB = taskInstances.stream()
156+
.filter(t -> "B".equals(t.getName()))
157+
.findFirst().get();
158+
// TaskA's task group priority is smaller than B
159+
Assertions.assertThat(taskA.getStartTime()).isAfter(taskB.getStartTime());
160+
Assertions.assertThat(taskA.getEndTime()).isAfter(taskB.getEndTime());
161+
153162
});
154163

155164
masterContainer.assertAllResourceReleased();

dolphinscheduler-master/src/test/resources/it/start/workflow_with_one_fake_task_using_task_group.yaml renamed to dolphinscheduler-master/src/test/resources/it/start/workflow_with_fake_tasks_using_task_group.yaml

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ project:
2525
updateTime: 2021-08-12 00:00:00
2626

2727
workflows:
28-
- name: workflow_with_one_fake_task_success
28+
- name: workflow_with_fake_tasks_using_task_group_success
2929
code: 1
3030
version: 1
3131
projectCode: 1
32-
description: This is a fake workflow with single task
32+
description: This is a fake workflow with two fake tasks
3333
releaseState: ONLINE
3434
createTime: 2024-08-12 00:00:00
3535
updateTime: 2021-08-12 00:00:00
@@ -51,6 +51,20 @@ tasks:
5151
updateTime: 2021-08-12 00:00:00
5252
taskExecuteType: BATCH
5353

54+
- name: B
55+
code: 2
56+
version: 1
57+
projectCode: 1
58+
userId: 1
59+
taskType: LogicFakeTask
60+
taskParams: '{"localParams":null,"varPool":[],"shellScript":"sleep 5"}'
61+
workerGroup: default
62+
taskGroupId: 1
63+
taskGroupPriority: 2
64+
createTime: 2024-08-12 00:00:00
65+
updateTime: 2021-08-12 00:00:00
66+
taskExecuteType: BATCH
67+
5468
taskRelations:
5569
- projectCode: 1
5670
workflowDefinitionCode: 1
@@ -61,12 +75,22 @@ taskRelations:
6175
postTaskVersion: 1
6276
createTime: 2024-08-12 00:00:00
6377
updateTime: 2024-08-12 00:00:00
78+
- projectCode: 1
79+
workflowDefinitionCode: 1
80+
workflowDefinitionVersion: 1
81+
preTaskCode: 0
82+
preTaskVersion: 0
83+
postTaskCode: 2
84+
postTaskVersion: 1
85+
createTime: 2024-08-12 00:00:00
86+
updateTime: 2024-08-12 00:00:00
87+
6488

6589
taskGroups:
6690
- id: 1
6791
name: default
6892
projectCode: 1
69-
groupSize: 2
93+
groupSize: 1
7094
useSize: 0
7195
userId: 1
7296
status: YES

0 commit comments

Comments
 (0)