| 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" { |
| 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" { |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| } |
| |
| // The satisfies all the conditions to run in parallel, but the parallel flag is set to false, |
| // so it should run in sequence |
| run "main_fifth" { |
| state_key = "start" |
| parallel = false |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| } |
| |
| // Expected order: |
| // - run [main_first] |
| // - run [main_second] |
| // - run [main_third] |
| // - run [main_fourth] |
| // - run [main_fifth] |
| |