This is where you want to use JUnit assumptions so you get visibility for skipped tests.
Gary On Sat, Apr 6, 2024, 12:54 PM <t...@apache.org> wrote: > This is an automated email from the ASF dual-hosted git repository. > > tv pushed a commit to branch release-3.2.1 > in repository https://gitbox.apache.org/repos/asf/commons-jcs.git > > commit fe20ca994803b353c32fd0909621d822ee26263c > Author: Thomas Vandahl <t...@apache.org> > AuthorDate: Sat Apr 6 18:53:29 2024 +0200 > > Skip multicast tests when no multicast interface is available > --- > .../UDPDiscoverySenderEncryptedUnitTest.java | 33 +++++++-- > .../discovery/UDPDiscoverySenderUnitTest.java | 83 > ++++++++++++++++------ > .../jcs3/utils/discovery/UDPDiscoveryUnitTest.java | 11 +++ > 3 files changed, 100 insertions(+), 27 deletions(-) > > diff --git > a/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoverySenderEncryptedUnitTest.java > b/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoverySenderEncryptedUnitTest.java > index bb462ef3..492f1ca3 100644 > --- > a/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoverySenderEncryptedUnitTest.java > +++ > b/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoverySenderEncryptedUnitTest.java > @@ -30,6 +30,7 @@ import java.util.concurrent.TimeUnit; > import java.util.concurrent.TimeoutException; > > import > org.apache.commons.jcs3.utils.discovery.UDPDiscoveryMessage.BroadcastType; > +import org.apache.commons.jcs3.utils.net.HostNameUtil; > import org.apache.commons.jcs3.utils.serialization.EncryptingSerializer; > > import junit.framework.TestCase; > @@ -57,7 +58,6 @@ public class UDPDiscoverySenderEncryptedUnitTest > > /** sender instance for tests */ > private UDPDiscoverySender sender; > - > > /** > * Set up the receiver. Maybe better to just code sockets here? Set > up the sender for sending > @@ -73,7 +73,7 @@ public class UDPDiscoverySenderEncryptedUnitTest > > EncryptingSerializer serializer = new EncryptingSerializer(); > serializer.setPreSharedKey("my_key"); > - > + > receiver = new UDPDiscoveryReceiver( null, null, ADDRESS, PORT ); > receiver.setSerializer(serializer); > final Thread t = new Thread( receiver ); > @@ -104,6 +104,12 @@ public class UDPDiscoverySenderEncryptedUnitTest > public void testPassiveBroadcast() > throws Exception > { > + if (HostNameUtil.getMulticastNetworkInterface() == null) > + { > + System.out.println("This machine does not support multicast"); > + return; > + } > + > // SETUP > final ArrayList<String> cacheNames = new ArrayList<>(); > > @@ -126,6 +132,12 @@ public class UDPDiscoverySenderEncryptedUnitTest > public void testRemoveBroadcast() > throws Exception > { > + if (HostNameUtil.getMulticastNetworkInterface() == null) > + { > + System.out.println("This machine does not support multicast"); > + return; > + } > + > // SETUP > final ArrayList<String> cacheNames = new ArrayList<>(); > > @@ -148,6 +160,12 @@ public class UDPDiscoverySenderEncryptedUnitTest > public void testRequestBroadcast() > throws Exception > { > + if (HostNameUtil.getMulticastNetworkInterface() == null) > + { > + System.out.println("This machine does not support multicast"); > + return; > + } > + > // DO WORK > sender.requestBroadcast(); > > @@ -157,25 +175,26 @@ public class UDPDiscoverySenderEncryptedUnitTest > assertNotNull("message not received", msg); > assertEquals( "wrong message type", BroadcastType.REQUEST, > msg.getMessageType() ); > > - > + > } > - > + > /** > * Wait for multicast message for 3 seconds > - * > + * > * @return the object message or null if nothing received within 3 > seconds > */ > private UDPDiscoveryMessage getMessage() { > ExecutorService executor = Executors.newCachedThreadPool(); > Callable<Object> task = new Callable<Object>() { > - public Object call() throws IOException { > + @Override > + public Object call() throws IOException { > return receiver.waitForMessage(); > } > }; > Future<Object> future = executor.submit(task); > try { > Object obj = future.get(3, TimeUnit.SECONDS); > - > + > assertTrue( "unexpected crap received", obj instanceof > UDPDiscoveryMessage ); > > return (UDPDiscoveryMessage) obj; > diff --git > a/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoverySenderUnitTest.java > b/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoverySenderUnitTest.java > index 4e403f68..3cad2d7c 100644 > --- > a/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoverySenderUnitTest.java > +++ > b/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoverySenderUnitTest.java > @@ -1,10 +1,5 @@ > package org.apache.commons.jcs3.utils.discovery; > > -import java.util.ArrayList; > - > -import > org.apache.commons.jcs3.utils.discovery.UDPDiscoveryMessage.BroadcastType; > -import org.apache.commons.jcs3.utils.serialization.StandardSerializer; > - > /* > * Licensed to the Apache Software Foundation (ASF) under one > * or more contributor license agreements. See the NOTICE file > @@ -24,6 +19,20 @@ import > org.apache.commons.jcs3.utils.serialization.StandardSerializer; > * under the License. > */ > > +import java.io.IOException; > +import java.util.ArrayList; > +import java.util.concurrent.Callable; > +import java.util.concurrent.ExecutionException; > +import java.util.concurrent.ExecutorService; > +import java.util.concurrent.Executors; > +import java.util.concurrent.Future; > +import java.util.concurrent.TimeUnit; > +import java.util.concurrent.TimeoutException; > + > +import > org.apache.commons.jcs3.utils.discovery.UDPDiscoveryMessage.BroadcastType; > +import org.apache.commons.jcs3.utils.net.HostNameUtil; > +import org.apache.commons.jcs3.utils.serialization.StandardSerializer; > + > import junit.framework.TestCase; > > /** > @@ -92,6 +101,12 @@ public class UDPDiscoverySenderUnitTest > public void testPassiveBroadcast() > throws Exception > { > + if (HostNameUtil.getMulticastNetworkInterface() == null) > + { > + System.out.println("This machine does not support multicast"); > + return; > + } > + > // SETUP > final ArrayList<String> cacheNames = new ArrayList<>(); > > @@ -100,11 +115,8 @@ public class UDPDiscoverySenderUnitTest > > // VERIFY > // grab the sent message > - final Object obj = receiver.waitForMessage() ; > - > - assertTrue( "unexpected crap received", obj instanceof > UDPDiscoveryMessage ); > - > - final UDPDiscoveryMessage msg = (UDPDiscoveryMessage) obj; > + final UDPDiscoveryMessage msg = getMessage(); > + assertNotNull("message not received", msg); > // disabled test because of JCS-89 > // assertEquals( "wrong host", SENDING_HOST, msg.getHost() ); > assertEquals( "wrong port", SENDING_PORT, msg.getPort() ); > @@ -119,6 +131,12 @@ public class UDPDiscoverySenderUnitTest > public void testRemoveBroadcast() > throws Exception > { > + if (HostNameUtil.getMulticastNetworkInterface() == null) > + { > + System.out.println("This machine does not support multicast"); > + return; > + } > + > // SETUP > final ArrayList<String> cacheNames = new ArrayList<>(); > > @@ -127,11 +145,8 @@ public class UDPDiscoverySenderUnitTest > > // VERIFY > // grab the sent message > - final Object obj = receiver.waitForMessage(); > - > - assertTrue( "unexpected crap received", obj instanceof > UDPDiscoveryMessage ); > - > - final UDPDiscoveryMessage msg = (UDPDiscoveryMessage) obj; > + final UDPDiscoveryMessage msg = getMessage(); > + assertNotNull("message not received", msg); > // disabled test because of JCS-89 > // assertEquals( "wrong host", SENDING_HOST, msg.getHost() ); > assertEquals( "wrong port", SENDING_PORT, msg.getPort() ); > @@ -146,16 +161,44 @@ public class UDPDiscoverySenderUnitTest > public void testRequestBroadcast() > throws Exception > { > + if (HostNameUtil.getMulticastNetworkInterface() == null) > + { > + System.out.println("This machine does not support multicast"); > + return; > + } > + > // DO WORK > sender.requestBroadcast(); > > // VERIFY > // grab the sent message > - final Object obj = receiver.waitForMessage(); > - > - assertTrue( "unexpected crap received", obj instanceof > UDPDiscoveryMessage ); > - > - final UDPDiscoveryMessage msg = (UDPDiscoveryMessage) obj; > + final UDPDiscoveryMessage msg = getMessage(); > + assertNotNull("message not received", msg); > assertEquals( "wrong message type", BroadcastType.REQUEST, > msg.getMessageType() ); > } > + > + /** > + * Wait for multicast message for 3 seconds > + * > + * @return the object message or null if nothing received within 3 > seconds > + */ > + private UDPDiscoveryMessage getMessage() { > + ExecutorService executor = Executors.newCachedThreadPool(); > + Callable<Object> task = new Callable<Object>() { > + @Override > + public Object call() throws IOException { > + return receiver.waitForMessage(); > + } > + }; > + Future<Object> future = executor.submit(task); > + try { > + Object obj = future.get(3, TimeUnit.SECONDS); > + > + assertTrue( "unexpected crap received", obj instanceof > UDPDiscoveryMessage ); > + > + return (UDPDiscoveryMessage) obj; > + } catch (InterruptedException | ExecutionException | > TimeoutException ex) { > + return null; > + } > + } > } > diff --git > a/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoveryUnitTest.java > b/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoveryUnitTest.java > index 719aa7d6..02e707e4 100644 > --- > a/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoveryUnitTest.java > +++ > b/commons-jcs-core/src/test/java/org/apache/commons/jcs3/utils/discovery/UDPDiscoveryUnitTest.java > @@ -21,6 +21,7 @@ package org.apache.commons.jcs3.utils.discovery; > > import java.util.ArrayList; > > +import org.apache.commons.jcs3.utils.net.HostNameUtil; > import org.apache.commons.jcs3.utils.serialization.StandardSerializer; > import org.apache.commons.jcs3.utils.timing.SleepUtil; > > @@ -39,6 +40,11 @@ public class UDPDiscoveryUnitTest > public void testSimpleUDPDiscoveryIPv4() > throws Exception > { > + if (HostNameUtil.getMulticastNetworkInterface() == null) > + { > + System.out.println("This machine does not support multicast"); > + return; > + } > simpleUDPDiscovery("228.5.6.7"); > } > > @@ -49,6 +55,11 @@ public class UDPDiscoveryUnitTest > public void testSimpleUDPDiscoveryIPv6() > throws Exception > { > + if (HostNameUtil.getMulticastNetworkInterface() == null) > + { > + System.out.println("This machine does not support multicast"); > + return; > + } > simpleUDPDiscovery("FF02::5678"); > } > > >