OCP_2_6_Group_5
DSSD_26_EOL_Test_Case.py
- This script will run the following tests:
Perform setup
Wait for first AEN reporting spares have dropped below the threshold
Wait for next AEN reporting spares have been exhausted
Verify log page data fields for EOL
Wait for final AEN for RO mode
Validate read only mode
NOTE: This test case shall use special EOL Drives that are 98-99% consumed for testing. But note that the available spares must be greater than the available spares threshold to allow for detection of available spares falling below the threshold. For capacities >= 2TB the DUT shall be short-stroked.
NOTE: The execution time of this test is not deterministic because it cannot be guaranteed how long it will take to retire the final spares. The test must be allowed run to completion.
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.6 requirements referenced by this script:
EOL-3/4/5
- check_bit(field_name, field_value, bit)
Helper function to handle parsing and checking on the bit-value of a given field
- Parameters:
field_name (str) – Field name to be checked on
field_value (int) – Field value to parse and verify on
bit (int) – Bit number
- Return type:
None
- issue_io(dut, seektype, io_profile, threads, blocks, fail_type='error', iosperpass='-1', io_runtime=-1, io_pattern=0, extra_config=None)
Executes an IO Test
- Parameters:
dut (XML_API) – Device object under test
seektype (str) – Either ‘Sequential’ | ‘Random’
io_profile (str) – IO Profile to be executed
threads (int | str) – Threads (QD) to execute IO on
blocks (int | str) – Number of Logical Blocks
fail_type (int or str) – Specifies the action to be taken if the start operation fails
iosperpass (int | str) – Param to determine what the IO does on the drive ‘0’: unlimited, ‘-1’: Iterate once over drive, ‘-2’: Iterate twice over drive
io_runtime (int) – Time in seconds for IO to execute
io_pattern (int) – Pattern for io to be executed
extra_config (dict | None) – Optional parameter for running IO test with additional configurations
- Return type:
dict
- verify_aer(status)
Helper function to handle verifying the information received from the AER line(s)
- Parameters:
status (str) –
- Return type:
None
- verify_feature_cmd(dut, set_feature, fail_type='error', **kwargs)
Helper function to handle verifying and re-attempting a set_features command if it fails
- Parameters:
dut (XML) – Device under testing
set_feature (dict) – Returned dict of a given set_features command
fail_type (str) – Fail Type to use if both the first and second attempt of the set_features command fails
kwargs (Dict[str, Any]) – Keyword arguments to add to the set_features command
- Return type:
None
- verify_ios(io_tests, fail_type='error', check_start_only=False, check_failure_status=None, is_verify_step=True)
Verifies the successful execution and wait for the completion of an I/O command
- Parameters:
io_tests (list) – list of I/O test dicts
fail_type (str) – String to pass into fail_action to handle IO errors
check_start_only (bool) – If TRUE: ONLY checks if an IO successfully starts, if FALSE: Check if the IO successfully starts AND waits to finish
check_failure_status (int | none) – Parameter to check the IO against a failure status
is_verify_step (bool) – Determines whether to execute resting action in method or not (special case for if the I/O verify logging comes in a later step)
- Returns:
result_msg (tuple(func, msg) | none) – msg for later fail_action, or none if passed
bool – boolean to determine whether any I/O test failed
- wait_for_aen(dut, log_file)
Helper function to wait for the Asynchronous Event Request to complete by parsing /var/log/messages
- Parameters:
dut (XML) – Device under testing
log_file (stream) – File stream to parse when looking at the completion/submission queue
- Returns:
line – Line from /var/log/messages with information about completed asynchronous event request
- Return type:
str
DSSD_26_Endurance_Data_Test_Case.py
- This script will run the following tests:
Do GetLogPage for LID 2h and get values of Percentage Used, Available Spare, and Data Units Written fields
Verify Percentage Used >= 100 and Available Spare = 0
Do GetLogPage for LID C0h and get value of Endurance Estimate field
Verify Data Units Written in bytes equals Endurance Estimate
Verify Data Units Written in TB >= ENDURANCE_EOL field in adaptation parameters
NOTE: An EOL drive is expected to be used for this test
Pass/Fail: Script passes if all tests pass
Open Compute Project Datacenter NVMe SSD Spec v2.6 requirements referenced by this script:
ENDUD-1, ENDUD-3