From b6612137bab8726d1374be164c5109bf68a87b64 Mon Sep 17 00:00:00 2001 From: terry-norbraten <tnorb@comcast.net> Date: Fri, 26 Jun 2020 19:56:02 -0600 Subject: [PATCH] can figure it out. Since going to NB 12, upgrading Junit5, SignalPdusTest fails due to twice the packets received than sent when run in conjunction with all unit tests? Will test successfully when run as a single test though, weird... --- .../nps/moves/dis7/BitFieldRoundTripTest.java | 11 ++- test/edu/nps/moves/dis7/CommentPdusTest.java | 13 +++- .../moves/dis7/DataQueryPduRoundTripTest.java | 15 +++- .../FixedAndVariableDatumRoundTripTest.java | 20 ++--- test/edu/nps/moves/dis7/SignalPdusTest.java | 77 ++++++++++--------- 5 files changed, 82 insertions(+), 54 deletions(-) diff --git a/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java b/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java index 602e02052d..733fdf0dfa 100644 --- a/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java +++ b/test/edu/nps/moves/dis7/BitFieldRoundTripTest.java @@ -17,6 +17,7 @@ public class BitFieldRoundTripTest { Pdu receivedPdu; DisThreadedNetIF netif; + DisThreadedNetIF.PduListener lis; @BeforeAll public static void setUpClass() @@ -33,12 +34,19 @@ public class BitFieldRoundTripTest public void setUp() { netif = new DisThreadedNetIF(); - netif.addListener(pdu -> setUpReceiver(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + setUpReceiver(pdu); + } + }; + netif.addListener(lis); } @AfterEach public void tearDown() { + netif.removeListener(lis); netif.kill(); netif = null; } @@ -69,7 +77,6 @@ public class BitFieldRoundTripTest .set(LandPlatformAppearance.IS_FROZEN,1); try { - Thread.sleep(250l); // make sure receiver is listening netif.send(espdu); Thread.sleep(100l); } diff --git a/test/edu/nps/moves/dis7/CommentPdusTest.java b/test/edu/nps/moves/dis7/CommentPdusTest.java index daceed84eb..c376e8155f 100644 --- a/test/edu/nps/moves/dis7/CommentPdusTest.java +++ b/test/edu/nps/moves/dis7/CommentPdusTest.java @@ -15,6 +15,7 @@ public class CommentPdusTest { DisThreadedNetIF netif; Pdu receivedPdu; + DisThreadedNetIF.PduListener lis; @BeforeAll public static void setUpClass() @@ -29,14 +30,21 @@ public class CommentPdusTest @BeforeEach public void setUp() - { + { netif = new DisThreadedNetIF(); - netif.addListener(pdu -> setUpReceiver(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + setUpReceiver(pdu); + } + }; + netif.addListener(lis); } @AfterEach public void tearDown() { + netif.removeListener(lis); netif.kill(); netif = null; } @@ -68,7 +76,6 @@ public class CommentPdusTest private void sendPdu(Pdu pdu) { try { - Thread.sleep(250l); // make sure receiver is listening netif.send(pdu); Thread.sleep(100l); } diff --git a/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java b/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java index 84fafbb9a4..e11bf3c478 100644 --- a/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java +++ b/test/edu/nps/moves/dis7/DataQueryPduRoundTripTest.java @@ -16,6 +16,7 @@ public class DataQueryPduRoundTripTest Pdu receivedPdu; DisThreadedNetIF netif; + DisThreadedNetIF.PduListener lis; @BeforeAll public static void setUpClass() @@ -30,14 +31,21 @@ public class DataQueryPduRoundTripTest @BeforeEach public void setUp() - { + { netif = new DisThreadedNetIF(); - netif.addListener(pdu -> setUpReceiver(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + setUpReceiver(pdu); + } + }; + netif.addListener(lis); } @AfterEach public void tearDown() { + netif.removeListener(lis); netif.kill(); netif = null; } @@ -99,9 +107,8 @@ public class DataQueryPduRoundTripTest sendingPdu.getVariableDatums().add(variableDatum2); try { - Thread.sleep(250l); // make sure receiver is listening netif.send(sendingPdu); - Thread.sleep(1000l); + Thread.sleep(100l); } catch (InterruptedException ex) { System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); diff --git a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java index 6f4cc2c7ac..04d331d215 100644 --- a/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java +++ b/test/edu/nps/moves/dis7/FixedAndVariableDatumRoundTripTest.java @@ -4,7 +4,6 @@ */ package edu.nps.moves.dis7; -import edu.nps.moves.dis7.enumerations.ActionResponseRequestStatus; import edu.nps.moves.dis7.enumerations.VariableRecordType; import edu.nps.moves.dis7.utilities.DisThreadedNetIF; import edu.nps.moves.dis7.utilities.PduFactory; @@ -16,6 +15,7 @@ public class FixedAndVariableDatumRoundTripTest { Pdu receivedPdu; DisThreadedNetIF netif; + DisThreadedNetIF.PduListener lis; @BeforeAll public static void setUpClass() @@ -32,19 +32,23 @@ public class FixedAndVariableDatumRoundTripTest public void setUp() { netif = new DisThreadedNetIF(); - netif.addListener(pdu -> setUpReceiver(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + setUpReceiver(pdu); + } + }; + netif.addListener(lis); } @AfterEach public void tearDown() { + netif.removeListener(lis); netif.kill(); netif = null; } - private static int REQUEST_ID = 0x00112233; - private static ActionResponseRequestStatus REQUEST_STATUS = ActionResponseRequestStatus.RETRANSMIT_REQUEST_LATER; - private static FixedDatum fixedDatum1 = new FixedDatum(); private static int fixedDatum1Value = 0x111111FF; private static VariableRecordType fixedDatum1VarRecordType = VariableRecordType.ACTIVATE_OWNSHIP; @@ -59,7 +63,6 @@ public class FixedAndVariableDatumRoundTripTest private static VariableRecordType variableDatum1Type = VariableRecordType.ACLS_AIRCRAFT_REPORT; private static String variableDatum1String = "varDatum1Value111"; private static byte[] variableDatum1Value = variableDatum1String.getBytes(); - private static int variableDatum1LengthInBits = variableDatum1String.length() * 8 - 1; // test private static VariableDatum variableDatum2 = new VariableDatum(); private static VariableRecordType variableDatum2Type = VariableRecordType.Z_ACCELERATION; @@ -77,11 +80,9 @@ public class FixedAndVariableDatumRoundTripTest variableDatum1.setVariableDatumID(variableDatum1Type); variableDatum1.setVariableDatumValue(variableDatum1Value); - //variableDatum1.setVariableDatumLength(variableDatum1LengthInBits); variableDatum2.setVariableDatumID(variableDatum2Type); variableDatum2.setVariableDatumValue(variableDatum2Value); - //variableDatum2.setVariableDatumLength(variableDatum2Value.length * 8); //in bits } @Test @@ -98,9 +99,8 @@ public class FixedAndVariableDatumRoundTripTest sentPdu.getVariableDatums().add(variableDatum2); try { - Thread.sleep(250l); // make sure receiver is listening netif.send(sentPdu); - Thread.sleep(1000l); + Thread.sleep(100l); } catch (InterruptedException ex) { System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); diff --git a/test/edu/nps/moves/dis7/SignalPdusTest.java b/test/edu/nps/moves/dis7/SignalPdusTest.java index 1ae60ffc7c..0c62da9652 100644 --- a/test/edu/nps/moves/dis7/SignalPdusTest.java +++ b/test/edu/nps/moves/dis7/SignalPdusTest.java @@ -29,30 +29,30 @@ import static org.junit.jupiter.api.Assertions.*; @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class SignalPdusTest { - DisThreadedNetIF netif; - List<Pdu> receivedPdus; - PduRecorder recorder; + static DisThreadedNetIF netif; + static DisThreadedNetIF.PduListener lis; + static List<Pdu> receivedPdus; + static PduRecorder recorder; - Semaphore mutex; - PduFactory pduFac; - List<Pdu> sentPdus; + static Semaphore mutex; + static PduFactory pduFac; + static List<Pdu> sentPdus; byte[] buff; int size; @BeforeAll public static void setUpClass() throws IOException { System.out.println("SignalPdusTest"); - } - - @AfterAll - public static void tearDownClass() throws IOException { - } - - @BeforeEach - public void setUp() throws IOException, InterruptedException { + recorder = new PduRecorder(); // default dir netif = recorder.getDisThreadedNetIF(); - netif.addListener(pdu -> handleReceivedPdu(pdu)); + lis = new DisThreadedNetIF.PduListener() { + @Override + public void incomingPdu(Pdu pdu) { + handleReceivedPdu(pdu); + } + }; + netif.addListener(lis); mutex = new Semaphore(1); @@ -80,21 +80,24 @@ public class SignalPdusTest { ((IntercomSignalPdu) pdu).setData("IntercomSignalPdu-testdata".getBytes()); sentPdus.add(pdu); - try { - Thread.sleep(250l); // give receive time to spool up - sentPdus.forEach(p -> netif.send(p)); - Thread.sleep(250l); // give receiver time to process - } catch (InterruptedException ex) { - fail("NetIF Send: " + ex); - } + sentPdus.forEach(p -> { + netif.send(p); + sleep(10l); // give receiver time to process + }); + } + + @AfterAll + public static void tearDownClass() throws IOException { + } + + @BeforeEach + public void setUp() throws IOException, InterruptedException { } @AfterEach public void tearDown() throws IOException { - sentPdus.clear(); - receivedPdus.clear(); + netif.removeListener(lis); recorder.end(); // kills the netif as well - mutex.release(); } @Test @@ -102,9 +105,6 @@ public class SignalPdusTest { public void testRoundTripNet() { System.out.println("testRoundTripNet"); - // Compare - assertEquals(sentPdus, receivedPdus, "Sent and received pdus not identical"); - // Let's see how these unmarshall receivedPdus.forEach(pdu -> { try { @@ -119,6 +119,9 @@ public class SignalPdusTest { Logger.getLogger(SignalPdusTest.class.getName()).log(Level.SEVERE, null, ex); } }); + + // Compare + assertEquals(sentPdus, receivedPdus, "Sent and received pdus not identical"); } @Test @@ -126,7 +129,6 @@ public class SignalPdusTest { public void testRoundTripLog() throws IOException, InterruptedException { System.out.println("testRoundTripLog"); - recorder.end(); // this finishes the 2nd log file so it can be played mutex.acquire(); Path path = Path.of(recorder.getLogFile()).getParent(); @@ -144,22 +146,27 @@ public class SignalPdusTest { mutex.acquire(); } + + private static void sleep(long ms) { + try { + Thread.sleep(ms); + } catch (InterruptedException ex) { + fail("NetIF Send: " + ex); + } + } - private void handleReceivedPdu(Pdu pdu) { + private static void handleReceivedPdu(Pdu pdu) { receivedPdus.add(pdu); } public static void main(String[] args) throws IOException, InterruptedException { + setUpClass(); + SignalPdusTest spt = new SignalPdusTest(); - - spt.setUp(); spt.testRoundTripNet(); spt.tearDown(); - - spt.setUp(); spt.testRoundTripLog(); - spt.tearDown(); } } -- GitLab