@@ -384,6 +384,56 @@ let ``executes several dependent rules``() =
384384
385385 Assert.AreEqual( 11 , ! count)
386386
387+ [<Test>]
388+ let ``executes in parallel`` () =
389+
390+ let steps = System.Collections.Generic.List< int>()
391+
392+ do xake { XakeOptions with Threads = 4 } {
393+ rules [
394+ " main" <== [ " rule1" ; " rule2" ; " rule3" ]
395+ " rule1" => action {
396+ do ! Async.Sleep( 40 )
397+ steps.Add 1
398+ }
399+ " rule2" => action {
400+ do ! Async.Sleep( 20 )
401+ steps.Add 2
402+ }
403+ " rule3" => action {
404+ do ! Async.Sleep( 10 )
405+ steps.Add 3
406+ }
407+ ]
408+ }
409+
410+ Assert.That( steps, Is.EqualTo([ 3 ; 2 ; 1 ] |> List.toArray))
411+
412+ [<Test>]
413+ let ``op <<< executes one by one`` () =
414+
415+ let steps = System.Collections.Generic.List < int >()
416+
417+ do xake { XakeOptions with Threads = 4 } {
418+ rules [
419+ "main " <<< [ "rule1 "; "rule2 "; "rule3 "]
420+ "rule1 " => action {
421+ do ! Async.Sleep ( 40 )
422+ steps.Add 1
423+ }
424+ "rule2 " => action {
425+ do ! Async.Sleep( 20)
426+ steps.Add 2
427+ }
428+ "rule3 " = > action {
429+ do ! Async.Sleep( 10 )
430+ steps.Add 3
431+ }
432+ ]
433+ }
434+
435+ Assert.AreEqual( steps, [ 1 ; 2 ; 3 ] |> List.toArray)
436+
387437[<Test>]
388438let ``writes dependencies to a build database`` () =
389439
@@ -424,7 +474,7 @@ let ``writes dependencies to a build database``() =
424474 try
425475 match testee.PostAndReply <| fun ch -> DatabaseApi.GetResult (( PhonyAction " test" ), ch) with
426476 | Some {
427- BuildResult.Result = PhonyAction " test"
477+ BuildResult.Targets = [ PhonyAction " test" ]
428478 Depends = [
429479 ArtifactDep ( PhonyAction " aaa" ); ArtifactDep ( PhonyAction " deeplyNested" );
430480 FileDep ( fileDep, depDate)
@@ -437,8 +487,8 @@ let ``writes dependencies to a build database``() =
437487
438488 match testee.PostAndReply <| fun ch -> DatabaseApi.GetResult (( PhonyAction " test1" ), ch) with
439489 | Some {
440- BuildResult.Result = PhonyAction " test1"
441- BuildResult. Depends = [ ArtifactDep ( PhonyAction " aaa" )]
490+ Targets = [ PhonyAction " test1" ]
491+ Depends = [ ArtifactDep ( PhonyAction " aaa" )]
442492 //BuildResult.Steps = []
443493 } -> true
444494 | _ -> false
0 commit comments