5.DeviceInterfaceState.md

July 10, 2024 ยท View on GitHub

5. Test Case for DEVICE_INTERFACE_STATE

Case 5.1

Description: TDISP responder shall return valid DEVICE_INTERFACE_STATE, if it receives a GET_DEVICE_INTERFACE_STATE in CONFIG_UNLOCKED state.

TestSetup:

  1. Requester -> GET_TDISP_VERSION {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. TDISP_VERSION <- Responder
  3. Requester -> GET_TDISP_CAPABILITIES {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  4. TDISP_CAPABILITIES <- Responder

TestTeardown:

  1. Requester -> STOP_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. STOP_INTERFACE_RESPONSE <- Responder

Steps:

  1. Requester -> GET_DEVICE_INTERFACE_STATE {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. TdispMessage <- Responder

Assertion 5.1.1: sizeof(TdispMessage) == sizeof(DEVICE_INTERFACE_STATE)

Assertion 5.1.2: TdispMessage.MessageType == DEVICE_INTERFACE_STATE

Assertion 5.1.3: TdispMessage.TDISPVersion == 0x10

Assertion 5.1.4: TdispMessage.INTERFACE_ID == GET_DEVICE_INTERFACE_STATE.INTERFACE_ID

Assertion 5.1.5: TdispMessage.TDI_STATE == CONFIG_UNLOCKED

Case 5.2

Description: TDISP responder shall return valid DEVICE_INTERFACE_STATE, if it receives a GET_DEVICE_INTERFACE_STATE in CONFIG_LOCKED state.

TestSetup:

  1. Requester -> GET_TDISP_VERSION {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. TDISP_VERSION <- Responder
  3. Requester -> GET_TDISP_CAPABILITIES {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  4. TDISP_CAPABILITIES <- Responder
  5. Setup IDE Key with IDE_KM protocol for default_Selective_IDE_Stream_ID.
  6. Requester -> LOCK_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID, FLAGS=TDISP_CAPABILITIES.LOCK_INTERFACE_FLAGS_SUPPORTED, StreamID=default_Selective_IDE_Stream_ID, MMIO_REPORTING_OFFSET, BIND_P2P_ADDRESS_MASK=0}
  7. LOCK_INTERFACE_RESPONSE <- Responder

TestTeardown:

  1. Requester -> STOP_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. STOP_INTERFACE_RESPONSE <- Responder

Steps:

  1. Requester -> GET_DEVICE_INTERFACE_STATE {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. TdispMessage <- Responder

Assertion 5.2.1: sizeof(TdispMessage) == sizeof(DEVICE_INTERFACE_STATE)

Assertion 5.2.2: TdispMessage.MessageType == DEVICE_INTERFACE_STATE

Assertion 5.2.3: TdispMessage.TDISPVersion == 0x10

Assertion 5.2.4: TdispMessage.INTERFACE_ID == GET_DEVICE_INTERFACE_STATE.INTERFACE_ID

Assertion 5.2.5: TdispMessage.TDI_STATE == CONFIG_LOCKED

Case 5.3

Description: TDISP responder shall return valid DEVICE_INTERFACE_STATE, if it receives a GET_DEVICE_INTERFACE_STATE in RUN state.

TestSetup:

  1. Requester -> GET_TDISP_VERSION {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. TDISP_VERSION <- Responder
  3. Requester -> GET_TDISP_CAPABILITIES {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  4. TDISP_CAPABILITIES <- Responder
  5. Setup IDE Key with IDE_KM protocol for default_Selective_IDE_Stream_ID.
  6. Requester -> LOCK_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID, FLAGS=TDISP_CAPABILITIES.LOCK_INTERFACE_FLAGS_SUPPORTED, StreamID=default_Selective_IDE_Stream_ID, MMIO_REPORTING_OFFSET, BIND_P2P_ADDRESS_MASK=0}
  7. LOCK_INTERFACE_RESPONSE <- Responder
  8. Requester -> START_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID, START_INTERFACE_NONCE=LOCK_INTERFACE_RESPONSE.START_INTERFACE_NONCE}
  9. START_INTERFACE_RESPONSE <- Responder

TestTeardown:

  1. Requester -> STOP_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. STOP_INTERFACE_RESPONSE <- Responder

Steps:

  1. Requester -> GET_DEVICE_INTERFACE_STATE {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. TdispMessage <- Responder

Assertion 5.3.1: sizeof(TdispMessage) == sizeof(DEVICE_INTERFACE_STATE)

Assertion 5.3.2: TdispMessage.MessageType == DEVICE_INTERFACE_STATE

Assertion 5.3.3: TdispMessage.TDISPVersion == 0x10

Assertion 5.3.4: TdispMessage.INTERFACE_ID == GET_DEVICE_INTERFACE_STATE.INTERFACE_ID

Assertion 5.3.5: TdispMessage.TDI_STATE == RUN

Case 5.4

Description: TDISP responder shall return valid DEVICE_INTERFACE_STATE, if it receives a GET_DEVICE_INTERFACE_STATE in CONFIG_UNLOCKED state after STOP_INTERFACE_REQUEST.

TestSetup:

  1. Requester -> GET_TDISP_VERSION {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. TDISP_VERSION <- Responder
  3. Requester -> GET_TDISP_CAPABILITIES {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  4. TDISP_CAPABILITIES <- Responder
  5. Setup IDE Key with IDE_KM protocol for default_Selective_IDE_Stream_ID.
  6. Requester -> LOCK_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID, FLAGS=TDISP_CAPABILITIES.LOCK_INTERFACE_FLAGS_SUPPORTED, StreamID=default_Selective_IDE_Stream_ID, MMIO_REPORTING_OFFSET, BIND_P2P_ADDRESS_MASK=0}
  7. LOCK_INTERFACE_RESPONSE <- Responder
  8. Requester -> START_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID, START_INTERFACE_NONCE=LOCK_INTERFACE_RESPONSE.START_INTERFACE_NONCE}
  9. START_INTERFACE_RESPONSE <- Responder
  10. Requester -> STOP_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  11. STOP_INTERFACE_RESPONSE <- Responder

TestTeardown:

  1. Requester -> STOP_INTERFACE_REQUEST {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. STOP_INTERFACE_RESPONSE <- Responder

Steps:

  1. Requester -> GET_DEVICE_INTERFACE_STATE {TDISPVersion=0x10, INTERFACE_ID=TDI_ID}
  2. TdispMessage <- Responder

Assertion 5.4.1: sizeof(TdispMessage) == sizeof(DEVICE_INTERFACE_STATE)

Assertion 5.4.2: TdispMessage.MessageType == DEVICE_INTERFACE_STATE

Assertion 5.4.3: TdispMessage.TDISPVersion == 0x10

Assertion 5.4.4: TdispMessage.INTERFACE_ID == GET_DEVICE_INTERFACE_STATE.INTERFACE_ID

Assertion 5.4.5: TdispMessage.TDI_STATE == CONFIG_UNLOCKED