bbbdc1c25c
* throttle tests: fix detection of parallel execution The test wasn't able to detect if too many workers were running. On my laptop: - without this change, the 'throttle' target takes ~20 seconds - with this change, the 'throttle' target takes ~70 seconds - 1 second isn't long enough to encounter the issue * Fix throttle test when strategy is 'free' based 'free' strategy allows multiple tasks to be executed in parallel: use one 'throttledir' per task. Use 'linear' strategy with a dedicated play for cleanup/setup tasks * throttle: reset worker idx before queuing a new task * TestStrategyBase: define task.throttle otherwise '1' will be used instead of the default value due to the following expression being equal to '1': int(templar.template(task_mock.throttle)) Co-authored-by: James Cammarata <jimi@sngx.net>
84 lines
2.4 KiB
YAML
84 lines
2.4 KiB
YAML
---
|
|
- hosts: localhosts
|
|
gather_facts: false
|
|
strategy: linear
|
|
run_once: yes
|
|
tasks:
|
|
- name: Clean base throttledir '{{ base_throttledir }}'
|
|
file:
|
|
state: absent
|
|
path: '{{ base_throttledir }}'
|
|
ignore_errors: yes
|
|
|
|
- name: Create throttledir '{{ throttledir }}'
|
|
file:
|
|
state: directory
|
|
path: '{{ throttledir }}'
|
|
loop: "{{ range(1, test_count|int)|list }}"
|
|
loop_control:
|
|
loop_var: test_id
|
|
vars:
|
|
test_count: "{{ 9 if lookup('env', 'SELECTED_STRATEGY') in ['free', 'host_pinned'] else 2 }}"
|
|
|
|
- hosts: localhosts
|
|
gather_facts: false
|
|
strategy: "{{ lookup('env', 'SELECTED_STRATEGY') }}"
|
|
tasks:
|
|
- block:
|
|
- name: "Test 1 (max throttle: 3)"
|
|
script: "test_throttle.py {{throttledir}} {{inventory_hostname}} 3"
|
|
vars:
|
|
test_id: 1
|
|
throttle: 3
|
|
- block:
|
|
- name: "Test 2 (max throttle: 5)"
|
|
script: "test_throttle.py {{throttledir}} {{inventory_hostname}} 5"
|
|
throttle: 5
|
|
vars:
|
|
test_id: 2
|
|
- block:
|
|
- name: "Test 3 (max throttle: 8)"
|
|
script: "test_throttle.py {{throttledir}} {{inventory_hostname}} 8"
|
|
throttle: 8
|
|
throttle: 6
|
|
vars:
|
|
test_id: 3
|
|
- block:
|
|
- block:
|
|
- name: "Test 4 (max throttle: 8)"
|
|
script: "test_throttle.py {{throttledir}} {{inventory_hostname}} 8"
|
|
throttle: 8
|
|
vars:
|
|
test_id: 4
|
|
throttle: 6
|
|
throttle: 12
|
|
throttle: 15
|
|
- block:
|
|
- name: "Teat 5 (max throttle: 3)"
|
|
script: "test_throttle.py {{throttledir}} {{inventory_hostname}} 3"
|
|
vars:
|
|
test_id: 5
|
|
throttle: 3
|
|
- block:
|
|
- name: "Test 6 (max throttle: 5)"
|
|
script: "test_throttle.py {{throttledir}} {{inventory_hostname}} 5"
|
|
throttle: 5
|
|
vars:
|
|
test_id: 6
|
|
- block:
|
|
- name: "Test 7 (max throttle: 6)"
|
|
script: "test_throttle.py {{throttledir}} {{inventory_hostname}} 6"
|
|
throttle: 6
|
|
vars:
|
|
test_id: 7
|
|
throttle: 3
|
|
- block:
|
|
- block:
|
|
- name: "Test 8 (max throttle: 8)"
|
|
script: "test_throttle.py {{throttledir}} {{inventory_hostname}} 8"
|
|
throttle: 8
|
|
vars:
|
|
test_id: 8
|
|
throttle: 6
|
|
throttle: 4
|
|
throttle: 2
|