Loading ttcn/TestCodec/TestCodec_GeoNetworking.ttcn +245 −11 Original line number Diff line number Diff line Loading @@ -3,6 +3,9 @@ module TestCodec_GeoNetworking { // LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; import from LibCommon_Time all; import from LibCommon_VerdictControl all; import from LibCommon_Sync all; // LibIts // import from ITS_Container language "ASN.1:1997" all; Loading Loading @@ -961,10 +964,10 @@ module TestCodec_GeoNetworking { * @desc validate GeoNetworkingReq/Broadcast * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { testcase tc_GeoNet_Port_1() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_it := false; var boolean v_got_cam := false; var GeoNetworkingInd v_msg; if (PX_GN_UPPER_LAYER != e_any) { Loading @@ -974,6 +977,238 @@ module TestCodec_GeoNetworking { map(self:geoNetworkingPort, system:geoNetworkingPort); v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwBroadcastPacket( m_dummyLongPosVectorNodeB, 3456, m_dummyGeoBroadcastArea1 )))); geoNetworkingPort.send(v_gnReq); tc_ac.start; alt { [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_cam( -, -, e_btpB )))) { if (v_got_cam == false) { v_got_cam := true; setverdict(pass); } repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwLsRequestPacket( ?, ? )))) -> value v_msg { log("Receive LsRequest: ", v_msg.msgIn); // Send LsReply f_sendGeoNetMessage( valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwLsReplyPacket( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector( valueof(v_msg.msgIn.gnPacket.packet.extendedHeader.lsRequestHeader.srcPosVector) ), vc_localSeqNumber ))))); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { log("Receive beacon: ", v_msg.msgIn); setverdict(fail); } [] tc_ac.timeout { if (v_got_cam == false) { setverdict(inconc, "Expected message not received"); } } } unmap(self:geoNetworkingPort, system:geoNetworkingPort); } // End of testcase tc_GeoNet_Port_1 /** * @desc validate GeoNetworkingReq/Broadcast * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port_2() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_cam := false; var boolean v_got_beacon := false; var LongPosVector v_longPosVectorIut; var GeoNetworkingInd v_msg; if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); stop; } map(self:geoNetworkingPort, system:geoNetworkingPort); map(self:acPort, system:acPort); // A small sleep to provide TA to read pcap file is it used tc_noac.start; alt { [] tc_noac.timeout { } } // end of 'alt' statement f_acTriggerEvent(m_getLongPosVector(f_getIutGnLocalAddress())); tc_ac.start; alt { [] acPort.receive(mw_getLongPosVectorAny(f_getIutGnLocalAddress())) { tc_ac.stop; setverdict(pass); } [] acPort.receive { tc_ac.stop; setverdict(fail, "GnAddress mismatch, check LibItsGeoNetworking_Pics.PICS_GN_LOCAL_GN_ADDR value in configuration file"); } [] tc_ac.timeout { setverdict(inconc, "timeout"); } } // End of 'alt' statement v_longPosVectorIut := f_getPosition(c_compIut); f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwBroadcastPacket( m_dummyLongPosVectorNodeB, 3456, m_dummyGeoBroadcastArea1 )))); geoNetworkingPort.send(v_gnReq); tc_ac.start; alt { [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_cam( -, -, e_btpB )))) { if (v_got_cam == false) { v_got_cam := true; setverdict(pass); } repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwLsRequestPacket( ?, ? )))) -> value v_msg { log("Receive LsRequest: ", v_msg.msgIn); // Send LsReply f_sendGeoNetMessage( valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwLsReplyPacket( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector( valueof(v_msg.msgIn.gnPacket.packet.extendedHeader.lsRequestHeader.srcPosVector) ), vc_localSeqNumber ))))); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwBeaconPacket(?) ) )) -> value v_msg { log("Receive beacon: ", v_msg.msgIn); if (v_got_beacon == false) { v_got_beacon := true; setverdict(pass); } repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { log("Receive beacon: ", v_msg.msgIn); setverdict(fail); } [] tc_ac.timeout { if ((v_got_cam == false) and (v_got_beacon == false)) { setverdict(inconc, "Expected messages not received"); } } } f_acTriggerEvent(m_stopPassBeaconing); unmap(self:geoNetworkingPort, system:geoNetworkingPort); unmap(self:acPort, system:acPort); } // End of testcase tc_GeoNet_Port_2 /** * @desc validate GeoNetworkingReq/Broadcast * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_MultiPort() runs on ItsMtc system ItsGeoNetworkingSystem { var ItsGeoNetworking v_comp1; var ItsGeoNetworking v_comp2; v_comp1 := ItsGeoNetworking.create("Comp1") alive; v_comp2 := ItsGeoNetworking.create("Comp2") alive; connect(self:syncPort, mtc:syncPort); connect(v_comp1:syncPort, self:syncPort); connect(v_comp2:syncPort, self:syncPort); map(v_comp1:geoNetworkingPort, system:geoNetworkingPort); map(v_comp2:geoNetworkingPort, system:geoNetworkingPort); v_comp1.start(f_tc_GeoNet_MultiPort()); v_comp2.start(f_tc_GeoNet_MultiPort()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); disconnect(self:syncPort, mtc:syncPort); disconnect(v_comp1:syncPort, self:syncPort); disconnect(v_comp2:syncPort, self:syncPort); unmap(v_comp1:geoNetworkingPort, system:geoNetworkingPort); unmap(v_comp2:geoNetworkingPort, system:geoNetworkingPort); } function f_tc_GeoNet_MultiPort() runs on ItsGeoNetworking { var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_it := false; var GeoNetworkingInd v_msg; if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); stop; } f_selfOrClientSyncAndVerdict(c_prDone, e_success); v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwBroadcastPacket( Loading Loading @@ -1041,10 +1276,9 @@ module TestCodec_GeoNetworking { } } } f_selfOrClientSyncAndVerdict(c_tbDone, e_success); unmap(self:geoNetworkingPort, system:geoNetworkingPort); } // End of testcase tc_GeoNet_Port } // End of function f_tc_GeoNet_MultiPort /** * @desc validate GeoNetworkingReq/Broadcast with UtPort Loading Loading @@ -1259,10 +1493,6 @@ module TestCodec_GeoNetworking { tc_ac.stop; setverdict(pass, "Received AC ACK"); } [] acPort.receive { tc_ac.stop; setverdict(fail, "Received unexpected AC message"); } [] tc_ac.timeout { setverdict(inconc, "Timeout while waiting for adapter control event result"); stop; Loading Loading @@ -1405,6 +1635,10 @@ module TestCodec_GeoNetworking { tc_ac.stop; setverdict(pass); } [] geoNetworkingPort.receive { tc_ac.stop; setverdict(fail, "Unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, "Expected message not received"); } Loading ttcn/TestCodec/TestCodec_Multiport.ttcn +41 −310 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
ttcn/TestCodec/TestCodec_GeoNetworking.ttcn +245 −11 Original line number Diff line number Diff line Loading @@ -3,6 +3,9 @@ module TestCodec_GeoNetworking { // LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; import from LibCommon_Time all; import from LibCommon_VerdictControl all; import from LibCommon_Sync all; // LibIts // import from ITS_Container language "ASN.1:1997" all; Loading Loading @@ -961,10 +964,10 @@ module TestCodec_GeoNetworking { * @desc validate GeoNetworkingReq/Broadcast * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { testcase tc_GeoNet_Port_1() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_it := false; var boolean v_got_cam := false; var GeoNetworkingInd v_msg; if (PX_GN_UPPER_LAYER != e_any) { Loading @@ -974,6 +977,238 @@ module TestCodec_GeoNetworking { map(self:geoNetworkingPort, system:geoNetworkingPort); v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwBroadcastPacket( m_dummyLongPosVectorNodeB, 3456, m_dummyGeoBroadcastArea1 )))); geoNetworkingPort.send(v_gnReq); tc_ac.start; alt { [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_cam( -, -, e_btpB )))) { if (v_got_cam == false) { v_got_cam := true; setverdict(pass); } repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwLsRequestPacket( ?, ? )))) -> value v_msg { log("Receive LsRequest: ", v_msg.msgIn); // Send LsReply f_sendGeoNetMessage( valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwLsReplyPacket( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector( valueof(v_msg.msgIn.gnPacket.packet.extendedHeader.lsRequestHeader.srcPosVector) ), vc_localSeqNumber ))))); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { log("Receive beacon: ", v_msg.msgIn); setverdict(fail); } [] tc_ac.timeout { if (v_got_cam == false) { setverdict(inconc, "Expected message not received"); } } } unmap(self:geoNetworkingPort, system:geoNetworkingPort); } // End of testcase tc_GeoNet_Port_1 /** * @desc validate GeoNetworkingReq/Broadcast * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port_2() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_cam := false; var boolean v_got_beacon := false; var LongPosVector v_longPosVectorIut; var GeoNetworkingInd v_msg; if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); stop; } map(self:geoNetworkingPort, system:geoNetworkingPort); map(self:acPort, system:acPort); // A small sleep to provide TA to read pcap file is it used tc_noac.start; alt { [] tc_noac.timeout { } } // end of 'alt' statement f_acTriggerEvent(m_getLongPosVector(f_getIutGnLocalAddress())); tc_ac.start; alt { [] acPort.receive(mw_getLongPosVectorAny(f_getIutGnLocalAddress())) { tc_ac.stop; setverdict(pass); } [] acPort.receive { tc_ac.stop; setverdict(fail, "GnAddress mismatch, check LibItsGeoNetworking_Pics.PICS_GN_LOCAL_GN_ADDR value in configuration file"); } [] tc_ac.timeout { setverdict(inconc, "timeout"); } } // End of 'alt' statement v_longPosVectorIut := f_getPosition(c_compIut); f_acTriggerEvent(m_startPassBeaconing(m_beaconHeader(v_longPosVectorIut).beaconHeader)); v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwBroadcastPacket( m_dummyLongPosVectorNodeB, 3456, m_dummyGeoBroadcastArea1 )))); geoNetworkingPort.send(v_gnReq); tc_ac.start; alt { [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_cam( -, -, e_btpB )))) { if (v_got_cam == false) { v_got_cam := true; setverdict(pass); } repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwLsRequestPacket( ?, ? )))) -> value v_msg { log("Receive LsRequest: ", v_msg.msgIn); // Send LsReply f_sendGeoNetMessage( valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwLsReplyPacket( m_dummyLongPosVectorNodeA, f_longPosVector2ShortPosVector( valueof(v_msg.msgIn.gnPacket.packet.extendedHeader.lsRequestHeader.srcPosVector) ), vc_localSeqNumber ))))); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwBeaconPacket(?) ) )) -> value v_msg { log("Receive beacon: ", v_msg.msgIn); if (v_got_beacon == false) { v_got_beacon := true; setverdict(pass); } repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { log("Receive beacon: ", v_msg.msgIn); setverdict(fail); } [] tc_ac.timeout { if ((v_got_cam == false) and (v_got_beacon == false)) { setverdict(inconc, "Expected messages not received"); } } } f_acTriggerEvent(m_stopPassBeaconing); unmap(self:geoNetworkingPort, system:geoNetworkingPort); unmap(self:acPort, system:acPort); } // End of testcase tc_GeoNet_Port_2 /** * @desc validate GeoNetworkingReq/Broadcast * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_MultiPort() runs on ItsMtc system ItsGeoNetworkingSystem { var ItsGeoNetworking v_comp1; var ItsGeoNetworking v_comp2; v_comp1 := ItsGeoNetworking.create("Comp1") alive; v_comp2 := ItsGeoNetworking.create("Comp2") alive; connect(self:syncPort, mtc:syncPort); connect(v_comp1:syncPort, self:syncPort); connect(v_comp2:syncPort, self:syncPort); map(v_comp1:geoNetworkingPort, system:geoNetworkingPort); map(v_comp2:geoNetworkingPort, system:geoNetworkingPort); v_comp1.start(f_tc_GeoNet_MultiPort()); v_comp2.start(f_tc_GeoNet_MultiPort()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); disconnect(self:syncPort, mtc:syncPort); disconnect(v_comp1:syncPort, self:syncPort); disconnect(v_comp2:syncPort, self:syncPort); unmap(v_comp1:geoNetworkingPort, system:geoNetworkingPort); unmap(v_comp2:geoNetworkingPort, system:geoNetworkingPort); } function f_tc_GeoNet_MultiPort() runs on ItsGeoNetworking { var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_it := false; var GeoNetworkingInd v_msg; if (PX_GN_UPPER_LAYER != e_any) { log("PX_GN_UPPER_LAYER shall be set to e_any"); stop; } f_selfOrClientSyncAndVerdict(c_prDone, e_success); v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwBroadcastPacket( Loading Loading @@ -1041,10 +1276,9 @@ module TestCodec_GeoNetworking { } } } f_selfOrClientSyncAndVerdict(c_tbDone, e_success); unmap(self:geoNetworkingPort, system:geoNetworkingPort); } // End of testcase tc_GeoNet_Port } // End of function f_tc_GeoNet_MultiPort /** * @desc validate GeoNetworkingReq/Broadcast with UtPort Loading Loading @@ -1259,10 +1493,6 @@ module TestCodec_GeoNetworking { tc_ac.stop; setverdict(pass, "Received AC ACK"); } [] acPort.receive { tc_ac.stop; setverdict(fail, "Received unexpected AC message"); } [] tc_ac.timeout { setverdict(inconc, "Timeout while waiting for adapter control event result"); stop; Loading Loading @@ -1405,6 +1635,10 @@ module TestCodec_GeoNetworking { tc_ac.stop; setverdict(pass); } [] geoNetworkingPort.receive { tc_ac.stop; setverdict(fail, "Unexpected message received"); } [] tc_ac.timeout { setverdict(inconc, "Expected message not received"); } Loading
ttcn/TestCodec/TestCodec_Multiport.ttcn +41 −310 File changed.Preview size limit exceeded, changes collapsed. Show changes