[ntcore] Change Java event mask to EnumSet (#4564)

Also convert NetworkTableInstance.getNetworkMode() to return EnumSet.
This commit is contained in:
Peter Johnson
2022-11-04 20:25:37 -07:00
committed by GitHub
parent fa44a07938
commit 5005e2ca04
12 changed files with 216 additions and 115 deletions

View File

@@ -8,10 +8,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import edu.wpi.first.util.WPIUtilJNI;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
@@ -64,7 +66,7 @@ class ConnectionListenerTest {
assertNotSame(poller, 0, "bad poller handle");
int handle =
NetworkTablesJNI.addListener(
poller, m_serverInst.getHandle(), NetworkTableEvent.kConnection);
poller, m_serverInst.getHandle(), EnumSet.of(NetworkTableEvent.Kind.kConnection));
assertNotSame(handle, 0, "bad listener handle");
// trigger a connect event
@@ -82,7 +84,7 @@ class ConnectionListenerTest {
assertEquals(1, events.length);
assertEquals(handle, events[0].listener);
assertNotNull(events[0].connInfo);
assertEquals(events[0].flags, NetworkTableEvent.kConnected);
assertTrue(events[0].is(NetworkTableEvent.Kind.kConnected));
// trigger a disconnect event
m_clientInst.stopClient();
@@ -103,7 +105,7 @@ class ConnectionListenerTest {
assertNotNull(events);
assertEquals(1, events.length);
assertEquals(handle, events[0].listener);
assertEquals(events[0].flags, NetworkTableEvent.kDisconnected);
assertTrue(events[0].is(NetworkTableEvent.Kind.kDisconnected));
}
private static int threadedPort = 10001;
@@ -155,7 +157,7 @@ class ConnectionListenerTest {
assertEquals(1, events.size());
assertEquals(handle, events.get(0).listener);
assertNotNull(events.get(0).connInfo);
assertEquals(events.get(0).flags, NetworkTableEvent.kConnected);
assertTrue(events.get(0).is(NetworkTableEvent.Kind.kConnected));
events.clear();
}
@@ -180,7 +182,7 @@ class ConnectionListenerTest {
assertEquals(1, events.size());
assertEquals(handle, events.get(0).listener);
assertNotNull(events.get(0).connInfo);
assertEquals(events.get(0).flags, NetworkTableEvent.kDisconnected);
assertTrue(events.get(0).is(NetworkTableEvent.Kind.kDisconnected));
}
}
}

View File

@@ -37,7 +37,7 @@ class LoggerTest {
// wait for client to report it's started, then wait another 0.1 sec
try {
int count = 0;
while ((m_clientInst.getNetworkMode() & NetworkTableInstance.kNetModeClient4) == 0) {
while (!m_clientInst.getNetworkMode().contains(NetworkTableInstance.NetworkMode.kClient4)) {
Thread.sleep(100);
count++;
if (count > 30) {

View File

@@ -6,9 +6,11 @@ package edu.wpi.first.networktables;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import edu.wpi.first.util.WPIUtilJNI;
import java.util.EnumSet;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
@@ -37,7 +39,8 @@ class TopicListenerTest {
// Use connection listener to ensure we've connected
int poller = NetworkTablesJNI.createListenerPoller(m_clientInst.getHandle());
NetworkTablesJNI.addListener(poller, m_clientInst.getHandle(), NetworkTableEvent.kConnected);
NetworkTablesJNI.addListener(
poller, m_clientInst.getHandle(), EnumSet.of(NetworkTableEvent.Kind.kConnected));
try {
if (WPIUtilJNI.waitForObjectTimeout(poller, 1.0)) {
fail("client didn't connect to server");
@@ -55,7 +58,8 @@ class TopicListenerTest {
connect();
final int poller = NetworkTablesJNI.createListenerPoller(m_serverInst.getHandle());
final int handle =
NetworkTablesJNI.addListener(poller, new String[] {"/foo"}, NetworkTableEvent.kPublish);
NetworkTablesJNI.addListener(
poller, new String[] {"/foo"}, EnumSet.of(NetworkTableEvent.Kind.kPublish));
// Trigger an event
m_clientInst.getEntry("/foo/bar").setDouble(1.0);
@@ -83,6 +87,6 @@ class TopicListenerTest {
assertNotNull(events[0].topicInfo);
assertEquals(m_serverInst.getTopic("/foo/bar"), events[0].topicInfo.getTopic());
assertEquals("/foo/bar", events[0].topicInfo.name);
assertEquals(NetworkTableEvent.kPublish, events[0].flags);
assertTrue(events[0].is(NetworkTableEvent.Kind.kPublish));
}
}