Skip to content
Snippets Groups Projects
Commit b6612137 authored by terry-norbraten's avatar terry-norbraten
Browse files

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...
parent a644ab68
No related branches found
No related tags found
No related merge requests found
...@@ -17,6 +17,7 @@ public class BitFieldRoundTripTest ...@@ -17,6 +17,7 @@ public class BitFieldRoundTripTest
{ {
Pdu receivedPdu; Pdu receivedPdu;
DisThreadedNetIF netif; DisThreadedNetIF netif;
DisThreadedNetIF.PduListener lis;
@BeforeAll @BeforeAll
public static void setUpClass() public static void setUpClass()
...@@ -33,12 +34,19 @@ public class BitFieldRoundTripTest ...@@ -33,12 +34,19 @@ public class BitFieldRoundTripTest
public void setUp() public void setUp()
{ {
netif = new DisThreadedNetIF(); netif = new DisThreadedNetIF();
netif.addListener(pdu -> setUpReceiver(pdu)); lis = new DisThreadedNetIF.PduListener() {
@Override
public void incomingPdu(Pdu pdu) {
setUpReceiver(pdu);
}
};
netif.addListener(lis);
} }
@AfterEach @AfterEach
public void tearDown() public void tearDown()
{ {
netif.removeListener(lis);
netif.kill(); netif.kill();
netif = null; netif = null;
} }
...@@ -69,7 +77,6 @@ public class BitFieldRoundTripTest ...@@ -69,7 +77,6 @@ public class BitFieldRoundTripTest
.set(LandPlatformAppearance.IS_FROZEN,1); .set(LandPlatformAppearance.IS_FROZEN,1);
try { try {
Thread.sleep(250l); // make sure receiver is listening
netif.send(espdu); netif.send(espdu);
Thread.sleep(100l); Thread.sleep(100l);
} }
......
...@@ -15,6 +15,7 @@ public class CommentPdusTest ...@@ -15,6 +15,7 @@ public class CommentPdusTest
{ {
DisThreadedNetIF netif; DisThreadedNetIF netif;
Pdu receivedPdu; Pdu receivedPdu;
DisThreadedNetIF.PduListener lis;
@BeforeAll @BeforeAll
public static void setUpClass() public static void setUpClass()
...@@ -29,14 +30,21 @@ public class CommentPdusTest ...@@ -29,14 +30,21 @@ public class CommentPdusTest
@BeforeEach @BeforeEach
public void setUp() public void setUp()
{ {
netif = new DisThreadedNetIF(); netif = new DisThreadedNetIF();
netif.addListener(pdu -> setUpReceiver(pdu)); lis = new DisThreadedNetIF.PduListener() {
@Override
public void incomingPdu(Pdu pdu) {
setUpReceiver(pdu);
}
};
netif.addListener(lis);
} }
@AfterEach @AfterEach
public void tearDown() public void tearDown()
{ {
netif.removeListener(lis);
netif.kill(); netif.kill();
netif = null; netif = null;
} }
...@@ -68,7 +76,6 @@ public class CommentPdusTest ...@@ -68,7 +76,6 @@ public class CommentPdusTest
private void sendPdu(Pdu pdu) private void sendPdu(Pdu pdu)
{ {
try { try {
Thread.sleep(250l); // make sure receiver is listening
netif.send(pdu); netif.send(pdu);
Thread.sleep(100l); Thread.sleep(100l);
} }
......
...@@ -16,6 +16,7 @@ public class DataQueryPduRoundTripTest ...@@ -16,6 +16,7 @@ public class DataQueryPduRoundTripTest
Pdu receivedPdu; Pdu receivedPdu;
DisThreadedNetIF netif; DisThreadedNetIF netif;
DisThreadedNetIF.PduListener lis;
@BeforeAll @BeforeAll
public static void setUpClass() public static void setUpClass()
...@@ -30,14 +31,21 @@ public class DataQueryPduRoundTripTest ...@@ -30,14 +31,21 @@ public class DataQueryPduRoundTripTest
@BeforeEach @BeforeEach
public void setUp() public void setUp()
{ {
netif = new DisThreadedNetIF(); netif = new DisThreadedNetIF();
netif.addListener(pdu -> setUpReceiver(pdu)); lis = new DisThreadedNetIF.PduListener() {
@Override
public void incomingPdu(Pdu pdu) {
setUpReceiver(pdu);
}
};
netif.addListener(lis);
} }
@AfterEach @AfterEach
public void tearDown() public void tearDown()
{ {
netif.removeListener(lis);
netif.kill(); netif.kill();
netif = null; netif = null;
} }
...@@ -99,9 +107,8 @@ public class DataQueryPduRoundTripTest ...@@ -99,9 +107,8 @@ public class DataQueryPduRoundTripTest
sendingPdu.getVariableDatums().add(variableDatum2); sendingPdu.getVariableDatums().add(variableDatum2);
try { try {
Thread.sleep(250l); // make sure receiver is listening
netif.send(sendingPdu); netif.send(sendingPdu);
Thread.sleep(1000l); Thread.sleep(100l);
} }
catch (InterruptedException ex) { catch (InterruptedException ex) {
System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); System.err.println("Error sending Multicast: " + ex.getLocalizedMessage());
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
*/ */
package edu.nps.moves.dis7; package edu.nps.moves.dis7;
import edu.nps.moves.dis7.enumerations.ActionResponseRequestStatus;
import edu.nps.moves.dis7.enumerations.VariableRecordType; import edu.nps.moves.dis7.enumerations.VariableRecordType;
import edu.nps.moves.dis7.utilities.DisThreadedNetIF; import edu.nps.moves.dis7.utilities.DisThreadedNetIF;
import edu.nps.moves.dis7.utilities.PduFactory; import edu.nps.moves.dis7.utilities.PduFactory;
...@@ -16,6 +15,7 @@ public class FixedAndVariableDatumRoundTripTest ...@@ -16,6 +15,7 @@ public class FixedAndVariableDatumRoundTripTest
{ {
Pdu receivedPdu; Pdu receivedPdu;
DisThreadedNetIF netif; DisThreadedNetIF netif;
DisThreadedNetIF.PduListener lis;
@BeforeAll @BeforeAll
public static void setUpClass() public static void setUpClass()
...@@ -32,19 +32,23 @@ public class FixedAndVariableDatumRoundTripTest ...@@ -32,19 +32,23 @@ public class FixedAndVariableDatumRoundTripTest
public void setUp() public void setUp()
{ {
netif = new DisThreadedNetIF(); netif = new DisThreadedNetIF();
netif.addListener(pdu -> setUpReceiver(pdu)); lis = new DisThreadedNetIF.PduListener() {
@Override
public void incomingPdu(Pdu pdu) {
setUpReceiver(pdu);
}
};
netif.addListener(lis);
} }
@AfterEach @AfterEach
public void tearDown() public void tearDown()
{ {
netif.removeListener(lis);
netif.kill(); netif.kill();
netif = null; 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 FixedDatum fixedDatum1 = new FixedDatum();
private static int fixedDatum1Value = 0x111111FF; private static int fixedDatum1Value = 0x111111FF;
private static VariableRecordType fixedDatum1VarRecordType = VariableRecordType.ACTIVATE_OWNSHIP; private static VariableRecordType fixedDatum1VarRecordType = VariableRecordType.ACTIVATE_OWNSHIP;
...@@ -59,7 +63,6 @@ public class FixedAndVariableDatumRoundTripTest ...@@ -59,7 +63,6 @@ public class FixedAndVariableDatumRoundTripTest
private static VariableRecordType variableDatum1Type = VariableRecordType.ACLS_AIRCRAFT_REPORT; private static VariableRecordType variableDatum1Type = VariableRecordType.ACLS_AIRCRAFT_REPORT;
private static String variableDatum1String = "varDatum1Value111"; private static String variableDatum1String = "varDatum1Value111";
private static byte[] variableDatum1Value = variableDatum1String.getBytes(); private static byte[] variableDatum1Value = variableDatum1String.getBytes();
private static int variableDatum1LengthInBits = variableDatum1String.length() * 8 - 1; // test
private static VariableDatum variableDatum2 = new VariableDatum(); private static VariableDatum variableDatum2 = new VariableDatum();
private static VariableRecordType variableDatum2Type = VariableRecordType.Z_ACCELERATION; private static VariableRecordType variableDatum2Type = VariableRecordType.Z_ACCELERATION;
...@@ -77,11 +80,9 @@ public class FixedAndVariableDatumRoundTripTest ...@@ -77,11 +80,9 @@ public class FixedAndVariableDatumRoundTripTest
variableDatum1.setVariableDatumID(variableDatum1Type); variableDatum1.setVariableDatumID(variableDatum1Type);
variableDatum1.setVariableDatumValue(variableDatum1Value); variableDatum1.setVariableDatumValue(variableDatum1Value);
//variableDatum1.setVariableDatumLength(variableDatum1LengthInBits);
variableDatum2.setVariableDatumID(variableDatum2Type); variableDatum2.setVariableDatumID(variableDatum2Type);
variableDatum2.setVariableDatumValue(variableDatum2Value); variableDatum2.setVariableDatumValue(variableDatum2Value);
//variableDatum2.setVariableDatumLength(variableDatum2Value.length * 8); //in bits
} }
@Test @Test
...@@ -98,9 +99,8 @@ public class FixedAndVariableDatumRoundTripTest ...@@ -98,9 +99,8 @@ public class FixedAndVariableDatumRoundTripTest
sentPdu.getVariableDatums().add(variableDatum2); sentPdu.getVariableDatums().add(variableDatum2);
try { try {
Thread.sleep(250l); // make sure receiver is listening
netif.send(sentPdu); netif.send(sentPdu);
Thread.sleep(1000l); Thread.sleep(100l);
} }
catch (InterruptedException ex) { catch (InterruptedException ex) {
System.err.println("Error sending Multicast: " + ex.getLocalizedMessage()); System.err.println("Error sending Multicast: " + ex.getLocalizedMessage());
......
...@@ -29,30 +29,30 @@ import static org.junit.jupiter.api.Assertions.*; ...@@ -29,30 +29,30 @@ import static org.junit.jupiter.api.Assertions.*;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class) @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class SignalPdusTest { public class SignalPdusTest {
DisThreadedNetIF netif; static DisThreadedNetIF netif;
List<Pdu> receivedPdus; static DisThreadedNetIF.PduListener lis;
PduRecorder recorder; static List<Pdu> receivedPdus;
static PduRecorder recorder;
Semaphore mutex; static Semaphore mutex;
PduFactory pduFac; static PduFactory pduFac;
List<Pdu> sentPdus; static List<Pdu> sentPdus;
byte[] buff; byte[] buff;
int size; int size;
@BeforeAll @BeforeAll
public static void setUpClass() throws IOException { public static void setUpClass() throws IOException {
System.out.println("SignalPdusTest"); System.out.println("SignalPdusTest");
}
@AfterAll
public static void tearDownClass() throws IOException {
}
@BeforeEach
public void setUp() throws IOException, InterruptedException {
recorder = new PduRecorder(); // default dir recorder = new PduRecorder(); // default dir
netif = recorder.getDisThreadedNetIF(); 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); mutex = new Semaphore(1);
...@@ -80,21 +80,24 @@ public class SignalPdusTest { ...@@ -80,21 +80,24 @@ public class SignalPdusTest {
((IntercomSignalPdu) pdu).setData("IntercomSignalPdu-testdata".getBytes()); ((IntercomSignalPdu) pdu).setData("IntercomSignalPdu-testdata".getBytes());
sentPdus.add(pdu); sentPdus.add(pdu);
try { sentPdus.forEach(p -> {
Thread.sleep(250l); // give receive time to spool up netif.send(p);
sentPdus.forEach(p -> netif.send(p)); sleep(10l); // give receiver time to process
Thread.sleep(250l); // give receiver time to process });
} catch (InterruptedException ex) { }
fail("NetIF Send: " + ex);
} @AfterAll
public static void tearDownClass() throws IOException {
}
@BeforeEach
public void setUp() throws IOException, InterruptedException {
} }
@AfterEach @AfterEach
public void tearDown() throws IOException { public void tearDown() throws IOException {
sentPdus.clear(); netif.removeListener(lis);
receivedPdus.clear();
recorder.end(); // kills the netif as well recorder.end(); // kills the netif as well
mutex.release();
} }
@Test @Test
...@@ -102,9 +105,6 @@ public class SignalPdusTest { ...@@ -102,9 +105,6 @@ public class SignalPdusTest {
public void testRoundTripNet() { public void testRoundTripNet() {
System.out.println("testRoundTripNet"); System.out.println("testRoundTripNet");
// Compare
assertEquals(sentPdus, receivedPdus, "Sent and received pdus not identical");
// Let's see how these unmarshall // Let's see how these unmarshall
receivedPdus.forEach(pdu -> { receivedPdus.forEach(pdu -> {
try { try {
...@@ -119,6 +119,9 @@ public class SignalPdusTest { ...@@ -119,6 +119,9 @@ public class SignalPdusTest {
Logger.getLogger(SignalPdusTest.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(SignalPdusTest.class.getName()).log(Level.SEVERE, null, ex);
} }
}); });
// Compare
assertEquals(sentPdus, receivedPdus, "Sent and received pdus not identical");
} }
@Test @Test
...@@ -126,7 +129,6 @@ public class SignalPdusTest { ...@@ -126,7 +129,6 @@ public class SignalPdusTest {
public void testRoundTripLog() throws IOException, InterruptedException { public void testRoundTripLog() throws IOException, InterruptedException {
System.out.println("testRoundTripLog"); System.out.println("testRoundTripLog");
recorder.end(); // this finishes the 2nd log file so it can be played
mutex.acquire(); mutex.acquire();
Path path = Path.of(recorder.getLogFile()).getParent(); Path path = Path.of(recorder.getLogFile()).getParent();
...@@ -144,22 +146,27 @@ public class SignalPdusTest { ...@@ -144,22 +146,27 @@ public class SignalPdusTest {
mutex.acquire(); 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); receivedPdus.add(pdu);
} }
public static void main(String[] args) throws IOException, InterruptedException { public static void main(String[] args) throws IOException, InterruptedException {
setUpClass();
SignalPdusTest spt = new SignalPdusTest(); SignalPdusTest spt = new SignalPdusTest();
spt.setUp();
spt.testRoundTripNet(); spt.testRoundTripNet();
spt.tearDown(); spt.tearDown();
spt.setUp();
spt.testRoundTripLog(); spt.testRoundTripLog();
spt.tearDown();
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment