diff --git a/test/integration/non_destructive.yml b/test/integration/non_destructive.yml index 59910755d4f..182414180a9 100644 --- a/test/integration/non_destructive.yml +++ b/test/integration/non_destructive.yml @@ -36,6 +36,7 @@ - { role: test_facts_d, tags: test_facts_d } - { role: test_async, tags: test_async } - { role: test_command_shell, tags: test_command_shell } + - { role: test_task_ordering, tags: test_task_ordering } - { role: test_script, tags: test_script } - { role: test_authorized_key, tags: test_authorized_key } - { role: test_embedded_module, tags: test_embedded_module } diff --git a/test/integration/roles/test_task_ordering/tasks/main.yml b/test/integration/roles/test_task_ordering/tasks/main.yml new file mode 100644 index 00000000000..edd1890a908 --- /dev/null +++ b/test/integration/roles/test_task_ordering/tasks/main.yml @@ -0,0 +1,13 @@ +- shell: mktemp + register: temppath +- include: taskorder-include.yml + with_items: + - 1 + - 2 + - 3 + +- assert: + that: lookup('file', temppath.stdout) == "one.1.two.1.three.1.four.1.one.2.two.2.three.2.four.2.one.3.two.3.three.3.four.3." + +- file: path="{{temppath.stdout}}" state=absent + diff --git a/test/integration/roles/test_task_ordering/tasks/taskorder-include.yml b/test/integration/roles/test_task_ordering/tasks/taskorder-include.yml new file mode 100644 index 00000000000..4e64b7e9276 --- /dev/null +++ b/test/integration/roles/test_task_ordering/tasks/taskorder-include.yml @@ -0,0 +1,10 @@ +# This test ensures that included tasks are run in order. +# There have been regressions where included tasks and +# nested blocks ran out of order... + +- shell: printf one.{{ item }}. >> {{ temppath.stdout }} +- block: + - shell: printf two.{{ item }}. >> {{ temppath.stdout }} + - block: + - shell: printf three.{{ item }}. >> {{ temppath.stdout }} +- shell: printf four.{{ item }}. >> {{ temppath.stdout }}