3.KSetGo.md
April 2, 2024 ยท View on GitHub
3. Test Case for K_SET_GO
Case 3.1
Description: IDE_KM responder shall return valid K_GOSTOP_ACK, if it receives a K_SET_GO with KeySet=0.
TestSetup:
- Requester -> QUERY {PortIndex=0x00}
- QUERY_RESP <- Responder
- Set GlobalStreamID = 1
- Requester -> KEY_PROG {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet=0, RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL], IFV=1}
- KP_ACK <- Responder
TestTeardown: None
Steps:
- Requester -> K_SET_GO {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet=0, RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL]}
- IdeKmMessage <- Responder
Assertion 3.1.1: sizeof(IdeKmMessage) == sizeof(K_GOSTOP_ACK)
Assertion 3.1.2: IdeKmMessage.ObjectID == K_GOSTOP_ACK
Assertion 3.1.3: IdeKmMessage.PortIndex == KEY_PROG.PortIndex
Assertion 3.1.4: IdeKmMessage.StreamID == KEY_PROG.StreamID
Assertion 3.1.5: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream
Case 3.2
Description: IDE_KM responder shall return valid K_GOSTOP_ACK, if it receives a K_SET_GO with KeySet=1.
TestSetup:
- Requester -> QUERY {PortIndex=0x00}
- QUERY_RESP <- Responder
- Set GlobalStreamID = 1
- Requester -> KEY_PROG {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet=1, RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL], IFV=1}
- KP_ACK <- Responder
TestTeardown: None
Steps:
- Requester -> K_SET_GO {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet=1, RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL]}
- IdeKmMessage <- Responder
Assertion 3.2.1: sizeof(IdeKmMessage) == sizeof(K_GOSTOP_ACK)
Assertion 3.2.2: IdeKmMessage.ObjectID == K_GOSTOP_ACK
Assertion 3.2.3: IdeKmMessage.PortIndex == KEY_PROG.PortIndex
Assertion 3.2.4: IdeKmMessage.StreamID == KEY_PROG.StreamID
Assertion 3.2.5: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream
Case 3.3
Description: IDE_KM responder shall return valid K_GOSTOP_ACK, if it receives a K_SET_GO switch KeySet from 0 to 1.
TestSetup:
- Requester -> QUERY {PortIndex=0x00}
- QUERY_RESP <- Responder
- Set GlobalStreamID = 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}
- KP_ACK <- Responder
TestTeardown: None
Steps:
- Requester -> K_SET_GO {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet=0, RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL]}
- IdeKmMessage <- Responder
Assertion 3.3.1: sizeof(IdeKmMessage) == sizeof(K_GOSTOP_ACK)
Assertion 3.3.2: IdeKmMessage.ObjectID == K_GOSTOP_ACK
Assertion 3.3.3: IdeKmMessage.PortIndex == KEY_PROG.PortIndex
Assertion 3.3.4: IdeKmMessage.StreamID == KEY_PROG.StreamID
Assertion 3.3.5: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream
- Requester -> K_SET_GO {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet=1, RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL]}
- IdeKmMessage <- Responder
Assertion 3.3.6: sizeof(IdeKmMessage) == sizeof(K_GOSTOP_ACK)
Assertion 3.3.7: IdeKmMessage.ObjectID == K_GOSTOP_ACK
Assertion 3.3.8: IdeKmMessage.PortIndex == KEY_PROG.PortIndex
Assertion 3.3.9: IdeKmMessage.StreamID == KEY_PROG.StreamID
Assertion 3.3.10: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream
Case 3.4
Description: IDE_KM responder shall return valid K_GOSTOP_ACK, if it receives a K_SET_GO switch KeySet from 1 to 0.
TestSetup:
- Requester -> QUERY {PortIndex=0x00}
- QUERY_RESP <- Responder
- Set GlobalStreamID = 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}
- KP_ACK <- Responder
TestTeardown: None
Steps:
- Requester -> K_SET_GO {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet=1, RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL]}
- IdeKmMessage <- Responder
Assertion 3.3.1: sizeof(IdeKmMessage) == sizeof(K_GOSTOP_ACK)
Assertion 3.3.2: IdeKmMessage.ObjectID == K_GOSTOP_ACK
Assertion 3.3.3: IdeKmMessage.PortIndex == KEY_PROG.PortIndex
Assertion 3.3.4: IdeKmMessage.StreamID == KEY_PROG.StreamID
Assertion 3.3.5: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream
- Requester -> K_SET_GO {(PortIndex, StreamID) in [(0, GlobalStreamID), (MaxPortIndex, GlobalStreamID + MaxPortIndex)], KeySet=0, RxTx in [Rx, Tx], SubStream in [PR, NPR, CPL]}
- IdeKmMessage <- Responder
Assertion 3.3.6: sizeof(IdeKmMessage) == sizeof(K_GOSTOP_ACK)
Assertion 3.3.7: IdeKmMessage.ObjectID == K_GOSTOP_ACK
Assertion 3.3.8: IdeKmMessage.PortIndex == KEY_PROG.PortIndex
Assertion 3.3.9: IdeKmMessage.StreamID == KEY_PROG.StreamID
Assertion 3.3.10: IdeKmMessage.KeySet == KEY_PROG.KeySet && IdeKmMessage.RxTx == KEY_PROG.RxTx && IdeKmMessage.SubStream == KEY_PROG.SubStream