You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As agreed on the hacking session, let's dedicate some limited time (e.g. one or two hours) to a discussion about the proposed and brainstormed options for handling various environment combinations. Let's put together all approaches suggested so far and identify essential advantages and disadvantages for all of them.
The Problem
Users need to run the same tests across multiple environment combinations (distros, architectures, configurations) but tmt has no first-class mechanism to express this.
What is possible
Parameterize Tests using fmf inheritance and manual --environment iterations
Anchors and Aliases help to prevent metadata duplication across the tree branches
Why it matters
Usability ... Environment combination testing is a fundamental workflow. Not supporting it natively means every user reinvents the wheel.
Scalability ... Manual plan duplication breaks down quickly. Testing across N distros × M arches × K configs means N×M×K nearly-identical plans.
Nested execution ... Issue Support for running tmt in tmt #3298 describes the related need for running tmt within tmt — e.g., provisioning a bare-metal hypervisor, then spawning VMs as guests — with aggregated results from child runs. The combination problem and the nesting problem share a need for orchestrating multiple environments and collecting unified results.
Alternatives
Here is the list of the alternatives brainstormed so far.
Matrix Plan Shaper
Implementation draft already proposed in the pull request below. Similar to how --max-tests-per-plan or importing multiple remote plans is working.
A separate tmt go command which would generate the combinations, execute tmt run for each environment combinations and aggregate the results from individual runs at the end to perform a nice overview of the whole execution.
As agreed on the hacking session, let's dedicate some limited time (e.g. one or two hours) to a discussion about the proposed and brainstormed options for handling various environment combinations. Let's put together all approaches suggested so far and identify essential advantages and disadvantages for all of them.
The Problem
Users need to run the same tests across multiple environment combinations (distros, architectures, configurations) but
tmthas no first-class mechanism to express this.What is possible
fmfinheritance and manual--environmentiterationsWhy it matters
tmtintmt#3298 describes the related need for running tmt within tmt — e.g., provisioning a bare-metal hypervisor, then spawning VMs as guests — with aggregated results from child runs. The combination problem and the nesting problem share a need for orchestrating multiple environments and collecting unified results.Alternatives
Here is the list of the alternatives brainstormed so far.
Matrix Plan Shaper
Implementation draft already proposed in the pull request below. Similar to how
--max-tests-per-planor importing multiple remote plans is working.Jinja Templates
Using templates and iteration across the desired values together with
pre-commit. A tangible example linked below.Dedicated Command
A separate
tmt gocommand which would generate the combinations, executetmt runfor each environment combinations and aggregate the results from individual runs at the end to perform a nice overview of the whole execution.tmtintmt#3298External Tools
Use external tools like
newato take care of the environment combination handling.tmt runRelated
hardware#765