Commit 4cabe2e4 authored by bergengruen's avatar bergengruen
Browse files

Updates after review with Stephan and Patrick

parent 058ac79d
Loading
Loading
Loading
Loading
+146 −17
Original line number Diff line number Diff line
@@ -96,7 +96,7 @@ module AtsImsIot_Behavior {
            		repeat;
            	}
	            [] tc_wait.timeout { //TODO use oracle
	                setverdict(inconc, "***f_gen_receive: Timer tc_wait expired when waiting for incoming message in " & p_tpId & " at interface " & vc_interfaceName & " ****"); 
	                setverdict(fail, "***f_gen_receive: Timer tc_wait expired when waiting for incoming message in " & p_tpId & " at interface " & vc_interfaceName & " ****"); 
	            }
            }
            
@@ -986,6 +986,135 @@ group checksTC_IMS_CALL_0001F {
	   } //function


	    /**
		 * @desc Starts monitor component behavior 
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5107_02_gm(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator {
		   	    		
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_ACK_Request_Base(?))},
                {},
                "TP_IMS_5107_02",
                "ACK request",
                0,
                false
            )
           );
           p_monitorCompRef.done;
	    }


	    /**
		 * @desc Starts monitor component behavior
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5107_02_mw(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator  {
	    var SipMessage v_sip; 
	    var template SipUrl v_scscfEutAUrl := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
	    var Route v_Route;
	    var template Route vt_scscfRoute := {
				fieldName := ROUTE_E,
				routeBody := {mw_routeBody(v_scscfEutAUrl), *}  };
	    
        p_monitorCompRef.start(
        f_imsIot_receive(
            {mw_SipRequest(mw_ACK_Request_Base(?))},
            {},
            "TP_IMS_5107_02",
            "ACK request",
            0,
            true
        )
       );
       p_monitorCompRef.done;
	   f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
	   v_Route := v_sip.request.msgHeader.route;
		
		// Check Route header: NOT containing S-CSCF of IMS_A
	  	if (match(v_Route, vt_scscfRoute)) {
		f_setIotVerdictFAIL("TP_IMS_5107_02");
		} 
	   } //function

	    /**
		 * @desc Starts monitor component behavior 
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5107_01_gm(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator {
    	    var SipMessage v_sip; 
    	    var template SipUrl v_scscfEutAUrl := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
    	    var Route v_Route;
	    	var template Route vt_scscfRoute := {
				fieldName := ROUTE_E,
				routeBody := {mw_routeBody(v_scscfEutAUrl), *}  };
		   	    		
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mw_BYE_Request_Base(?))},
                {},
                "TP_IMS_5107_01",
                "BYE request",
                0,
                true
            )
           );
           p_monitorCompRef.done;
	   	   f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
	   	  v_Route := v_sip.request.msgHeader.route;
		  // Check Route header: NOT containing S-CSCF of IMS_A
	  	  if (match(v_Route, vt_scscfRoute)) {
			f_setIotVerdictFAIL("TP_IMS_5107_02");
		  } 
	    }


	    /**
		 * @desc Starts monitor component behavior
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5107_01_mw(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator  {
	    var SipMessage v_sip; 
		var PChargingVector v_PChargingVector;	
	    var template SipUrl v_scscfEutAUrl := mw_SipUrl_Host(f_GetEUTScscfAddress(PX_EUT_A));
	    var Route v_Route;
	    var template Route vt_scscfRoute := {
				fieldName := ROUTE_E,
				routeBody := {mw_routeBody(v_scscfEutAUrl), *}  };
	    
        p_monitorCompRef.start(
        f_imsIot_receive(
            {mw_SipRequest(mw_BYE_Request_Base(?))},
            {},
            "TP_IMS_5107_01",
            "BYE request",
            0,
            true
        )
       );
       p_monitorCompRef.done;
	   f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
	   v_Route := v_sip.request.msgHeader.route;
		
		// Check Route header: NOT containing S-CSCF of IMS_A
	  	if (match(v_Route, vt_scscfRoute)) {
		f_setIotVerdictFAIL("TP_IMS_5107_02");
		} 
	   } //function





} // group


@@ -1021,10 +1150,10 @@ group checksTC_IMS_SS_0001 {
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5310_01_mw)},
                {},
                {mw_SipRequest(mw_INVITE_Request_Base)},
                "TP_IMS_5310_01",
                "INVITE request",
                0,
                 1, // TODO skip 1 INVITE on MW 
                false
            )
           );
@@ -1034,12 +1163,12 @@ group checksTC_IMS_SS_0001 {
		 * @desc Starts monitor component behavior
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5310_01_as(
	    function f_mtc_check_TP_IMS_5310_01_isc(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator  {
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5310_01_as)},
                {mw_SipRequest(mdw_TP_IMS_5310_01_isc)},
                {},
                "TP_IMS_5310_01",
                "INVITE request",
@@ -1054,16 +1183,16 @@ group checksTC_IMS_SS_0001 {
		 * @desc Starts monitor component behavior
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5308_02_mw(
	    function f_mtc_check_TP_IMS_5312_01_mw(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator  {
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5308_02_mw)},
                {mw_SipResponse(mdw_TP_IMS_5312_01_mw)},
                {},
                "TP_IMS_5308_02",
                "INVITE request",
                0,
                "mdw_TP_IMS_5312_01",
                "200OK",
                1, // skip 1 200 OK
                false
            )
           );
@@ -1073,15 +1202,15 @@ group checksTC_IMS_SS_0001 {
		 * @desc Starts monitor component behavior
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5308_02_as(
	    function f_mtc_check_TP_IMS_5312_01_isc(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator  {
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5308_02_as)},
                {mw_SipResponse(mdw_TP_IMS_5312_01_isc)},
                {},
                "TP_IMS_5308_02",
                "INVITE request",
                "TP_IMS_5312_01",
                "200OK",
                0,
                false
            )
@@ -1165,7 +1294,7 @@ group checksTC_IMS_SS_0007 {
	    /**
		 * @desc Starts monitor component
		 */
	    function f_mtc_check_TP_IMS_5110_01_as(
	    function f_mtc_check_TP_IMS_5110_01_isc(
	    	ImsInterfaceMonitor p_monitorCompRef)
	    runs on ImsTestCoordinator 
	    {
@@ -1205,13 +1334,13 @@ group checksTC_IMS_SS_0007 {
		 * @desc Starts monitor component behavior
		 * @param p_monitorCompRef Reference to monitor component
		 */
	    function f_mtc_check_TP_IMS_5097_09_as(
	    function f_mtc_check_TP_IMS_5097_09_isc(
	    	ImsInterfaceMonitor p_monitorCompRef
	    ) runs on ImsTestCoordinator  {
		   var template SipUrl v_EutB_ASUrl := mw_SipUrl_Host(f_GetEUTASServerAddress(PX_EUT_B));
           p_monitorCompRef.start(
            f_imsIot_receive(
                {mw_SipRequest(mdw_TP_IMS_5097_09_as(v_EutB_ASUrl))},
                {mw_SipRequest(mdw_TP_IMS_5097_09_isc(v_EutB_ASUrl))},
                {},
                "TP_IMS_5097_09",
                "INVITE request",
+9 −9
Original line number Diff line number Diff line
@@ -275,7 +275,7 @@ module AtsImsIot_Templates {
     * 
     * @desc INVITE Request checking TP_IMS_5310_01 on AS
     */
    template INVITE_Request mdw_TP_IMS_5310_01_as 
    template INVITE_Request mdw_TP_IMS_5310_01_isc 
     modifies mw_INVITE_Request_Base := {
      msgHeader := {
        pChargingVector :=  mw_PChargingVector({
@@ -287,10 +287,10 @@ module AtsImsIot_Templates {

   /**
     * 
     * @desc INVITE Request checking TP_IMS_5308_02 on MW
     * @desc INVITE Request checking TP_IMS_5312_01 on MW
     */
    template INVITE_Request mdw_TP_IMS_5308_02_mw 
     modifies mw_INVITE_Request_Base := {
    template Response mdw_TP_IMS_5312_01_mw 
     modifies mw_200OK_Base := {
      msgHeader := {
        pChargingVector :=  mw_PChargingVector({
            {id := "access-network-charging-info", paramValue := *}, 
@@ -300,10 +300,10 @@ module AtsImsIot_Templates {
    }
   /**
     * 
     * @desc INVITE Request checking TP_IMS_5308_02 on AS
     * @desc INVITE Request checking TP_IMS_5312_01 on AS
     */
    template INVITE_Request mdw_TP_IMS_5308_02_as 
     modifies mw_INVITE_Request_Base := {
    template Response mdw_TP_IMS_5312_01_isc 
     modifies mw_200OK_Base := {
      msgHeader := {
        pChargingVector :=  mw_PChargingVector({
            {id := "access-network-charging-info", paramValue := *}, 
@@ -319,7 +319,7 @@ module AtsImsIot_Templates {
     * 
     * @desc INVITE Request checking TP_IMS_5097_09
     */
    template INVITE_Request mdw_TP_IMS_5097_09_as (template SipUrl p_EutB_ASUri)
    template INVITE_Request mdw_TP_IMS_5097_09_isc (template SipUrl p_EutB_ASUri)
     modifies mw_INVITE_Request_Base := {
      msgHeader := {
		route := {
+36 −19
Original line number Diff line number Diff line
@@ -53,9 +53,6 @@ module AtsImsIot_TestCases {
		//* eut trigger name User B
		const charstring c_userUE_B := "User B";
		const charstring c_userUE_B2 := "User B2";
	 	//* interface monitor name AS A
		const charstring c_as_A := "AS A";
		const charstring c_as_B := "AS B";
	}
	
	/**
@@ -440,9 +437,14 @@ module AtsImsIot_TestCases {
		
		// test body
		f_mtc_userInitiateCall (v_ueA, v_userInfoB);
		f_mtc_check_TP_IMS_5097_01_gm(v_gmA); // Check1		
		f_mtc_check_TP_IMS_5097_01_gm(v_gmA); // Check1	(at step 4)	
		f_mtc_check_TP_IMS_5097_01_mw(v_mw); // Check1 

		f_mtc_check_TP_IMS_5107_02_gm(v_mw); // Check2 (at step 28)
		f_mtc_check_TP_IMS_5107_02_mw(v_mw); // Check2 
		
		
		
		// postamble
		f_PO_user_home_deregistration(v_ueA);
		f_PO_user_home_deregistration(v_ueB);
@@ -464,33 +466,48 @@ module AtsImsIot_TestCases {
        var IotEquipmentUser v_ueB := f_cf_create_IotEquipmentUser(c_userUE_B);
		var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
		var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw);
		var ImsInterfaceMonitor v_asB := f_cf_create_monitor(c_as_B);
		var ImsInterfaceMonitor v_iscB := f_cf_create_monitor(c_isc_B);
		var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
		var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
		var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B); //@@ f_getHoldUser(PX_EUT_B);
				
		// map/connect component ports
		f_cf_user_up(v_ueA);
		f_cf_user_up(v_ueB);
		f_cf_monitor_up(v_gmA);
		f_cf_monitor_up(v_mw);
		f_cf_monitor_up(v_asB);
		f_cf_monitor_up(v_iscB); //
		
		// preamble
		f_mtc_userTriggerRegistration(v_ueA, v_userInfoA); 
		f_mtc_userTriggerRegistration(v_ueB, v_userInfoB); 
				
		// test body
//	    f_mtc_StartAllTrafficCapture();		
		f_mtc_userInitiateCall (v_ueA, v_userInfoB);
		f_mtc_check_TP_IMS_5310_01_gm(v_gmA); // Check1		

//		f_mtc_userCheckRinging(v_ueB, ???);
//		f_mtc_userCheckRinging(v_ueA, ???));
//		f_mtc_userTriggerAnswer(v_ueB, ???);
//		f_mtc_userCheckCallEstablished(v_ueA, ???);
//		f_mtc_userCheckCallEstablished(v_ueB, ???));

//		f_mtc_userTriggerHold(v_ueB, ???);
		f_mtc_check_TP_IMS_5310_01_mw(v_mw); // Check1 
		f_mtc_check_TP_IMS_5310_01_as(v_asB); // Check1 
		f_mtc_check_TP_IMS_5310_01_isc(v_iscB); // Check1 
		
		f_mtc_check_TP_IMS_5308_02_mw(v_mw); // Check2 
		f_mtc_check_TP_IMS_5308_02_as(v_asB); // Check2 
		//		f_mtc_userCheckUserOnHold(v_ueA, ???));
		//		f_mtc_userCheckUserOnHold(v_ueB, ???));
		//		f_mtc_userTriggerResume(v_ueB, ???);
		//		f_mtc_userCheckCallResumed(v_ueA, ???));

		f_mtc_check_TP_IMS_5312_01_mw(v_mw); // Check2 
		f_mtc_check_TP_IMS_5312_01_isc(v_iscB); // Check2 
   		// Check3 is not correctly described

		// TODO Verify user B is informed of incoming call, Verify user A is informed that UE_B is ringing 
		//		f_mtc_userCheckCallResumed(v_ueB, ???));
		//		f_mtc_triggerEndCall(v_ueA, ???));
		//		f_mtc_userCheckCallEnded(v_ueB, ???));
		//		f_mtc_userCheckCallEnded(v_ueA, ???));

		// postamble
		f_PO_user_home_deregistration(v_ueA);
@@ -513,7 +530,7 @@ module AtsImsIot_TestCases {
		var IotEquipmentUser v_ueB2 := f_cf_create_IotEquipmentUser(c_userUE_B2);
		var ImsInterfaceMonitor v_gmA := f_cf_create_monitor(c_gm_A);
		var ImsInterfaceMonitor v_mw := f_cf_create_monitor(c_mw);
		var ImsInterfaceMonitor v_asB := f_cf_create_monitor(c_as_B);
		var ImsInterfaceMonitor v_iscB := f_cf_create_monitor(c_isc_B);
		var ImsUserInfo v_userInfoA := f_getAnyValidUser(PX_EUT_A);
		var ImsUserInfo v_userInfoB := f_getAnyValidUser(PX_EUT_B);
		var ImsUserInfo v_userInfoB2 := f_getAnyValidUser(PX_EUT_B); //// TODO f_getAnyValidUser2 ?
@@ -524,7 +541,7 @@ module AtsImsIot_TestCases {
		f_cf_user_up(v_ueB2);
		f_cf_monitor_up(v_gmA);
		f_cf_monitor_up(v_mw);
		f_cf_monitor_up(v_asB);
		f_cf_monitor_up(v_iscB);
		
		// preamble
		f_mtc_userTriggerRegistration(v_ueA, v_userInfoA); 
@@ -536,11 +553,11 @@ module AtsImsIot_TestCases {
		f_mtc_check_TP_IMS_5046_01_gm(v_gmA);		
		f_mtc_check_TP_IMS_5046_01_mw(v_mw); // Check1 
		// Check2 TP_IMS_5067_01 ? is already covered in TP_IMS_5046_01
		f_mtc_check_TP_IMS_5046_01_mw (v_asB);
		f_mtc_check_TP_IMS_5046_01_mw (v_iscB);

		f_mtc_check_TP_IMS_5097_09_as(v_asB); // Check5 on AS (step 6? in the message sequence) 
		f_mtc_check_TP_IMS_5097_09_isc(v_iscB); // Check5 on AS (step 6? in the message sequence) 
        
		f_mtc_check_TP_IMS_5110_01_as(v_asB); // Check4 on AS (step 19 in the message sequence) 
		f_mtc_check_TP_IMS_5110_01_isc(v_iscB); // Check4 on AS (step 19 in the message sequence) 
		f_mtc_check_TP_IMS_5110_01_mw(v_mw); // Check4 on MW (step 20 in the message sequence)
		
		// TODO checks 6, 7