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
{
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);
}
......
......@@ -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);
}
......
......@@ -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());
......
......@@ -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());
......
......@@ -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();
}
}
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