Commit 9ee019c4 authored by garciay's avatar garciay
Browse files

Add security information (ssp, its-aid) transfer from lower layer to upper layer

Start implementation of ETSI TS 103 V1.0.4 Test Purposes (ETSI TS 103 191-2)
Remove old MapSpat ATS
parent 32760fec
/**
* @author ETSI / STF517
* @version $URL$
* $Id$
* @desc IVIM Testcases
* @see ISO TS 19321
*/
module ItsIvim_TestCases {
// LibIts
import from LibItsIvim_TestSystem all;
// Ats Its
import from ItsIvim_TpFunctions all;
// 5.2.1
group iviMessageTransmission {
group iviMessageFormat {
/**
* @desc Check that protocolVersion is set to 1 and messageID is set to 6.
* <pre>
* Pics Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* }
* Expected behaviour:
* ensure that {
* when {
* a IVIM is generated
* }
* then {
* the IUT sends a valid IVIM
* containing ITS PDU header
* containing protocolVersion
* indicating value 1
* and containing messageID
* indicating value 6
* }
* }
* </pre>
*
* @see ETSI TS 103 191-2 TP_IS_IVI_MSGF_BV_01, ETSI TS 103 301, clause 7.3
*/
testcase TC_IS_IVI_MSGF_BV_01() runs on ItsIvim system ItsIvimSystem {
f_IS_IVI_MSGF_BV_01();
} // End of TC_IS_IVI_MSGF_BV_01
} // End of group iviMessageFormat
group iviEventGeneration {
/**
* @desc Check that IVI Service generates a new IVIM on reception of a valid AppIVIM_Trigger request
* <pre>
* PICS Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT receives an AppIVIM_Trigger request from the application layer
* }
* then {
* the IUT sends a valid IVIM
* }
* }
* </pre>
*
* @see ETSI TS 103 191-2 TP_IS_IVI_EVGN_BV_01, ETSI TS 103 301, clause 7.4.1
*/
testcase TC_IS_IVI_EVGN_BV_01() runs on ItsIvim system ItsIvimSystem {
f_IS_IVI_EVGN_BV_01();
} // End of TC_IS_IVI_EVGN_BV_01
/**
* @desc Check that a new iviIdentificationNumber value is assigned for each newly generated IVIM
* <pre>
* PICS Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT having generated several IVIM
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT is requested to generate a new IVIM
* }
* then {
* the IUT sends a valid IVIM
* containing ivi
* containing mandatory
* containing iviIdentificationNumber
* indicating an unused value
* }
* }
* </pre>
*
* @see ETSI TS 103 191-2 TP_IS_IVI_EVGN_BV_02, ETSI TS 103 301, clause 7.4.1
*/
testcase TC_IS_IVI_EVGN_BV_02() runs on ItsIvim system ItsIvimSystem {
f_IS_IVI_EVGN_BV_02();
} // End of TC_IS_IVI_EVGN_BV_02
/**
* @desc Check that iviIdentificationNumber value is set to a next unused value each time an IVIM is detected
* <pre>
* PICS Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT having generated several IVIM
* and the IUT having generated its last DENM
* containing ivi
* containing mandatory
* containing iviIdentificationNumber
* indicating IVI_ID_1
* and no active IviID being associated with iviIdentificationNumber IVI_ID_1 + 1
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT is requested to generate a new IVIM
* }
* then {
* the IUT sends a valid IVIM
* containing ivi
* containing mandatory
* containing iviIdentificationNumber
* indicating IVI_ID_1 + 1
* }
* }
* </pre>
*
* @see ETSI TS 103 191-2 TP_IS_IVI_EVGN_BV_03, ETSI TS 103 301, clause 7.4.1
*/
testcase TC_IS_IVI_EVGN_BV_03() runs on ItsIvim system ItsIvimSystem {
f_IS_IVI_EVGN_BV_03();
} // End of TC_IS_IVI_EVGN_BV_03
/**
* @desc Check that a new generated IVIM contains an iviStatus set to 'new'
* <pre>
* PICS Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT is requested to generate a new IVIM
* }
* then {
* the IUT sends a valid IVIM
* containing ivi
* containing mandatory
* containing iviStatus
* indicating 'new'
* }
* }
* </pre>
*
* @see ETSI TS 103 191-2 TP_IS_IVI_EVGN_BV_04, ETSI TS 103 301, clause 7.4.2
*/
testcase TC_IS_IVI_EVGN_BV_04() runs on ItsIvim system ItsIvimSystem {
f_IS_IVI_EVGN_BV_04();
} // End of TC_IS_IVI_EVGN_BV_04
} // End of group iviEventGeneration
group iviEventUpdate {
/**
* @desc Check that an updated IVIM contains an iviStatus set to 'update'
* <pre>
* PICS Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT having generated an event
* containing ivi
* containing mandatory
* containing iviIdentificationNumber
* indicating IVIM_ID_1
* containing iviStatus
* indicating 'new'
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT receives an AppIVIM_update request associated with IVIM_ID_1
* }
* then {
* the IUT sends a valid IVIM
* containing ivi
* containing mandatory
* containing iviStatus
* indicating 'update'
* }
* }
* </pre>
*
* @see ETSI TS 103 191-2 TP_IS_IVI_EVUP_BV_05, ETSI TS 103 301, clause 7.4.2
*/
testcase TC_IS_IVI_EVUP_BV_05() runs on ItsIvim system ItsIvimSystem {
f_IS_IVI_EVUP_BV_05();
} // End of TC_IS_IVI_EVUP_BV_05
/**
* @desc Check that an update can change the validity time to the IVIM - validTo information field
* <pre>
* PICS Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT having generated an event
* containing ivi
* containing mandatory
* not containing validTo
* and containing iviStatus
* indicating 'update'
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT receives an AppIVIM_update indicating a validTo value VT_1
* }
* then {
* the IUT sends a valid IVIM
* containing ivi
* containing mandatory
* containing validTo
* indicating VT_1
* and containing iviStatus
* indicating 'update'
* }
* }
* </pre>
*
* @see ETSI TS 103 191-2 TP_IS_IVI_EVUP_BV_06, ETSI TS 103 301, clause 7.4.2
*/
testcase TC_IS_IVI_EVUP_BV_06() runs on ItsIvim system ItsIvimSystem {
f_IS_IVI_EVUP_BV_06();
} // End of TC_IS_IVI_EVUP_BV_06
/**
* @desc Check that an update can change the validity time to the IVIM - validFrom information field
* <pre>
* PICS Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT having generated an event
* containing ivi
* containing mandatory
* not containing validFrom
* and containing iviStatus
* indicating 'update'
* }
* Expected behaviour:
* ensure that {
* when {
* the IUT receives an AppIVIM_update indicating a validFrom value VF_1
* }
* then {
* the IUT sends a valid IVIM
* containing ivi
* containing mandatory
* containing validFROM
* indicating VF_1
* and containing iviStatus
* indicating 'update'
* }
* }
* </pre>
*
* @see ETSI TS 103 191-2 TP_IS_IVI_EVUP_BV_07, ETSI TS 103 301, clause 7.4.2
*/
testcase TC_IS_IVI_EVUP_BV_07() runs on ItsIvim system ItsIvimSystem {
f_IS_IVI_EVUP_BV_07();
} // End of TC_IS_IVI_EVUP_BV_07
} // End of group iviEventUpdate
group iviCommunication {
/**
* @desc Check that IVIM uses BTP_B packet
* <pre>
* Pics Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending IVIM
* }
* Expected behaviour:
* ensure that {
* when {
* an IVIM is generated
* }
* then {
* the IUT sends a valid IVIM
* encapsulated in a BTP-B packet
* }
* }
* </pre>
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_IVIM_COMM_BV_02_01
* @reference ETSI TS 103 301 V1.0.4 Clause 7.4.3.2
*/
testcase TC_IS_IVIM_COMM_BV_02_01 () runs on ItsIvim system ItsIvimSystem {
f_IS_IVIM_COMM_BV_02_01();
} // End of testcase TC_IS_IVIM_COMM_BV_02_01
/**
* @desc Check that the destination port for IVIM is set to 2006
* <pre>
* Pics Selection: PICS_IVIM_GENERATION
* Initial conditions:
* with {
* the IUT being in the "initial state"
* and the IUT sending IVIM
* }
* Expected behaviour:
* ensure that {
* when {
* an IVIM is generated
* }
* then {
* the IUT sends a valid IVIM
* encapsulated in a BTP packet
* containing a destination port value set to 2006
* and containing a destination port info value set to 0
* }
* }
* </pre>
*
* @version 1.0.4
* @see ETSI TS 103 191-2 v0.0.1 TP_IS_IVIM_COMM_BV_02_02
* @reference ETSI TS 103 301 V1.0.4 Clause 7.4.3.2
*/
testcase TC_IS_IVIM_COMM_BV_02_02 () runs on ItsIvim system ItsIvimSystem {
f_IS_IVIM_COMM_BV_02_02();
} // End of testcase TC_IS_IVIM_COMM_BV_02_02
} // End of group iviCommunication
} // End of group iviMessageTransmission
group iviMessageReception {
} // End of group iviMessageReception
} // End of module ItsIvim_TestCases
/**
* @author ETSI / STF517
* @version $URL$
* $Id$
* @desc Test Control file for IVIM
*
*/
module ItsIvim_TestControl {
// ATS IVIM
import from ItsIvim_TestCases all;
// LibIts
import from LibItsIvim_Pics all;
// Test Execution
control {
if(PICS_IVIM_GENERATION) {
execute(TC_IS_IVI_MSGF_BV_01());
execute(TC_IS_IVI_EVGN_BV_01());
execute(TC_IS_IVI_EVGN_BV_02());
}
if (PICS_RSU_ROLE) {
} else {
}
}
} // End of module ItsIvim_TestControl
\ No newline at end of file
/**
* @author ETSI STF517
* @version $URL$
* $Id$
* @desc IVIM TP functions
*
*/
module ItsIvim_TpFunctions {
// LibCommon
import from LibCommon_Sync all;
import from LibCommon_VerdictControl all;
import from LibCommon_Time all;
import from LibCommon_BasicTypesAndValues all;
// LibItsCommon
import from LibItsCommon_Pixits all;
import from LibItsCommon_Functions all;
import from LibItsCommon_TypesAndValues all;
// LibIts
import from ITS_Container language "ASN.1:1997" all;
import from IVIM_PDU_Descriptions language "ASN.1:1997" all;
import from IVI language "ASN.1:1997" all;
// LibItsIVIM
import from LibItsIvim_TypesAndValues all;
import from LibItsIvim_Templates all;
import from LibItsIvim_TestSystem all;
import from LibItsIvim_Functions all;
import from LibItsIvim_Pics all;
group iviMessageTransmission {
group iviMessageFormat {
/**
* @desc TP Function for TC_IS_IVI_MSGF_BV_01
*/
function f_IS_IVI_MSGF_BV_01() runs on ItsIvim {
// Local variables
// Test control
if (not PICS_IVIM_GENERATION) {
log("*** " & testcasename() & ": PICS_IVIM_GENERATION required for executing the TC ***");
setverdict(inconc);
stop;
}
// Test component configuration
f_cfUp();
// Test adapter configuration
// Preamble
f_prInitialState();
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
// Test Body
tc_ac.start;
alt {
[] ivimPort.receive(
mw_ivimInd(
mw_anyIvimPdu(
mw_itsPduHeader
))) {
tc_ac.stop;
log("*** " & testcasename() & ": PASS: Expected IVIM message received ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
[] tc_ac.timeout {
log("*** " & testcasename() & ": INCONC: IVIM message not received ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
}
// Postamble
f_poDefault();
f_cfDown();
} // End of function f_IVIM_MSD_FMT_BV_01
} // End of group iviMessageFormat
group iviEventGeneration {
function f_IS_IVI_EVGN_BV_01() runs on ItsIvim {
// Local variables
var IviIdentificationNumber v_iviIdentificationNumber;
// Test controlv_iviIdentificationNumber
if (not PICS_IVIM_GENERATION) {
log("*** " & testcasename() & ": PICS_IVIM_GENERATION required for executing the TC ***");
setverdict(inconc);
stop;
}
// Test component configuration
f_cfUp();
// Test adapter configuration
// Preamble
f_prInitialState();
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
// Test Body
v_iviIdentificationNumber := f_utTriggerEvent(m_utTriggerEvent());
tc_ac.start;
alt {
[] ivimPort.receive(
mw_ivimInd(
mw_anyIvimPdu(
mw_itsPduHeader,
mw_ivimStructure(
mw_iviManagementContainer
)))) {
tc_ac.stop;
log("*** " & testcasename() & ": PASS: Successfully received IVIM. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
[] ivimPort.receive(
mw_ivimInd(
mw_anyIvimPdu
)) {
tc_ac.stop;
log("*** " & testcasename() & ": FAIL: Received a IVIM with incorrect information. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
[] tc_ac.timeout {
log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
}
}
// Postamble
f_poCancelEvent(e_iut, v_iviIdentificationNumber);
f_cfDown();
} // End of function f_IVIM_MSD_FMT_BV_01
function f_IS_IVI_EVGN_BV_02() runs on ItsIvim {
// Local variables
var template (value) UtIvimTriggerList v_utTriggers := {
m_utTriggerEvent(c_duration_2sec, f_getCurrentTime() - 1000 * c_duration_2sec, -, -, -),
m_utTriggerEvent(c_duration_4sec, f_getCurrentTime() - 1000 * c_duration_4sec, -, -, -),
m_utTriggerEvent(c_duration_6sec, f_getCurrentTime() - 1000 * c_duration_6sec, -, -, -)
}
var boolean v_success := true;
var IviIdentificationNumberList v_iviIdentificationNumbers;
var IvimInd v_ivimInd;
var integer i;
// Test controlv_iviIdentificationNumber
if (not PICS_IVIM_GENERATION) {
log("*** " & testcasename() & ": PICS_IVIM_GENERATION required for executing the TC ***");
setverdict(inconc);
stop;
}
// Test component configuration
f_cfUp();
// Test adapter configuration
// Preamble
f_prInitialState();
for (i := 0; i < lengthof(v_utTriggers) - 1; i := i + 1) {
f_utTriggerEvent(v_utTriggers[i]);
f_awaitIviMessage(mw_ivimInd(mw_anyIvimPdu), v_ivimInd);
v_iviIdentificationNumbers[i] := v_ivimInd.msgIn.ivi.mandatory.iviIdentificationNumber;
}
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
// Test Body
f_utTriggerEvent(v_utTriggers[lengthof(v_utTriggers) - 1]);
f_awaitIviMessage(mw_ivimInd(mw_anyIvimPdu), v_ivimInd);
v_iviIdentificationNumbers[lengthof(v_iviIdentificationNumbers) - 1] := v_ivimInd.msgIn.ivi.mandatory.iviIdentificationNumber;
//check the action id
for (i := 0; i < lengthof(v_iviIdentificationNumbers) - 1; i := i + 1) {
if (v_iviIdentificationNumbers[lengthof(v_iviIdentificationNumbers) - 1] == v_iviIdentificationNumbers[i]) {
v_success := false;
}
}
if (v_success==true) {
log("*** " & testcasename() & ": PASS: IviIdentificationNumber field indicating unused value. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
}
else {
log("*** " & testcasename() & ": FAIL: IviIdentificationNumber field indicating used value. ***");
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
}
// Postamble
for (i := 0; i < lengthof(v_iviIdentificationNumbers); i := i + 1) {
f_poCancelEvent(e_iut, v_iviIdentificationNumbers[i]);
}
f_cfDown();