Loading ttcn/AtsAutoInterop/ItsAutoInterop_TestCases.ttcn +81 −145 Original line number Diff line number Diff line Loading @@ -157,7 +157,7 @@ module ItsAutoInterop_TestCases { v_eut4.start(f_TC_AUTO_IOT_DENM_MFW_BV_01_eut4(v_eut4, PX_EUT4_ID)); // Synchronization f_serverSyncNClientsAndStop(4, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(4, {c_prDone, c_tbDone}); // Cleanup f_mtcCf01Down(v_eut1, v_eut2, v_eut3, v_eut4); Loading Loading @@ -564,7 +564,7 @@ module ItsAutoInterop_TestCases { v_eut2.start(f_TC_AUTO_IOT_DENM_RWW_BV_01_eut2(v_eut2, PX_EUT2_ID)); // Synchronization f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone}); // Cleanup f_mtcCf02Down(v_eut1, v_eut2); Loading Loading @@ -865,7 +865,7 @@ module ItsAutoInterop_TestCases { v_eut2.start(f_TC_AUTO_IOT_DENM_RHS_BV_01_eut2(v_eut2, PX_EUT2_ID)); // Synchronization f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone}); // Cleanup f_mtcCf02Down(v_eut1, v_eut2); Loading Loading @@ -1093,7 +1093,7 @@ module ItsAutoInterop_TestCases { v_eut2.start(f_TC_AUTO_IOT_DENM_SVW_BV_01_eut2(v_eut2, PX_EUT2_ID)); // Synchronization f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone}); // Cleanup f_mtcCf02Down(v_eut1, v_eut2); Loading Loading @@ -1396,7 +1396,7 @@ module ItsAutoInterop_TestCases { v_eut4.start(f_TC_AUTO_IOT_DENM_GMC_BV_01_eut4(v_eut4, PX_EUT4_ID)); // Synchronization f_serverSyncNClientsAndStop(4, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(4, {c_prDone, c_initDone, c_tbDone}); // Cleanup f_mtcCf01Down(v_eut1, v_eut2, v_eut3, v_eut4); Loading @@ -1415,16 +1415,12 @@ module ItsAutoInterop_TestCases { // Local variables var GeoNetworkingInd v_gnInd; var template (value) Payload v_payload; // Test component configuration f_cfPtcUp(p_eut); // Preamble f_prDefault(); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] geoNetworkingPort.receive( // Filter broadcasted DENM Loading @@ -1445,9 +1441,19 @@ module ItsAutoInterop_TestCases { m_forward_geoNetworkingInd( v_gnInd )); tc_ac.start; repeat; log("*** " & testcasename() & ": INFO: EUT1 sends a GBC packet ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: EUT1 does not send requested DEN message ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } // Test Body f_selfOrClientSyncAndVerdict(c_initDone, e_success); tc_ac.start; alt { [] geoNetworkingPort.receive( mw_geoNwInd_withLinkLayerDestination( mw_geoNwPdu( Loading @@ -1465,7 +1471,7 @@ module ItsAutoInterop_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": PASS: Forwarding message scenario (GREEDY, GREEDY, GREEDY) succeed ***"); log("*** " & testcasename() & ": PASS: Geo-broadcast message caching scenario succeed ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } Loading Loading @@ -1506,9 +1512,11 @@ module ItsAutoInterop_TestCases { e_btpB, mw_denm_stationId( PX_EUT_DESC[PX_EUT1_ID].stationId ))))) -> value v_eutGeoNw { // Unexpected DEN message ))))) -> value v_eutGeoNw { // EUT2 receives the GBC packet from EUT1 tc_ac.stop; // Now, we have to check for EUT4 to broadcast the DENM message // Here, GBC packet should be buffered f_selfOrClientSyncAndVerdict(c_initDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); tc_ac.start; repeat; } Loading @@ -1529,7 +1537,7 @@ module ItsAutoInterop_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Forwarding message scenario (GREEDY, GREEDY, GREEDY) is incomplete ***"); log("*** " & testcasename() & ": FAIL: Geo-broadcast message caching scenario is incomplete ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } // End of 'alt' statement Loading @@ -1551,7 +1559,6 @@ module ItsAutoInterop_TestCases { // Local variables var GeoNetworkingInd v_gnInd; var EutGeoNetworking v_eutGeoNw; var integer v_denm_counter := 0; // Test component configuration f_cfPtcUp(p_eut); Loading @@ -1561,6 +1568,9 @@ module ItsAutoInterop_TestCases { f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_selfOrClientSyncAndVerdict(c_initDone, e_success); // EUT2 and EUT4 become on-link ItsAutoInterop_Functions.f_utTriggerEvent(UtAutoInteropTrigger:{utRadioOnOff := true}); tc_ac.start; alt { [] eutGeoNetworkingPort.receive( Loading Loading @@ -1598,11 +1608,11 @@ module ItsAutoInterop_TestCases { m_forward_geoNetworkingInd( v_gnInd )); log("*** " & testcasename() & ": PASS: Forwarding message scenario (GREEDY, GREEDY, GREEDY) succeed ***"); log("*** " & testcasename() & ": PASS: Geo-broadcast message caching scenario succeed ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Forwarding message scenario (GREEDY, GREEDY, GREEDY) is incomplete ***"); log("*** " & testcasename() & ": FAIL: Geo-broadcast message caching scenario is incomplete ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } // End of 'alt' statement Loading Loading @@ -1693,7 +1703,7 @@ module ItsAutoInterop_TestCases { v_eut3.start(f_TC_AUTO_IOT_CAM_NBD_BV_01_eut(v_eut3, PX_EUT3_ID)); // Synchronization f_serverSyncNClientsAndStop(3, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(3, {c_prDone, c_tbDone}); // Cleanup f_mtcCf03Down(v_eut1, v_eut2, v_eut3); Loading Loading @@ -1733,7 +1743,7 @@ module ItsAutoInterop_TestCases { // Test Body tc_wait.start; alt { // TODO Add beacon support alt { [] geoNetworkingPort.receive( // Filter broadcasted CAM mw_geoNwInd_withLinkLayerDestination( mw_geoNwPdu( Loading @@ -1754,20 +1764,21 @@ module ItsAutoInterop_TestCases { )); repeat; } [] eutGeoNetworkingPort.receive( mw_eutGeoNwInd_withLinkLayerDestination( [] geoNetworkingPort.receive( // Filter broadcasted beacon mw_geoNwInd_withLinkLayerDestination( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam( ?, ?, e_btpB, mw_cam_stationId( -, PX_EUT_DESC[p_eut_id].stationId ))), mw_geoNwShbPacket( mw_longPosVectorAny( mw_gnAddressMid( complement(PX_EUT_DESC[p_eut_id].mid ))))), c_llBroadcast )) { // Receives a broadcast MAC address // Receive CAM from other EUTs )) -> value v_gnInd { // Receives a broadcast MAC address // Broadcast Beacon message to the other EUTs eutGeoNetworkingPort.send( m_forward_geoNetworkingInd( v_gnInd )); repeat; } [] hmiPort.receive( Loading Loading @@ -2002,50 +2013,6 @@ module ItsAutoInterop_TestCases { repeat; } // else, nothing to do } [] geoNetworkingPort.receive( // TODO Move to default mw_geoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam ))) { tc_ac.stop; tc_ac.start; repeat; } [] eutGeoNetworkingPort.receive( // TODO Move to default mw_eutGeoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam ))) { tc_ac.stop; tc_ac.start; repeat; } [] geoNetworkingPort.receive( // TODO Move to default mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_denm( ?, ?, e_btpB, mw_denm_stationId )))) { tc_ac.stop; tc_ac.start; repeat; } [] eutGeoNetworkingPort.receive( // TODO Move to default mw_eutGeoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_denm( ?, ?, e_btpB, mw_denm_stationId )))) { tc_ac.stop; tc_ac.start; repeat; } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM messages for EUT ", PX_EUT_DESC[p_eut_id].stationId, " not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); Loading Loading @@ -2180,50 +2147,6 @@ module ItsAutoInterop_TestCases { repeat; } // else, nothing to do } [] geoNetworkingPort.receive( // TODO Move to default mw_geoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam ))) { tc_ac.stop; tc_ac.start; repeat; } [] eutGeoNetworkingPort.receive( // TODO Move to default mw_eutGeoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam ))) { tc_ac.stop; tc_ac.start; repeat; } [] geoNetworkingPort.receive( // TODO Move to default mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_denm( ?, ?, e_btpB, mw_denm_stationId )))) { tc_ac.stop; tc_ac.start; repeat; } [] eutGeoNetworkingPort.receive( // TODO Move to default mw_eutGeoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_denm( ?, ?, e_btpB, mw_denm_stationId )))) { tc_ac.stop; tc_ac.start; repeat; } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM messages for EUT ", PX_EUT_DESC[p_eut_id].stationId, " not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); Loading Loading @@ -2314,8 +2237,8 @@ module ItsAutoInterop_TestCases { // Preamble // Start components v_eut1.start(f_TC_AUTO_IOT_GN_DAD_BV_01_eut(v_eut1, PX_EUT1_ID)); v_eut2.start(f_TC_AUTO_IOT_GN_DAD_BV_01_eut(v_eut2, PX_EUT2_ID)); v_eut1.start(f_TC_AUTO_IOT_GN_DAD_BV_01_eut(v_eut1, PX_EUT1_ID, PX_EUT2_ID)); v_eut2.start(f_TC_AUTO_IOT_GN_DAD_BV_01_eut(v_eut2, PX_EUT2_ID, PX_EUT1_ID)); // Synchronization f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone}); Loading @@ -2332,14 +2255,15 @@ module ItsAutoInterop_TestCases { */ function f_TC_AUTO_IOT_GN_DAD_BV_01_eut( in ItsAutoInteropGeonetworking p_eut, in integer p_eut_id in integer p_eut_id, in integer p_eut_id_neighbour ) runs on ItsAutoInteropGeonetworking { // Local variables var GeoNetworkingInd v_gnInd; var EutGeoNetworking v_eutGeoNw; var GN_Address v_gnAddr; var boolean v_getFirstCam := false; var HmiNeighborEventInds v_hmiNeighborEventInds; // Test component configuration f_cfPtcUp(p_eut); Loading Loading @@ -2392,32 +2316,44 @@ module ItsAutoInterop_TestCases { m_forward_geoNetworkingInd( v_gnInd )); log("*** " & testcasename() & ": PASS: Test done ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive( // TODO To be moved in a default mw_geoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam( ?, ?, e_btpB, mw_cam_stationId( -, PX_EUT_DESC[p_eut_id].stationId ))))) -> value v_gnInd { // Receive a CAM message // Re-send CA message to the other EUTs eutGeoNetworkingPort.send( m_forward_geoNetworkingInd( v_gnInd )); repeat; tc_wait.stop; log("*** " & testcasename() & ": INFO: GN duplicated address conflict resolved ***"); hmiPort.clear; } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); log("*** " & testcasename() & ": INCONC: GN duplicate address conflict scenario is incomplete ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement tc_ac.start; alt { // Check neighbours [] hmiPort.receive( HmiNeighborEventInds:? ) -> value v_hmiNeighborEventInds { var boolean v_found := false; tc_ac.stop; for (var integer v_i := 0; v_i < lengthof(v_hmiNeighborEventInds); v_i := v_i + 1) { if ( (PX_EUT_DESC[p_eut_id_neighbour].mid == v_hmiNeighborEventInds[v_i].mid) and (PX_EUT_DESC[p_eut_id_neighbour].stationId == v_hmiNeighborEventInds[v_i].stationId) ) { v_found := true; break; // Got it, leave the loop } // else, continue } // End of 'for' statement if (v_found) { log("*** " & testcasename() & ": PASS: GN duplicate address conflict scenario compeleted for EUT ", PX_EUT_DESC[p_eut_id].stationId, "***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: GN duplicate address conflict scenario is incomplete ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } // Postamble f_poDefault(); Loading Loading
ttcn/AtsAutoInterop/ItsAutoInterop_TestCases.ttcn +81 −145 Original line number Diff line number Diff line Loading @@ -157,7 +157,7 @@ module ItsAutoInterop_TestCases { v_eut4.start(f_TC_AUTO_IOT_DENM_MFW_BV_01_eut4(v_eut4, PX_EUT4_ID)); // Synchronization f_serverSyncNClientsAndStop(4, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(4, {c_prDone, c_tbDone}); // Cleanup f_mtcCf01Down(v_eut1, v_eut2, v_eut3, v_eut4); Loading Loading @@ -564,7 +564,7 @@ module ItsAutoInterop_TestCases { v_eut2.start(f_TC_AUTO_IOT_DENM_RWW_BV_01_eut2(v_eut2, PX_EUT2_ID)); // Synchronization f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone}); // Cleanup f_mtcCf02Down(v_eut1, v_eut2); Loading Loading @@ -865,7 +865,7 @@ module ItsAutoInterop_TestCases { v_eut2.start(f_TC_AUTO_IOT_DENM_RHS_BV_01_eut2(v_eut2, PX_EUT2_ID)); // Synchronization f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone}); // Cleanup f_mtcCf02Down(v_eut1, v_eut2); Loading Loading @@ -1093,7 +1093,7 @@ module ItsAutoInterop_TestCases { v_eut2.start(f_TC_AUTO_IOT_DENM_SVW_BV_01_eut2(v_eut2, PX_EUT2_ID)); // Synchronization f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone}); // Cleanup f_mtcCf02Down(v_eut1, v_eut2); Loading Loading @@ -1396,7 +1396,7 @@ module ItsAutoInterop_TestCases { v_eut4.start(f_TC_AUTO_IOT_DENM_GMC_BV_01_eut4(v_eut4, PX_EUT4_ID)); // Synchronization f_serverSyncNClientsAndStop(4, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(4, {c_prDone, c_initDone, c_tbDone}); // Cleanup f_mtcCf01Down(v_eut1, v_eut2, v_eut3, v_eut4); Loading @@ -1415,16 +1415,12 @@ module ItsAutoInterop_TestCases { // Local variables var GeoNetworkingInd v_gnInd; var template (value) Payload v_payload; // Test component configuration f_cfPtcUp(p_eut); // Preamble f_prDefault(); f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body tc_ac.start; alt { [] geoNetworkingPort.receive( // Filter broadcasted DENM Loading @@ -1445,9 +1441,19 @@ module ItsAutoInterop_TestCases { m_forward_geoNetworkingInd( v_gnInd )); tc_ac.start; repeat; log("*** " & testcasename() & ": INFO: EUT1 sends a GBC packet ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: EUT1 does not send requested DEN message ***"); f_selfOrClientSyncAndVerdict(c_prDone, e_timeout); } } // Test Body f_selfOrClientSyncAndVerdict(c_initDone, e_success); tc_ac.start; alt { [] geoNetworkingPort.receive( mw_geoNwInd_withLinkLayerDestination( mw_geoNwPdu( Loading @@ -1465,7 +1471,7 @@ module ItsAutoInterop_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { log("*** " & testcasename() & ": PASS: Forwarding message scenario (GREEDY, GREEDY, GREEDY) succeed ***"); log("*** " & testcasename() & ": PASS: Geo-broadcast message caching scenario succeed ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } Loading Loading @@ -1506,9 +1512,11 @@ module ItsAutoInterop_TestCases { e_btpB, mw_denm_stationId( PX_EUT_DESC[PX_EUT1_ID].stationId ))))) -> value v_eutGeoNw { // Unexpected DEN message ))))) -> value v_eutGeoNw { // EUT2 receives the GBC packet from EUT1 tc_ac.stop; // Now, we have to check for EUT4 to broadcast the DENM message // Here, GBC packet should be buffered f_selfOrClientSyncAndVerdict(c_initDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); tc_ac.start; repeat; } Loading @@ -1529,7 +1537,7 @@ module ItsAutoInterop_TestCases { f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Forwarding message scenario (GREEDY, GREEDY, GREEDY) is incomplete ***"); log("*** " & testcasename() & ": FAIL: Geo-broadcast message caching scenario is incomplete ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } // End of 'alt' statement Loading @@ -1551,7 +1559,6 @@ module ItsAutoInterop_TestCases { // Local variables var GeoNetworkingInd v_gnInd; var EutGeoNetworking v_eutGeoNw; var integer v_denm_counter := 0; // Test component configuration f_cfPtcUp(p_eut); Loading @@ -1561,6 +1568,9 @@ module ItsAutoInterop_TestCases { f_selfOrClientSyncAndVerdict(c_prDone, e_success); // Test Body f_selfOrClientSyncAndVerdict(c_initDone, e_success); // EUT2 and EUT4 become on-link ItsAutoInterop_Functions.f_utTriggerEvent(UtAutoInteropTrigger:{utRadioOnOff := true}); tc_ac.start; alt { [] eutGeoNetworkingPort.receive( Loading Loading @@ -1598,11 +1608,11 @@ module ItsAutoInterop_TestCases { m_forward_geoNetworkingInd( v_gnInd )); log("*** " & testcasename() & ": PASS: Forwarding message scenario (GREEDY, GREEDY, GREEDY) succeed ***"); log("*** " & testcasename() & ": PASS: Geo-broadcast message caching scenario succeed ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Forwarding message scenario (GREEDY, GREEDY, GREEDY) is incomplete ***"); log("*** " & testcasename() & ": FAIL: Geo-broadcast message caching scenario is incomplete ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } // End of 'alt' statement Loading Loading @@ -1693,7 +1703,7 @@ module ItsAutoInterop_TestCases { v_eut3.start(f_TC_AUTO_IOT_CAM_NBD_BV_01_eut(v_eut3, PX_EUT3_ID)); // Synchronization f_serverSyncNClientsAndStop(3, {c_prDone, c_tbDone, c_poDone}); f_serverSyncNClientsAndStop(3, {c_prDone, c_tbDone}); // Cleanup f_mtcCf03Down(v_eut1, v_eut2, v_eut3); Loading Loading @@ -1733,7 +1743,7 @@ module ItsAutoInterop_TestCases { // Test Body tc_wait.start; alt { // TODO Add beacon support alt { [] geoNetworkingPort.receive( // Filter broadcasted CAM mw_geoNwInd_withLinkLayerDestination( mw_geoNwPdu( Loading @@ -1754,20 +1764,21 @@ module ItsAutoInterop_TestCases { )); repeat; } [] eutGeoNetworkingPort.receive( mw_eutGeoNwInd_withLinkLayerDestination( [] geoNetworkingPort.receive( // Filter broadcasted beacon mw_geoNwInd_withLinkLayerDestination( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam( ?, ?, e_btpB, mw_cam_stationId( -, PX_EUT_DESC[p_eut_id].stationId ))), mw_geoNwShbPacket( mw_longPosVectorAny( mw_gnAddressMid( complement(PX_EUT_DESC[p_eut_id].mid ))))), c_llBroadcast )) { // Receives a broadcast MAC address // Receive CAM from other EUTs )) -> value v_gnInd { // Receives a broadcast MAC address // Broadcast Beacon message to the other EUTs eutGeoNetworkingPort.send( m_forward_geoNetworkingInd( v_gnInd )); repeat; } [] hmiPort.receive( Loading Loading @@ -2002,50 +2013,6 @@ module ItsAutoInterop_TestCases { repeat; } // else, nothing to do } [] geoNetworkingPort.receive( // TODO Move to default mw_geoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam ))) { tc_ac.stop; tc_ac.start; repeat; } [] eutGeoNetworkingPort.receive( // TODO Move to default mw_eutGeoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam ))) { tc_ac.stop; tc_ac.start; repeat; } [] geoNetworkingPort.receive( // TODO Move to default mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_denm( ?, ?, e_btpB, mw_denm_stationId )))) { tc_ac.stop; tc_ac.start; repeat; } [] eutGeoNetworkingPort.receive( // TODO Move to default mw_eutGeoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_denm( ?, ?, e_btpB, mw_denm_stationId )))) { tc_ac.stop; tc_ac.start; repeat; } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM messages for EUT ", PX_EUT_DESC[p_eut_id].stationId, " not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); Loading Loading @@ -2180,50 +2147,6 @@ module ItsAutoInterop_TestCases { repeat; } // else, nothing to do } [] geoNetworkingPort.receive( // TODO Move to default mw_geoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam ))) { tc_ac.stop; tc_ac.start; repeat; } [] eutGeoNetworkingPort.receive( // TODO Move to default mw_eutGeoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam ))) { tc_ac.stop; tc_ac.start; repeat; } [] geoNetworkingPort.receive( // TODO Move to default mw_geoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_denm( ?, ?, e_btpB, mw_denm_stationId )))) { tc_ac.stop; tc_ac.start; repeat; } [] eutGeoNetworkingPort.receive( // TODO Move to default mw_eutGeoNwInd( mw_geoNwPdu( mw_geoNwTsbPacketWithNextHeader_denm( ?, ?, e_btpB, mw_denm_stationId )))) { tc_ac.stop; tc_ac.start; repeat; } [] tc_ac.timeout { log("*** " & testcasename() & ": INCONC: CAM messages for EUT ", PX_EUT_DESC[p_eut_id].stationId, " not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); Loading Loading @@ -2314,8 +2237,8 @@ module ItsAutoInterop_TestCases { // Preamble // Start components v_eut1.start(f_TC_AUTO_IOT_GN_DAD_BV_01_eut(v_eut1, PX_EUT1_ID)); v_eut2.start(f_TC_AUTO_IOT_GN_DAD_BV_01_eut(v_eut2, PX_EUT2_ID)); v_eut1.start(f_TC_AUTO_IOT_GN_DAD_BV_01_eut(v_eut1, PX_EUT1_ID, PX_EUT2_ID)); v_eut2.start(f_TC_AUTO_IOT_GN_DAD_BV_01_eut(v_eut2, PX_EUT2_ID, PX_EUT1_ID)); // Synchronization f_serverSyncNClientsAndStop(2, {c_prDone, c_tbDone}); Loading @@ -2332,14 +2255,15 @@ module ItsAutoInterop_TestCases { */ function f_TC_AUTO_IOT_GN_DAD_BV_01_eut( in ItsAutoInteropGeonetworking p_eut, in integer p_eut_id in integer p_eut_id, in integer p_eut_id_neighbour ) runs on ItsAutoInteropGeonetworking { // Local variables var GeoNetworkingInd v_gnInd; var EutGeoNetworking v_eutGeoNw; var GN_Address v_gnAddr; var boolean v_getFirstCam := false; var HmiNeighborEventInds v_hmiNeighborEventInds; // Test component configuration f_cfPtcUp(p_eut); Loading Loading @@ -2392,32 +2316,44 @@ module ItsAutoInterop_TestCases { m_forward_geoNetworkingInd( v_gnInd )); log("*** " & testcasename() & ": PASS: Test done ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] geoNetworkingPort.receive( // TODO To be moved in a default mw_geoNwInd( mw_geoNwPdu( mw_geoNwShbPacketWithNextHeader_cam( ?, ?, e_btpB, mw_cam_stationId( -, PX_EUT_DESC[p_eut_id].stationId ))))) -> value v_gnInd { // Receive a CAM message // Re-send CA message to the other EUTs eutGeoNetworkingPort.send( m_forward_geoNetworkingInd( v_gnInd )); repeat; tc_wait.stop; log("*** " & testcasename() & ": INFO: GN duplicated address conflict resolved ***"); hmiPort.clear; } [] tc_wait.timeout { log("*** " & testcasename() & ": INCONC: Expected CA message not received ***"); log("*** " & testcasename() & ": INCONC: GN duplicate address conflict scenario is incomplete ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } // End of 'alt' statement tc_ac.start; alt { // Check neighbours [] hmiPort.receive( HmiNeighborEventInds:? ) -> value v_hmiNeighborEventInds { var boolean v_found := false; tc_ac.stop; for (var integer v_i := 0; v_i < lengthof(v_hmiNeighborEventInds); v_i := v_i + 1) { if ( (PX_EUT_DESC[p_eut_id_neighbour].mid == v_hmiNeighborEventInds[v_i].mid) and (PX_EUT_DESC[p_eut_id_neighbour].stationId == v_hmiNeighborEventInds[v_i].stationId) ) { v_found := true; break; // Got it, leave the loop } // else, continue } // End of 'for' statement if (v_found) { log("*** " & testcasename() & ": PASS: GN duplicate address conflict scenario compeleted for EUT ", PX_EUT_DESC[p_eut_id].stationId, "***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: GN duplicate address conflict scenario is incomplete ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { log("*** " & testcasename() & ": FAIL: Expected message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } // Postamble f_poDefault(); Loading