| // To run in parallel, sequential runs must have different state keys, and not depend on each other |
| // NotDepends: true |
| // DiffStateKey: true |
| test { |
| // This would set the parallel flag to true in all runs |
| parallel = true |
| } |
| |
| variables { |
| foo = "foo" |
| } |
| |
| |
| run "setup" { |
| state_key = "start" |
| module { |
| source = "./setup" |
| } |
| |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "bad" |
| } |
| } |
| |
| // Depends on previous run, but has different state key, so would not run in parallel |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_a" { |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| |
| assert { |
| condition = run.setup.value == var.foo |
| error_message = "triple bad" |
| } |
| } |
| |
| // Depends on previous run, and has same state key, so would not run in parallel |
| // NotDepends: false |
| // DiffStateKey: false |
| run "test_b" { |
| variables { |
| input = run.test_a.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| |
| assert { |
| condition = run.setup.value == var.foo |
| error_message = "triple bad" |
| } |
| } |
| |
| // Does not depend on previous run, and has same state key, so would not run in parallel |
| // NotDepends: true |
| // DiffStateKey: false |
| run "test_c" { |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| } |
| |
| // Does not depend on previous run, and has different state key, so would run in parallel |
| // NotDepends: true |
| // DiffStateKey: true |
| // However, it has a state key that is the same as run.setup, so it should wait for that run, and |
| // thus may run in parallel with test_a |
| run "test_d" { |
| state_key = "start" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "double bad" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_1" { |
| state_key = "state_foo" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_1" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_2" { |
| state_key = "state_bar" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_2" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: false |
| run "test_3" { |
| state_key = "start" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_3" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: false |
| run "test_4" { |
| state_key = "start" |
| variables { |
| input = run.test_2.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_4" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_5" { |
| state_key = "state_baz" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_5" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_6" { |
| state_key = "state_qux" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_6" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: false |
| run "test_7" { |
| state_key = "start" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_7" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: false |
| run "test_8" { |
| state_key = "start" |
| variables { |
| input = run.test_6.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_8" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_9" { |
| state_key = "state_foo" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_9" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_10" { |
| state_key = "state_bar" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_10" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_11" { |
| state_key = "state_foo" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_11" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_12" { |
| state_key = "state_bar" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_12" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: false |
| run "test_13" { |
| state_key = "start" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_13" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: false |
| run "test_14" { |
| state_key = "start" |
| variables { |
| input = run.test_12.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_14" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_15" { |
| state_key = "state_baz" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_15" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_16" { |
| state_key = "state_qux" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_16" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: false |
| run "test_17" { |
| state_key = "start" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_17" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: false |
| run "test_18" { |
| state_key = "start" |
| variables { |
| input = run.test_16.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_18" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_19" { |
| state_key = "state_foo" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_19" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_20" { |
| state_key = "state_bar" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_20" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_21" { |
| state_key = "state_foo" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_21" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_22" { |
| state_key = "state_bar" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_22" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: false |
| run "test_23" { |
| state_key = "start" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_23" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: false |
| run "test_24" { |
| state_key = "start" |
| variables { |
| input = run.test_22.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_24" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_25" { |
| state_key = "state_baz" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_25" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_26" { |
| state_key = "state_qux" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_26" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: false |
| run "test_27" { |
| state_key = "start" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_27" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: false |
| run "test_28" { |
| state_key = "start" |
| variables { |
| input = run.test_26.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_28" |
| } |
| } |
| |
| // NotDepends: true |
| // DiffStateKey: true |
| run "test_29" { |
| state_key = "state_foo" |
| variables { |
| input = "foo" |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_29" |
| } |
| } |
| |
| // NotDepends: false |
| // DiffStateKey: true |
| run "test_30" { |
| state_key = "state_bar" |
| variables { |
| input = run.setup.value |
| } |
| |
| assert { |
| condition = output.value == var.foo |
| error_message = "error in test_30" |
| } |
| } |
| |
| // Expected order: |
| // - run [setup] |
| // - run [test_a, test_d] |
| // - run [test_b] |
| // - run [test_c] |
| |