Skip to content

Latest commit

 

History

History
207 lines (141 loc) · 5.96 KB

File metadata and controls

207 lines (141 loc) · 5.96 KB

2. Test Case for KEY_PROG

Case 2.1

Description: IDE_KM responder shall return valid KP_ACK with Status=Successful, if it receives a KEY_PROG.

TestSetup:

  1. Requester -> QUERY {PortIndex=0x00}
  2. QUERY_RESP <- Responder
  3. Set GlobalStreamID = 1

TestTeardown: None

Steps:

  1. Requester -> KEY_PROG {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet in [0, 1], RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL], IFV=1}
  2. IdeKmMessage <- Responder

Assertion 2.1.1: sizeof(IdeKmMessage) == sizeof(KP_ACK)

Assertion 2.1.2: IdeKmMessage.ObjectID == KP_ACK

Assertion 2.1.3: IdeKmMessage.Status == Successful

Assertion 2.1.4: IdeKmMessage.PortIndex == KEY_PROG.PortIndex

Assertion 2.1.5: IdeKmMessage.StreamID == KEY_PROG.StreamID

Assertion 2.1.6: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream

Case 2.2

Description: IDE_KM responder shall return valid KP_ACK with Status=Incorrect Length, if it receives a KEY_PROG with invalid Length.

TestSetup:

  1. Requester -> QUERY {PortIndex=0x00}
  2. QUERY_RESP <- Responder

TestTeardown: None

Steps:

  1. Requester -> KEY_PROG {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet in [0, 1], RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL], IFV=1}, Length in [8, sizeof(KP_ACK) - 4] with step=4.
  2. IdeKmMessage <- Responder

Assertion 2.2.1: sizeof(IdeKmMessage) == sizeof(KP_ACK)

Assertion 2.2.2: IdeKmMessage.ObjectID == KP_ACK

Assertion 2.2.3: IdeKmMessage.Status == Incorrect Length

Assertion 2.2.4: IdeKmMessage.PortIndex == KEY_PROG.PortIndex

Assertion 2.2.5: IdeKmMessage.StreamID == KEY_PROG.StreamID

Assertion 2.2.6: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream

Case 2.3

Description: IDE_KM responder shall return valid KP_ACK with Status=Unsupported value in PortIndex, if it receives a KEY_PROG with invalid PortIndex.

TestSetup:

  1. Requester -> QUERY {PortIndex=0x00}
  2. QUERY_RESP <- Responder
  3. if QUERY_RESP.MaxPortIndex == 0xFF, skip the test.

TestTeardown: None

Steps:

  1. Requester -> KEY_PROG {(PortIndex, StreamID) in [(MaxPortIndex + 1, GlobalStreamID), (0xFF, GlobalStreamID + 0xFF - (MaxPortIndex + 1))], KeySet in [0, 1], RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL], IFV=1}
  2. IdeKmMessage <- Responder

Assertion 2.3.1: sizeof(IdeKmMessage) == sizeof(KP_ACK)

Assertion 2.3.2: IdeKmMessage.ObjectID == KP_ACK

Assertion 2.3.3: IdeKmMessage.Status == Unsupported value in PortIndex

Assertion 2.3.4: IdeKmMessage.PortIndex == KEY_PROG.PortIndex

Assertion 2.3.5: IdeKmMessage.StreamID == KEY_PROG.StreamID

Assertion 2.3.6: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream

Case 2.4

Description: IDE_KM responder shall return valid KP_ACK with Status=Unsupported value in other field, if it receives a KEY_PROG with invalid SubStream.

TestSetup:

  1. Requester -> QUERY {PortIndex=0x00}
  2. QUERY_RESP <- Responder

TestTeardown: None

Steps:

  1. Requester -> KEY_PROG {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet in [0, 1], RxTx in [Rx, Tx], SubStream in [3, 0xF], IFV=1}
  2. IdeKmMessage <- Responder

Assertion 2.4.1: sizeof(IdeKmMessage) == sizeof(KP_ACK)

Assertion 2.4.2: IdeKmMessage.ObjectID == KP_ACK

Assertion 2.4.3: IdeKmMessage.Status == Unsupported value in other field

Assertion 2.4.4: IdeKmMessage.PortIndex == KEY_PROG.PortIndex

Assertion 2.4.5: IdeKmMessage.StreamID == KEY_PROG.StreamID

Assertion 2.4.6: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream

Case 2.5

Description: IDE_KM responder shall return valid KP_ACK with Status=Unsupported value in other field, if it receives a KEY_PROG with invalid IFV.

TestSetup:

  1. Requester -> QUERY {PortIndex=0x00}
  2. QUERY_RESP <- Responder

TestTeardown: None

Steps:

  1. Requester -> KEY_PROG {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet in [0, 1], RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL], IFV=0x0 or [0x2, 0xFF]}
  2. IdeKmMessage <- Responder

Assertion 2.5.1: sizeof(IdeKmMessage) == sizeof(KP_ACK)

Assertion 2.5.2: IdeKmMessage.ObjectID == KP_ACK

Assertion 2.5.3: IdeKmMessage.Status == Unsupported value in other field

Assertion 2.5.4: IdeKmMessage.PortIndex == KEY_PROG.PortIndex

Assertion 2.5.5: IdeKmMessage.StreamID == KEY_PROG.StreamID

Assertion 2.5.6: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream

Case 2.6

Description: IDE_KM responder shall return valid KP_ACK with Status=Unsupported value in other field, if it receives a KEY_PROG with invalid StreamID.

TestSetup:

  1. Requester -> QUERY {PortIndex=0x00}
  2. QUERY_RESP <- Responder

TestTeardown: None

Steps:

  1. Requester -> KEY_PROG {PortIndex in [0, MaxPortIndex], StreamID = invalid StreamID, KeySet in [0, 1], RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL], IFV=0x1}
  2. IdeKmMessage <- Responder

Assertion 2.6.1: sizeof(IdeKmMessage) == sizeof(KP_ACK)

Assertion 2.6.2: IdeKmMessage.ObjectID == KP_ACK

Assertion 2.6.3: IdeKmMessage.Status == Unsupported value in other field

Assertion 2.6.4: IdeKmMessage.PortIndex == KEY_PROG.PortIndex

Assertion 2.6.5: IdeKmMessage.StreamID == KEY_PROG.StreamID

Assertion 2.6.6: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream