ansible/test/integration/targets/order/order.yml
Sam Doran a4b2ce5e13
Add test to ordered integration tests to exercise shuffle code path (#53138)
This is meant to exercise the code path not test for randomness, though it somewhat does that.
2019-03-11 10:14:06 -04:00

39 lines
1.2 KiB
YAML

- name: just plain order
hosts: all
gather_facts: false
order: '{{ myorder | default("inventory") }}'
tasks:
- shell: "echo '{{ inventory_hostname }}' >> hostlist.txt"
- name: with serial
hosts: all
gather_facts: false
serial: 1
order: '{{ myorder | default("inventory")}}'
tasks:
- shell: "echo '{{ inventory_hostname }}' >> shostlist.txt"
- name: ensure everything works
hosts: localhost
gather_facts: false
tasks:
- assert:
that:
- item.1 == hostlist[item.0]
- item.1 == shostlist[item.0]
loop: '{{ lookup("indexed_items", inputlist) }}'
vars:
hostlist: '{{ lookup("file", "hostlist.txt").splitlines() }}'
shostlist: '{{ lookup("file", "shostlist.txt").splitlines() }}'
when: myorder | default('inventory') != 'shuffle'
- name: Assert that shuffle worked
assert:
that:
- item.1 != hostlist[item.0] or item.1 in hostlist
- item.1 != hostlist[item.0] or item.1 in hostlist
loop: '{{ lookup("indexed_items", inputlist) }}'
vars:
hostlist: '{{ lookup("file", "hostlist.txt").splitlines() }}'
shostlist: '{{ lookup("file", "shostlist.txt").splitlines() }}'
when: myorder | default('inventory') == 'shuffle'