| test { |
| // This would set the parallel flag to true in all runs |
| parallel = true |
| } |
| |
| variables { |
| foo = "foo" |
| } |
| |
| |
| run "main_first" { |
| state_key = "start" |
| module { |
| source = "./setup" |
| } |
| |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "bad" |
| } |
| } |
| |
| run "main_second" { |
| variables { |
| input = run.main_first.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| |
| assert { |
| condition = run.main_first.value == var.foo |
| error_message = "triple bad" |
| } |
| } |
| |
| run "main_third" { |
| state_key = "uniq_3" |
| variables { |
| input = run.main_second.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| |
| assert { |
| condition = run.main_first.value == var.foo |
| error_message = "triple bad" |
| } |
| } |
| |
| run "main_fourth" { |
| parallel = false // effectively dividing the parallelizable group into two |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| } |
| |
| // Because of the division caused by main_fourth, main_fifth and main_sixth would run in parallel, |
| // but would only run after main_fourth has completed. |
| run "main_fifth" { |
| state_key = "uniq_5" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| } |
| |
| run "main_sixth" { |
| state_key = "uniq_6" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| } |