@@ -11,8 +11,8 @@ use crate::internal::messages::worker::{StealResponse, StealResponseMsg};
1111use crate :: internal:: scheduler:: state:: SchedulerState ;
1212use crate :: internal:: server:: core:: Core ;
1313use crate :: internal:: server:: reactor:: {
14- on_cancel_tasks, on_new_tasks, on_new_worker, on_remove_worker, on_steal_response ,
15- on_task_error, on_task_finished, on_task_running,
14+ T_LEVEL_WEIGHT , on_cancel_tasks, on_new_tasks, on_new_worker, on_remove_worker,
15+ on_steal_response , on_task_error, on_task_finished, on_task_running,
1616} ;
1717use crate :: internal:: server:: task:: { Task , TaskRuntimeState } ;
1818use crate :: internal:: server:: worker:: Worker ;
@@ -144,6 +144,48 @@ fn test_worker_add() {
144144 assert_eq ! ( core. get_workers( ) . count( ) , 2 ) ;
145145}
146146
147+ #[ test]
148+ fn test_scheduler_priority ( ) {
149+ let mut core = Core :: default ( ) ;
150+ let mut comm = create_test_comm ( ) ;
151+ //new_workers(&mut core, &mut comm, vec![1]);
152+
153+ let t1 = task ( 501 ) ;
154+ let t2 = task_with_deps ( 502 , & [ & t1] ) ;
155+ let t3 = task ( 503 ) ;
156+ let t4 = task_with_deps ( 504 , & [ & t2] ) ;
157+
158+ let task_id5 = TaskId :: new ( 123 . into ( ) , 1 . into ( ) ) ;
159+ let t5 = TaskBuilder :: new ( task_id5) . build ( ) ;
160+ let task_id6 = TaskId :: new ( 122 . into ( ) , 0 . into ( ) ) ;
161+ let t6 = TaskBuilder :: new ( task_id6) . build ( ) ;
162+ let task_id7 = TaskId :: new ( 123 . into ( ) , 2 . into ( ) ) ;
163+ let t7 = TaskBuilder :: new ( task_id7) . task_deps ( & [ & t5] ) . build ( ) ;
164+ let task_id8 = TaskId :: new ( 123 . into ( ) , 4 . into ( ) ) ;
165+ let t8 = TaskBuilder :: new ( task_id8) . build ( ) ;
166+
167+ on_new_tasks ( & mut core, & mut comm, vec ! [ t1, t2, t3, t4, t5, t6, t7, t8] ) ;
168+
169+ assert_eq ! ( core. get_task( TaskId :: new_test( 501 ) ) . scheduler_priority, 0 ) ;
170+ assert_eq ! (
171+ core. get_task( TaskId :: new_test( 502 ) ) . scheduler_priority,
172+ T_LEVEL_WEIGHT
173+ ) ;
174+ assert_eq ! ( core. get_task( TaskId :: new_test( 503 ) ) . scheduler_priority, 0 ) ;
175+ assert_eq ! (
176+ core. get_task( TaskId :: new_test( 504 ) ) . scheduler_priority,
177+ 2 * T_LEVEL_WEIGHT
178+ ) ;
179+
180+ assert_eq ! ( core. get_task( task_id5) . scheduler_priority, -123 ) ;
181+ assert_eq ! ( core. get_task( task_id6) . scheduler_priority, -122 ) ;
182+ assert_eq ! (
183+ core. get_task( task_id7) . scheduler_priority,
184+ -123 + T_LEVEL_WEIGHT
185+ ) ;
186+ assert_eq ! ( core. get_task( task_id8) . scheduler_priority, -123 ) ;
187+ }
188+
147189#[ test]
148190fn test_submit_jobs ( ) {
149191 let mut core = Core :: default ( ) ;
0 commit comments