[multi-dut] Added fixtures for selecting nodes from multi-duts based on card type and hwsku #2693
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of PR
Summary:
Fixes # (issue)
Type of change
Approach
What is the motivation for this PR?
When dealing with SONiC Chassis you have cards of different type
Also, you could have linecards with different hwsku's in the same chassis.
When using the parameterized approach for multi-dut to select test cases to run on a chassis, we need to make sure that we parameterize the tests to provide all the required coverage.
How did you do it?
Added the following fixtures that can be used for parameterizing tests for chassis:
- hwsku for a node is derived from the 'hwsku' or 'sonic_hwsku' variable in the inventory for the node.
To achieve the above:
Added dut_utils under common/helpers to:
Modified SonicHost.is_supervisor_node to use dut_utils.is_supervisor_node.
How did you verify/test it?
Created a sample test case to exercise the selection of DUT's in a multi-dut testbed.
The test were run against a Chassis testbed with the following cads:
The pytest results of running the sample test above against the testbed above is shown below.
Any platform specific information?
Supported testbed topology if it's a new test case?
Documentation