@@ -461,6 +461,9 @@ impl GenerateTasksService for GenerateTasksServiceImpl {
461
461
let is_enterprise = self
462
462
. evg_config_utils
463
463
. is_enterprise_build_variant ( build_variant) ;
464
+ let platform = self
465
+ . evg_config_utils
466
+ . infer_build_variant_platform ( build_variant) ;
464
467
for task in & build_variant. tasks {
465
468
// Burn in tasks could be different for each build variant, so we will always
466
469
// handle them.
@@ -502,7 +505,7 @@ impl GenerateTasksService for GenerateTasksServiceImpl {
502
505
}
503
506
504
507
// Skip tasks that have already been seen.
505
- let task_name = lookup_task_name ( is_enterprise, & task. name ) ;
508
+ let task_name = lookup_task_name ( is_enterprise, & task. name , & platform ) ;
506
509
if seen_tasks. contains ( & task_name) {
507
510
continue ;
508
511
}
@@ -553,13 +556,24 @@ impl GenerateTasksService for GenerateTasksServiceImpl {
553
556
554
557
Some ( self . gen_fuzzer_service . generate_fuzzer_task ( & params) ?)
555
558
} else {
556
- event ! ( Level :: INFO , "Generating resmoke task: {}" , task_def. name) ;
557
559
let is_enterprise = self
558
560
. evg_config_utils
559
561
. is_enterprise_build_variant ( build_variant) ;
560
- let params = self
561
- . config_extraction_service
562
- . task_def_to_resmoke_params ( task_def, is_enterprise) ?;
562
+ let platform = self
563
+ . evg_config_utils
564
+ . infer_build_variant_platform ( build_variant) ;
565
+ event ! (
566
+ Level :: INFO ,
567
+ "Generating resmoke task: {}, is_enterprise: {}, platform: {}" ,
568
+ task_def. name,
569
+ is_enterprise,
570
+ platform
571
+ ) ;
572
+ let params = self . config_extraction_service . task_def_to_resmoke_params (
573
+ task_def,
574
+ is_enterprise,
575
+ Some ( platform) ,
576
+ ) ?;
563
577
Some (
564
578
self . gen_resmoke_service
565
579
. generate_resmoke_task ( & params, & build_variant. name )
@@ -593,6 +607,9 @@ impl GenerateTasksService for GenerateTasksServiceImpl {
593
607
let is_enterprise = self
594
608
. evg_config_utils
595
609
. is_enterprise_build_variant ( build_variant) ;
610
+ let platform = self
611
+ . evg_config_utils
612
+ . infer_build_variant_platform ( build_variant) ;
596
613
let mut gen_config = GeneratedConfig :: new ( ) ;
597
614
let mut generating_tasks = vec ! [ ] ;
598
615
let large_distro_name = self
@@ -617,7 +634,7 @@ impl GenerateTasksService for GenerateTasksServiceImpl {
617
634
let task_name = if task. name == BURN_IN_TESTS {
618
635
format ! ( "{}-{}" , BURN_IN_PREFIX , build_variant. name)
619
636
} else {
620
- lookup_task_name ( is_enterprise, & task. name )
637
+ lookup_task_name ( is_enterprise, & task. name , & platform )
621
638
} ;
622
639
623
640
if let Some ( generated_task) = generated_tasks. get ( & task_name) {
@@ -687,20 +704,17 @@ impl GenerateTasksService for GenerateTasksServiceImpl {
687
704
/// # Arguments
688
705
///
689
706
/// * `is_enterprise` - Whether the task is for an enterprise build variant.
690
- /// * `task` - Evergreen definition of task.
707
+ /// * `task` - Name of task.
708
+ /// * `platform` - Platform that task will run on.
691
709
///
692
710
/// # Returns
693
711
///
694
712
/// Name to use for task.
695
- fn lookup_task_name ( is_enterprise : bool , task_name : & str ) -> String {
696
- if task_name == BURN_IN_TESTS {
697
- return task_name. to_string ( ) ;
698
- }
699
-
713
+ fn lookup_task_name ( is_enterprise : bool , task_name : & str , platform : & str ) -> String {
700
714
if is_enterprise {
701
- format ! ( "{}-{}" , task_name, ENTERPRISE_MODULE )
715
+ format ! ( "{}-{}-{} " , task_name, platform , ENTERPRISE_MODULE )
702
716
} else {
703
- task_name . to_string ( )
717
+ format ! ( "{}-{}" , task_name , platform )
704
718
}
705
719
}
706
720
@@ -735,7 +749,8 @@ fn create_task_worker(
735
749
. unwrap ( ) ;
736
750
737
751
let is_enterprise = evg_config_utils. is_enterprise_build_variant ( & build_variant) ;
738
- let task_name = lookup_task_name ( is_enterprise, & task_def. name ) ;
752
+ let platform = evg_config_utils. infer_build_variant_platform ( & build_variant) ;
753
+ let task_name = lookup_task_name ( is_enterprise, & task_def. name , & platform) ;
739
754
740
755
if let Some ( generated_task) = generated_task {
741
756
let mut generated_tasks = generated_tasks. lock ( ) . unwrap ( ) ;
@@ -933,15 +948,16 @@ mod tests {
933
948
934
949
// tests for lookup_task_name.
935
950
#[ rstest]
936
- #[ case( false , "my_task" , "my_task" ) ]
937
- #[ case( true , "my_task" , "my_task-enterprise" ) ]
951
+ #[ case( false , "my_task" , "my_platform" , " my_task-my_platform ") ]
952
+ #[ case( true , "my_task" , "my_platform" , " my_task-my_platform -enterprise") ]
938
953
fn test_lookup_task_name_should_use_enterprise_when_specified (
939
954
#[ case] is_enterprise : bool ,
940
955
#[ case] task_name : & str ,
956
+ #[ case] platform : & str ,
941
957
#[ case] expected_task_name : & str ,
942
958
) {
943
959
assert_eq ! (
944
- lookup_task_name( is_enterprise, task_name) ,
960
+ lookup_task_name( is_enterprise, task_name, platform ) ,
945
961
expected_task_name. to_string( )
946
962
) ;
947
963
}
@@ -1048,6 +1064,10 @@ mod tests {
1048
1064
fn is_enterprise_build_variant ( & self , _build_variant : & BuildVariant ) -> bool {
1049
1065
todo ! ( )
1050
1066
}
1067
+
1068
+ fn infer_build_variant_platform ( & self , _build_variant : & BuildVariant ) -> String {
1069
+ todo ! ( )
1070
+ }
1051
1071
}
1052
1072
1053
1073
struct MockResmokeConfigActorService { }
@@ -1083,6 +1103,7 @@ mod tests {
1083
1103
& self ,
1084
1104
_task_def : & EvgTask ,
1085
1105
_is_enterprise : bool ,
1106
+ _platform : Option < String > ,
1086
1107
) -> Result < ResmokeGenParams > {
1087
1108
todo ! ( )
1088
1109
}
0 commit comments