From a91887cda745ead701dc80a0ceb6b78d40885de8 Mon Sep 17 00:00:00 2001 From: Andrei Pozolotin Date: Mon, 21 Jan 2013 06:35:24 -0600 Subject: [PATCH] transport-udt tests should run only when provider class can be loaded and initialized --- .../channel/udt/nio/AbstractUdtTest.java | 39 +++++++++++++++++++ .../nio/NioUdtByteAcceptorChannelTest.java | 2 +- .../nio/NioUdtByteConnectorChannelTest.java | 2 +- .../nio/NioUdtByteRendezvousChannelTest.java | 2 +- .../nio/NioUdtMessageAcceptorChannelTest.java | 2 +- .../NioUdtMessageConnectorChannelTest.java | 2 +- .../NioUdtMessageRendezvousChannelTest.java | 2 +- .../channel/udt/nio/NioUdtProviderTest.java | 2 +- .../io/netty/channel/udt/util/UnitHelp.java | 14 +++++++ 9 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 transport-udt/src/test/java/io/netty/channel/udt/nio/AbstractUdtTest.java diff --git a/transport-udt/src/test/java/io/netty/channel/udt/nio/AbstractUdtTest.java b/transport-udt/src/test/java/io/netty/channel/udt/nio/AbstractUdtTest.java new file mode 100644 index 0000000000..c9808afa06 --- /dev/null +++ b/transport-udt/src/test/java/io/netty/channel/udt/nio/AbstractUdtTest.java @@ -0,0 +1,39 @@ +/* + * Copyright 2013 The Netty Project + * + * The Netty Project licenses this file to you under the Apache License, + * version 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + */ + +package io.netty.channel.udt.nio; + +import static org.junit.Assume.*; +import io.netty.channel.udt.util.UnitHelp; + +import org.junit.BeforeClass; + +import com.barchart.udt.SocketUDT; + +/** + * Base for UDT tests. + */ +public abstract class AbstractUdtTest { + + /** + * UDT test assumptions. + */ + @BeforeClass + public static void assumeConditions(){ + assumeTrue(UnitHelp.canLoadAndInitClass("com.barchart.udt.SocketUDT")); + } + +} diff --git a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteAcceptorChannelTest.java b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteAcceptorChannelTest.java index b5630010cc..7b4028eced 100644 --- a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteAcceptorChannelTest.java +++ b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteAcceptorChannelTest.java @@ -23,7 +23,7 @@ import org.slf4j.LoggerFactory; import static org.junit.Assert.*; -public class NioUdtByteAcceptorChannelTest { +public class NioUdtByteAcceptorChannelTest extends AbstractUdtTest { protected static final Logger log = LoggerFactory.getLogger(NioUdtByteAcceptorChannelTest.class); diff --git a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteConnectorChannelTest.java b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteConnectorChannelTest.java index b0952361c4..b5353aa4f3 100644 --- a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteConnectorChannelTest.java +++ b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteConnectorChannelTest.java @@ -23,7 +23,7 @@ import org.slf4j.LoggerFactory; import static org.junit.Assert.*; -public class NioUdtByteConnectorChannelTest { +public class NioUdtByteConnectorChannelTest extends AbstractUdtTest { protected static final Logger log = LoggerFactory.getLogger(NioUdtByteAcceptorChannelTest.class); diff --git a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteRendezvousChannelTest.java b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteRendezvousChannelTest.java index 658d1a3bc9..07dcd01af9 100644 --- a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteRendezvousChannelTest.java +++ b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtByteRendezvousChannelTest.java @@ -33,7 +33,7 @@ import java.util.concurrent.TimeUnit; import static org.junit.Assert.*; -public class NioUdtByteRendezvousChannelTest { +public class NioUdtByteRendezvousChannelTest extends AbstractUdtTest { protected static final Logger log = LoggerFactory.getLogger(NioUdtByteAcceptorChannelTest.class); diff --git a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageAcceptorChannelTest.java b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageAcceptorChannelTest.java index 999ae19a85..87833a7d24 100644 --- a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageAcceptorChannelTest.java +++ b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageAcceptorChannelTest.java @@ -23,7 +23,7 @@ import org.slf4j.LoggerFactory; import static org.junit.Assert.*; -public class NioUdtMessageAcceptorChannelTest { +public class NioUdtMessageAcceptorChannelTest extends AbstractUdtTest { protected static final Logger log = LoggerFactory.getLogger(NioUdtByteAcceptorChannelTest.class); diff --git a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageConnectorChannelTest.java b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageConnectorChannelTest.java index 408b1d3f00..8a1f2c2a72 100644 --- a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageConnectorChannelTest.java +++ b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageConnectorChannelTest.java @@ -23,7 +23,7 @@ import org.slf4j.LoggerFactory; import static org.junit.Assert.*; -public class NioUdtMessageConnectorChannelTest { +public class NioUdtMessageConnectorChannelTest extends AbstractUdtTest { protected static final Logger log = LoggerFactory.getLogger(NioUdtByteAcceptorChannelTest.class); diff --git a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageRendezvousChannelTest.java b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageRendezvousChannelTest.java index d44732941a..81bf66fb4b 100644 --- a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageRendezvousChannelTest.java +++ b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtMessageRendezvousChannelTest.java @@ -33,7 +33,7 @@ import java.util.concurrent.TimeUnit; import static org.junit.Assert.*; -public class NioUdtMessageRendezvousChannelTest { +public class NioUdtMessageRendezvousChannelTest extends AbstractUdtTest { protected static final Logger log = LoggerFactory.getLogger(NioUdtByteAcceptorChannelTest.class); diff --git a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtProviderTest.java b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtProviderTest.java index 567157ec05..842e829993 100644 --- a/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtProviderTest.java +++ b/transport-udt/src/test/java/io/netty/channel/udt/nio/NioUdtProviderTest.java @@ -22,7 +22,7 @@ import org.slf4j.LoggerFactory; import static org.junit.Assert.*; -public class NioUdtProviderTest { +public class NioUdtProviderTest extends AbstractUdtTest { protected static final Logger log = LoggerFactory.getLogger(NioUdtProviderTest.class); diff --git a/transport-udt/src/test/java/io/netty/channel/udt/util/UnitHelp.java b/transport-udt/src/test/java/io/netty/channel/udt/util/UnitHelp.java index e6b42e8e3f..ab8d839aac 100644 --- a/transport-udt/src/test/java/io/netty/channel/udt/util/UnitHelp.java +++ b/transport-udt/src/test/java/io/netty/channel/udt/util/UnitHelp.java @@ -40,6 +40,20 @@ public final class UnitHelp { private static final Logger log = LoggerFactory.getLogger(UnitHelp.class); private static final Pattern SPACES = Pattern.compile("\\s+"); + /** + * Verify class loading with class initialization. + */ + public static boolean canLoadAndInitClass(String name) { + try{ + Class.forName(name, true, UnitHelp.class.getClassLoader()); + log.info("Class load and init success."); + return true; + } catch(Throwable e){ + log.warn("Class load or init failure.", e); + return false; + } + } + /** * Zero out buffer. */