Loading ttcn/TestCodec/TestCodec_GeoNetworking.ttcn +876 −575 Original line number Diff line number Diff line Loading @@ -622,28 +622,35 @@ module TestCodec_GeoNetworking { stop; } setverdict(pass, "Encoding passed."); } // End of tc_GeoNet_UtGnInitialize // Check decoding /*if (p_decode == true) { v_res := decvalue(v_encMsg, v_decMsg); log("Decoded message: ", v_decMsg); select (v_res) { case (0) { if(match(v_decMsg, p_geoNetworkingReq)) { setverdict(pass); } else { setverdict(fail); } } case (1) { setverdict(fail, "Decoding failed."); } case (2) { setverdict(fail, "Not enough bits."); } /** * @desc Validate template GeoNetworking/UtGnChangePosition * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_UtGnChangePosition() runs on TCType system TCType { var bitstring v_encMsg; var UtGnInitialize v_decMsg; var integer v_res := 0; var template (value) UtGnChangePosition m_utGnChangePosition := { 1234, 5678, 9876 }; var bitstring v_expEncMsg := oct2bit('000809AABBCCDDEEFF'O); // Encode template log("Encode template ", valueof(m_utGnChangePosition)); v_encMsg := encvalue(m_utGnChangePosition); log("Encoded message: ", bit2oct(v_encMsg)); // Check result if (not isbound(v_encMsg)) { setverdict(fail, "Encoding failed!"); stop; } }*/ if (not match(v_encMsg, v_expEncMsg)) { log("Expected message: ", bit2oct(valueof(v_expEncMsg))); setverdict(fail, "Encoding failed, not the expected result!"); stop; } setverdict(pass, "Encoding passed."); } // End of tc_GeoNet_UtGnChangePosition } // End of group testGeoNetUpperTester Loading Loading @@ -684,16 +691,213 @@ 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_it == false) { v_got_it := 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); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { setverdict(fail); } [] tc_ac.timeout { if (v_got_it == false) { setverdict(inconc, "Expected message not received1"); } } } unmap(self:geoNetworkingPort, system:geoNetworkingPort); } // End of testcase tc_GeoNet_Port /** * @desc validate GeoNetworkingReq/Broadcast with UtPort * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port_utPort() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { 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; } map(self:geoNetworkingPort, system:geoNetworkingPort); map(self:utPort, system:utPort); utPort.send(m_gnInitialize); f_utInitializeIut(m_gnInitialize); v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwBroadcastPacket( m_dummyLongPosVectorNodeB, 3456, m_dummyGeoBroadcastArea1 )))); geoNetworkingPort.send(v_gnReq); tc_ac.start; alt { [] utPort.receive(UtGnResults: { utGnInitializeResult := true }) { [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_cam( -, -, e_btpB )))) { if (v_got_it == false) { v_got_it := 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); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { setverdict(fail); } [] tc_ac.timeout { if (v_got_it == false) { setverdict(inconc, "Expected message not received1"); } } } unmap(self:geoNetworkingPort, system:geoNetworkingPort); unmap(self:utPort, system:utPort); } // End of testcase tc_GeoNet_utPort /** * @desc validate GeoNetworkingReq/Broadcast with AcPort/beaconing * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port_acPort_beaconing() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { // Variables var PositionTable v_positionTable := {}; var GeoAreaTable v_areaTable := {}; var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_it := false; var GeoNetworkingInd v_msg; var AcGnResponse v_result; 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); f_preparePositionsAndAreas(v_positionTable, v_areaTable); f_initialiseComponent(v_positionTable, v_areaTable, c_compNodeB); f_acTriggerEvent(m_startBeaconing(m_beaconHeader(f_getPosition(vc_componentName)).beaconHeader)); tc_ac.start; alt { [] acPort.receive(AcGnResponse: { failure := { failure := true } }) { tc_ac.stop; } [] acPort.receive(AcGnResponse: { failure := { failure := false } }) { tc_ac.stop; log("Received negative ack"); stop; } [] acPort.receive { log("Received unexpected message"); tc_ac.stop; } [] tc_ac.timeout { setverdict(fail, "UtGnInitializeResult not receive"); log("Timeout while waiting for adapter control event result"); stop; } } // End of 'alt' statement Loading Loading @@ -767,9 +971,106 @@ module TestCodec_GeoNetworking { } unmap(self:geoNetworkingPort, system:geoNetworkingPort); unmap(self:utPort, system:utPort); unmap(self:acPort, system:acPort); } // End of testcase tc_GeoNet_Port } // End of testcase tc_GeoNet_acPort_beaconing /** * @desc validate GeoNetworkingReq/Broadcast with AcPort/getLongposVector * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port_acPort_lpv() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { // Variables var PositionTable v_positionTable := {}; var GeoAreaTable v_areaTable := {}; var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_it := false; var GeoNetworkingInd v_msg; var AcGnResponse v_result; 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); f_acGetLongPosVector(f_getIutGnLocalAddress()); 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_it == false) { v_got_it := 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); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { setverdict(fail); } [] tc_ac.timeout { if (v_got_it == false) { setverdict(inconc, "Expected message not received1"); } } } unmap(self:geoNetworkingPort, system:geoNetworkingPort); unmap(self:acPort, system:acPort); } // End of testcase tc_GeoNet_acPort_lpv /** * @desc validate GeoNetworkingReq/Broadcast Loading Loading
ttcn/TestCodec/TestCodec_GeoNetworking.ttcn +876 −575 Original line number Diff line number Diff line Loading @@ -622,28 +622,35 @@ module TestCodec_GeoNetworking { stop; } setverdict(pass, "Encoding passed."); } // End of tc_GeoNet_UtGnInitialize // Check decoding /*if (p_decode == true) { v_res := decvalue(v_encMsg, v_decMsg); log("Decoded message: ", v_decMsg); select (v_res) { case (0) { if(match(v_decMsg, p_geoNetworkingReq)) { setverdict(pass); } else { setverdict(fail); } } case (1) { setverdict(fail, "Decoding failed."); } case (2) { setverdict(fail, "Not enough bits."); } /** * @desc Validate template GeoNetworking/UtGnChangePosition * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_UtGnChangePosition() runs on TCType system TCType { var bitstring v_encMsg; var UtGnInitialize v_decMsg; var integer v_res := 0; var template (value) UtGnChangePosition m_utGnChangePosition := { 1234, 5678, 9876 }; var bitstring v_expEncMsg := oct2bit('000809AABBCCDDEEFF'O); // Encode template log("Encode template ", valueof(m_utGnChangePosition)); v_encMsg := encvalue(m_utGnChangePosition); log("Encoded message: ", bit2oct(v_encMsg)); // Check result if (not isbound(v_encMsg)) { setverdict(fail, "Encoding failed!"); stop; } }*/ if (not match(v_encMsg, v_expEncMsg)) { log("Expected message: ", bit2oct(valueof(v_expEncMsg))); setverdict(fail, "Encoding failed, not the expected result!"); stop; } setverdict(pass, "Encoding passed."); } // End of tc_GeoNet_UtGnChangePosition } // End of group testGeoNetUpperTester Loading Loading @@ -684,16 +691,213 @@ 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_it == false) { v_got_it := 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); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { setverdict(fail); } [] tc_ac.timeout { if (v_got_it == false) { setverdict(inconc, "Expected message not received1"); } } } unmap(self:geoNetworkingPort, system:geoNetworkingPort); } // End of testcase tc_GeoNet_Port /** * @desc validate GeoNetworkingReq/Broadcast with UtPort * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port_utPort() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { 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; } map(self:geoNetworkingPort, system:geoNetworkingPort); map(self:utPort, system:utPort); utPort.send(m_gnInitialize); f_utInitializeIut(m_gnInitialize); v_gnReq := valueof(m_geoNwReq_linkLayerBroadcast( m_geoNwPdu( m_geoNwBroadcastPacket( m_dummyLongPosVectorNodeB, 3456, m_dummyGeoBroadcastArea1 )))); geoNetworkingPort.send(v_gnReq); tc_ac.start; alt { [] utPort.receive(UtGnResults: { utGnInitializeResult := true }) { [] geoNetworkingPort.receive( mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_cam( -, -, e_btpB )))) { if (v_got_it == false) { v_got_it := 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); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { setverdict(fail); } [] tc_ac.timeout { if (v_got_it == false) { setverdict(inconc, "Expected message not received1"); } } } unmap(self:geoNetworkingPort, system:geoNetworkingPort); unmap(self:utPort, system:utPort); } // End of testcase tc_GeoNet_utPort /** * @desc validate GeoNetworkingReq/Broadcast with AcPort/beaconing * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port_acPort_beaconing() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { // Variables var PositionTable v_positionTable := {}; var GeoAreaTable v_areaTable := {}; var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_it := false; var GeoNetworkingInd v_msg; var AcGnResponse v_result; 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); f_preparePositionsAndAreas(v_positionTable, v_areaTable); f_initialiseComponent(v_positionTable, v_areaTable, c_compNodeB); f_acTriggerEvent(m_startBeaconing(m_beaconHeader(f_getPosition(vc_componentName)).beaconHeader)); tc_ac.start; alt { [] acPort.receive(AcGnResponse: { failure := { failure := true } }) { tc_ac.stop; } [] acPort.receive(AcGnResponse: { failure := { failure := false } }) { tc_ac.stop; log("Received negative ack"); stop; } [] acPort.receive { log("Received unexpected message"); tc_ac.stop; } [] tc_ac.timeout { setverdict(fail, "UtGnInitializeResult not receive"); log("Timeout while waiting for adapter control event result"); stop; } } // End of 'alt' statement Loading Loading @@ -767,9 +971,106 @@ module TestCodec_GeoNetworking { } unmap(self:geoNetworkingPort, system:geoNetworkingPort); unmap(self:utPort, system:utPort); unmap(self:acPort, system:acPort); } // End of testcase tc_GeoNet_Port } // End of testcase tc_GeoNet_acPort_beaconing /** * @desc validate GeoNetworkingReq/Broadcast with AcPort/getLongposVector * @verdict Pass on success, Fail otherwise */ testcase tc_GeoNet_Port_acPort_lpv() runs on ItsGeoNetworking system ItsGeoNetworkingSystem { // Variables var PositionTable v_positionTable := {}; var GeoAreaTable v_areaTable := {}; var GeoNetworkingReq v_gnReq; var ExtendedHeader v_header; var boolean v_got_it := false; var GeoNetworkingInd v_msg; var AcGnResponse v_result; 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); f_acGetLongPosVector(f_getIutGnLocalAddress()); 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_it == false) { v_got_it := 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); repeat; } [] geoNetworkingPort.receive( mw_geoNwInd( ? )) -> value v_msg { setverdict(fail); } [] tc_ac.timeout { if (v_got_it == false) { setverdict(inconc, "Expected message not received1"); } } } unmap(self:geoNetworkingPort, system:geoNetworkingPort); unmap(self:acPort, system:acPort); } // End of testcase tc_GeoNet_acPort_lpv /** * @desc validate GeoNetworkingReq/Broadcast Loading