summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/blocks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/blocks/main.yml')
-rw-r--r--test/integration/targets/blocks/main.yml128
1 files changed, 128 insertions, 0 deletions
diff --git a/test/integration/targets/blocks/main.yml b/test/integration/targets/blocks/main.yml
new file mode 100644
index 0000000..efe358a
--- /dev/null
+++ b/test/integration/targets/blocks/main.yml
@@ -0,0 +1,128 @@
+- name: simple block test
+ hosts: testhost
+ gather_facts: yes
+ strategy: "{{test_strategy|default('linear')}}"
+ vars:
+ block_tasks_run: false
+ block_rescue_run: false
+ block_always_run: false
+ nested_block_always_run: false
+ tasks_run_after_failure: false
+ rescue_run_after_failure: false
+ always_run_after_failure: false
+ nested_block_fail_always: false
+ tasks:
+ - block:
+ - name: set block tasks run flag
+ set_fact:
+ block_tasks_run: true
+ - name: EXPECTED FAILURE fail in tasks
+ fail:
+ - name: tasks flag should not be set after failure
+ set_fact:
+ tasks_run_after_failure: true
+ rescue:
+ - name: set block rescue run flag
+ set_fact:
+ block_rescue_run: true
+ - name: EXPECTED FAILURE fail in rescue
+ fail:
+ - name: tasks flag should not be set after failure in rescue
+ set_fact:
+ rescue_run_after_failure: true
+ always:
+ - name: set block always run flag
+ set_fact:
+ block_always_run: true
+ #- block:
+ # - meta: noop
+ # always:
+ # - name: set nested block always run flag
+ # set_fact:
+ # nested_block_always_run: true
+ # - name: fail in always
+ # fail:
+ # - name: tasks flag should not be set after failure in always
+ # set_fact:
+ # always_run_after_failure: true
+ - meta: clear_host_errors
+
+ # https://github.com/ansible/ansible/issues/35148
+ - block:
+ - block:
+ - name: EXPECTED FAILURE test triggering always by failing in nested block with run_once set
+ fail:
+ run_once: true
+ always:
+ - name: set block fail always run flag
+ set_fact:
+ nested_block_fail_always: true
+ - meta: clear_host_errors
+
+ - block:
+ - block:
+ - name: EXPECTED FAILURE test triggering always by failing in nested block with any_errors_fatal set
+ fail:
+ any_errors_fatal: true
+ always:
+ - name: set block fail always run flag
+ set_fact:
+ nested_block_fail_always: true
+ - meta: clear_host_errors
+
+ post_tasks:
+ - assert:
+ that:
+ - block_tasks_run
+ - block_rescue_run
+ - block_always_run
+ #- nested_block_always_run
+ - not tasks_run_after_failure
+ - not rescue_run_after_failure
+ - not always_run_after_failure
+ - nested_block_fail_always
+ - debug: msg="TEST COMPLETE"
+
+- name: block with includes
+ hosts: testhost
+ gather_facts: yes
+ strategy: "{{test_strategy|default('linear')}}"
+ vars:
+ rescue_run_after_include_fail: false
+ always_run_after_include_fail_in_rescue: false
+ tasks_run_after_failure: false
+ rescue_run_after_failure: false
+ always_run_after_failure: false
+ tasks:
+ - block:
+ - name: include fail.yml in tasks
+ import_tasks: fail.yml
+ vars:
+ msg: "failed from tasks"
+ - name: tasks flag should not be set after failure
+ set_fact:
+ tasks_run_after_failure: true
+ rescue:
+ - set_fact:
+ rescue_run_after_include_fail: true
+ - name: include fail.yml in rescue
+ import_tasks: fail.yml
+ vars:
+ msg: "failed from rescue"
+ - name: flag should not be set after failure in rescue
+ set_fact:
+ rescue_run_after_failure: true
+ always:
+ - set_fact:
+ always_run_after_include_fail_in_rescue: true
+ - meta: clear_host_errors
+
+ post_tasks:
+ - assert:
+ that:
+ - rescue_run_after_include_fail
+ - always_run_after_include_fail_in_rescue
+ - not tasks_run_after_failure
+ - not rescue_run_after_failure
+ - not always_run_after_failure
+ - debug: msg="TEST COMPLETE"