You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 5
Next »
Overview
The Unit Test Plan (UTP) will follow the same section breakdown as the Requirements in the Scope & Requirement Document.
The following types of tests shall be included where it makes sense.
- In-Range UT - these are the test cases which cover normal operations.
- Out-of-Range UT - these are the test cases which cover out of range scenarios:
- border cases
- race conditions
- unexpected events
- EX: Tearing down an active Network Interface
- Error UT
- Error parameters
- Error Conditions
- network goes down unexpectedly
- Wire gets disconnected, etc
Performance Testing cases will be a separate section in this document.
Unit Test Plan
Configuration tests should be done through the DLC direct interface, as well as the YAML interface.
Local Network Configuration
In-Range UT
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
cfg-020 | cfg-005, cfg-010, cfg-015,cfg-045, cfg-055, cfg-060, cfg-065 | | - Configure 3 NIDs on the same TCP network.
- Show the NIDs
|
| | | - Configure 3 NIDs on the same IB network
- Show the NIDs
|
| | | - Configure 3 NIDs on the same TCP/IB Network
- Show the NIDs
- Delete 1 NID from the TCP/IB Network
- Show the NIDs
|
| | | - Configure 2 NIDs on tcp0/o2ib0
- Configure 2 NIDs on tcp1/o2ib1
- Show the NIDs
- Delete 1st NID from tcp0
- Delete 2nd NID from tcp0
- Show NIDs
- No more tcp 0 should exist
- o2ib0 should be unaffected
|
cfg-025 | cfg-005, cfg-010, cfg-015,cfg-045, cfg-055, cfg-060, cfg-065 | | - Configure the system to have 4 CPTs
- options libcfs cpu_npartitions=4 cpu_pattern="0[0] 1[1] 2[2] 3[3]"
- Configure 2 NIDs on tcp0
- NID 1 should be on CPTs 0, 3
- NID 2 should be on CPTs 1, 2
- Show NIDs
- proper CPT association should be displayed
|
cfg-035 | cfg-040, cfg-045, cfg-055, cfg-060, cfg-065 | | - Configure the system to have 4 CPTs
- options libcfs cpu_npartitions=4 cpu_pattern="0[0] 1[1] 2[2] 3[3]"
- Configure 3 NIDs on tcp0
- NID 1 should be on CPTs 0, 3
- NID 2 should be on CPTs 1, 2
- NID 3 should be on all CPTs
- Show NIDs
- proper CPT association should be displayed
- NID 3 should exist on all CPTs
|
| | | - Configure 1st NID on tcp0 using the legacy ip2nets parameter from DLC
- Show NIDs
|
| | | - Configure 1st NID on tcp*/o2ib* in the following form:
- tcp(<eth intf>)[<cpt>] <pattern>
- Show NIDs to ensure that the interface has been added to the correct CPTs
|
| | | - Configure 1st NID on tcp*/o2ib* in the following form:
- tcp(<eth intf>, <eth intf>, ...)[<cpt>] <pattern>
- Show NIDs to ensure that the interface has been added to the correct CPTs
|
| | | - Configure 1st NID on tcp*/o2ib* in the following form:
- tcp(<eth intf>[<ctp>], <eth intf>[<ctp>], ...) <pattern>
- Show NIDs to ensure that the interface has been added to the correct CPTs
|
cfg-060 | cfg-065 | | Go through the following lnetctl commands and excercise their parameters: |
Out-of-Range UT
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
cfg-020 | cfg-005, cfg-010, cfg-015 | | - Configure 32 NIDs on the same TCP/IB Network
- Show the NIDs
|
| | | - Configure 32 NIDs on the same TCP/IB Network
- Show the NIDs.
- Delete 32 NIDs on the same TCP/IB Network
|
| | | - Configure NID A, B and C on tcp0/o2ib0 Network
- Configure NID A and B on tcp1/o2ib1 Network
- Show the NIDs
- Configuration should succeed. NIs can exist on different networks
|
cfg-060 | cfg-065 | | Go through the following lnetctl commands and excercise their parameters, by providing out of range values: |
| | | - Don't configure any LNet modprobe.
- Load LNet where there exists only one commissioned IB interface with IPoIB configured
- a TCP network should be created with that IB interface
- Configure an o2ib network with the same IB interface
- Now you should have two interfaces with exactly the same IB
|
Error UT
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
| | | - Configure 128 NIDs on the same TCP/IB Network
- Only the maximum NIDs will be configured
|
| | | - Configure a non-existent NID on tcp0
- Configuration should fail with INVALID PARAMETER
|
| | | - Configure the system to have 4 CPTs
- options libcfs cpu_npartitions=4 cpu_pattern="0[0] 1[1] 2[2] 3[3]"
- Configure 3 NIDs on tcp0
- NID 1 should be on CPTs 0, 4
- NID 2 should be on CPTs 1, 2
- NID 3 should be on all CPTs
- Show NIDs
- NID 1 should fail since no CPT 4
|
| | | Go through the following lnetctl commands and excercise their parameters, by providing error values: |
| | | Delete a non-existent network |
| | | Delete a non existent NID on tcp/o2ib |
Remote Peer Configuration
In-Range UT
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
cfg-070 | | | - add a new peer with only 1 NID
|
cfg-070 | | | - add a new peer with only 1 NID
- add more nids to that peer
|
cfg-070 | | | - add a new peer with mulitple NIDs
|
cfg-070 | | | - add a new peer with only 1 NID
- Delete that NID
|
cfg-070 | | | - add a new peer with multiple NIDs
- Delete each NID one at a time until the peer is removed
|
cfg-070 | | | - add a new peer with multiple NIDs
- Delete all NIDs but one.
- Re-add multiple NIDs one at a time.
|
cfg-070 | | | - add a new peer with multiple NIDs
- Delete all NIDs but one.
- Re-add multiple NIDs in one shot.
|
cfg-075 | | | - add a new peer with multiple NIDs on different networks
|
Out-of-Range UT
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
| | | - add a new peer with 32 NIDs
|
| | | - delete a peer and all its 32 NIDs
|
Error UT
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
cfg-070 | | | |
cfg-070 | | | - add a peer with multiple NIDs
- delete a non-existent peer NID from the peer identified by key-NID
|
cfg-080 | snd-065 | | - add peer 1 with NIDs A, B and C
- add peer 2 with NIDs D, C and E
|
Policy Configuration
In-Range UT
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
cfg-090 | | | - Set the NUMA range to 0
- The NI closest to the message memory NUMA will be picked.
|
cfg-090 | | | - Increase the NUMA range step by step
- Note that more NIs are picked when sending
|
cfg-090 | snd-025 | | - Set the NUMA range to a large value
- start traffic
- NIs are picked in round robin
|
Error UT
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
cfg-090 | | | - Set the NUMA range to < 0
- This should be rejected
|
General Configuration
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
cfg-170 | | | - Configure multiple NIs
- Configure multipe Peers with multiple NIDs
- set NUMA range value
- Dump the YAML configuration
- use the YAML configuration file to delete all configuration
- use the YAML configuration file to reconfigure the node.
|
Functional Requirements
Interface Selection and Message Sending Requirements
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
snd-005 | | | - Configure 3 NIs with equadistant NUMA distance
- Send three or more messages
- Dump statistics on each NI to verify that each NI was used to send messages
|
snd-010 | snd-015 | | - Configure 3 NIs closer to different NUMA nodes
- dump the NI statistics
- Verify that each NI has the correct device CPT
|
snd-020 | | | - Configure 3 NIs with different NUMA distances
- Send messages
- Confirm through statistics that messages are being sent over the nearest NI (NUMA wise)
|
snd-020 | | | - Configure 2 NIs with different NUMA distances
- Send messages
- Confirm through statistics that messages are being sent over the nearest NI (NUMA wise)
- add another NI which is close NUMA wise than the current nearest
- confirm through statistics that messages are not being sent over the newly added NI
|
snd-030 | | | - Configure 3 NIs, one EDR, one FDR and one QDR
- set the NUMA range to a large value so all NIs are considered through RR
- start traffic
- monitor statistics on each NI.
- Confirm that EDR is preferred until it becomes saturated, then FDR is selected then QDR
|
snd-030 | | | - Configure 3 NIs
- set the NUMA range to a large value so all NIs are considered through RR
- start traffic
- monitor statistics on each NIs to confirm all are being used.
- Remove one of the NIs
- Confirm that that NI is no longer used for new messages
- Confirm that the other 2 NIs are being used.
- No messages should be dropped.
|
snd-035 | | | - Configure 3 NIs
- Configure a peer with 3 NIDs
- Send messages to the peer
- Confirm through statistics that peer NIDs are being used based on their available credits.
|
snd-040 | | | - Configure 3 NIs which are not equadistant all on the same network
- configure a peer with 3 NIDs all on the same network
- start traffic
- Confirm closest NUMA NI is being used
- Confirm peer NIDs are being used
- set NUMA range to a large value
- Confirm all NIs are being used
- Confirm no change in traffic pattern to the peers
|
snd-045 | snd-070 | | - Configure NIs A, B and C
- Configure the peer with the same NIDs
- Send 1 message which requires a response from NI A
- Confirm that responses are being sent to the same NI
|
snd-050 | | | - Configure NIs A, B and C
- Configure the peer with the same NIDs
- Send 1 message which requires a response from NI A
- bring down NI A
- confirm that response is sent to one of the other configured NIDs
|
snd-050 | | | - Configure an MR system
- Start traffic
- monitor traffic is being sent to all configured peers
- bring down one of the peer NIDs
- monitory traffic is no longer sent to that peer NID
- no messages should be dropped
|
snd-050 | snd-060, snd-075 | | - Configure an MR system
- Start traffic
- monitor traffic is being sent to all configured peers
- bring down one of the peer NIDs
- monitory traffic is no longer sent to that peer NID
- bring up the peer NID again
- monitor traffic is being sent to it again
|
snd-055 | snd-060, snd-075 | | - Configure an MR system
- Start traffic
- monitor traffic is being sent to all configured peers
- bring down one of the peer NIDs
- monitory traffic is no longer sent to that peer NID
- bring down all peer NIDs
- message should fail.
|
snd-055 | snd-060, snd-075, snd-085 | | - Configure an MR system
- Start traffic
- monitor traffic is being sent to all configured peers over all NIs
- bring down the local NIs one by one
- note traffic is migrated to the NIs still up, until no NIs are left then messages are dropped
|
snd-055 | snd-060, snd-075, snd-085 | | - Configure an MR system
- Start traffic
- monitor traffic is being sent to all configured peers over all NIs
- bring down the local NIs one by one
- note traffic is migrated to the NIs still up, until no NIs are left then messages are dropped
- bring up the NIs again and confirm that NIs are being reused.
|
snd-055 | snd-060, snd-075 | | - Configure two networks tcp and o2ib
- Configure nodes to have multiple interfaces on each of the networks
- start traffic over the o2ib network
- o2ib should be used
- bring down the o2ib network
- traffic should migrage to the tcp network.
- no traffic should be dropped.
|
snd-080 | | | - Configure an MR system
- bring down an NI
- confirm that the show info shows the NI as down
|
snd-080 | | | - TODO: how do we test device failure?
|
Dynamic NID Discovery
Debugging Requirements
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
dbg-005 | dbg-010, dbg-015, dbg-020, dbg-025, dbg-030, dbg-035, dbg-080 | | - dump per NI statistics
- transmitted
- received
- dropped
- timeouts
- state
|
dbg-040 | dbg-080, dbg-095 | | - configure multiple NIs
- run traffic
- dump stats on all NIs
|
dbg-040 | dbg-080 | | - configure multiple NIs
- run traffic
- dump stats on all NIs
- Filter on specific NID
|
dbg-045 | dbg-080 | | - dump LNet level statistics
|
dbg-050 | dbg-080, dbg-100 | | - configure multiple peers
- start traffic
- dump per peer statistics
|
dbg-110 | | | - configure multiple NIs
- toggle their state from ACTIVE to DOWN
- confirm that state change is being printed to console.
|
dbg-115 | | | - configure an MR system
- start traffic
- bring down an NI
- confirm that messages indicating that another NI/peer is being used is printed.
|
dbg-120 | | | - Configure an MR system
- run traffic
- stop traffic
- dump NI statistics
- dump peer statistics
- dump LNet level statistics
- zero out stats
- dump all statistics above to confirm they've been zeroed out.
|
Network interface Health
Backwards Compatibility Requirements
Primary Requirement ID | Secondary Requirement ID | Unit Test ID | Unit Test Description |
---|
bck-025 | | | - Configure an MR client
- Configure an MR OSS
- Configure a non-MR MDS/MGS
- create an FS
- Run IO tests
- Make sure that MR clients/OSS integrates seamlessly in the system.
|