From 1b0a96620f57c19f000543a403bda1e9c3eab385 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Tue, 29 Nov 2016 14:35:06 +0100 Subject: [PATCH] Allow to build netty when sun.misc.Unsafe is not avaible or -Dio.netty.noUnsafe=true is used. Motivation: We support using Netty without sun.misc.Unsafe, so we should also support building it without it. This way we can also run all tests without sun.misc.Unsafe and so see if it works as expected. Modifications: Correctly skip tests that depend on sun.misc.Unsafe if its not present or -Dio.netty.noUnsafe=true is used. Result: Be able to build netty without sun.misc.Unsafe --- .../netty/buffer/BigEndianUnsafeDirectByteBufTest.java | 4 +++- .../BigEndianUnsafeNoCleanerDirectByteBufTest.java | 4 +++- .../buffer/LittleEndianUnsafeDirectByteBufTest.java | 4 +++- .../LittleEndianUnsafeNoCleanerDirectByteBufTest.java | 4 +++- .../buffer/ReadOnlyUnsafeDirectByteBufferBufTest.java | 3 ++- .../test/java/io/netty/buffer/UnsafeByteBufUtilTest.java | 7 +++++++ .../netty/buffer/WrappedUnpooledUnsafeByteBufTest.java | 9 +++++++++ 7 files changed, 30 insertions(+), 5 deletions(-) diff --git a/buffer/src/test/java/io/netty/buffer/BigEndianUnsafeDirectByteBufTest.java b/buffer/src/test/java/io/netty/buffer/BigEndianUnsafeDirectByteBufTest.java index 6b04c9ae84..01cf7e069c 100644 --- a/buffer/src/test/java/io/netty/buffer/BigEndianUnsafeDirectByteBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/BigEndianUnsafeDirectByteBufTest.java @@ -23,8 +23,10 @@ import org.junit.Before; public class BigEndianUnsafeDirectByteBufTest extends BigEndianDirectByteBufTest { @Before - public void checkHasUnsafe() { + @Override + public void init() { Assume.assumeTrue("sun.misc.Unsafe not found, skip tests", PlatformDependent.hasUnsafe()); + super.init(); } @Override diff --git a/buffer/src/test/java/io/netty/buffer/BigEndianUnsafeNoCleanerDirectByteBufTest.java b/buffer/src/test/java/io/netty/buffer/BigEndianUnsafeNoCleanerDirectByteBufTest.java index 0406c47cdb..c0cef5a3c5 100644 --- a/buffer/src/test/java/io/netty/buffer/BigEndianUnsafeNoCleanerDirectByteBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/BigEndianUnsafeNoCleanerDirectByteBufTest.java @@ -23,9 +23,11 @@ import org.junit.Before; public class BigEndianUnsafeNoCleanerDirectByteBufTest extends BigEndianDirectByteBufTest { @Before - public void checkHasUnsafe() { + @Override + public void init() { Assume.assumeTrue("java.nio.DirectByteBuffer.(long, int) not found, skip tests", PlatformDependent.useDirectBufferNoCleaner()); + super.init(); } @Override diff --git a/buffer/src/test/java/io/netty/buffer/LittleEndianUnsafeDirectByteBufTest.java b/buffer/src/test/java/io/netty/buffer/LittleEndianUnsafeDirectByteBufTest.java index a85b11884a..e99515ae76 100644 --- a/buffer/src/test/java/io/netty/buffer/LittleEndianUnsafeDirectByteBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/LittleEndianUnsafeDirectByteBufTest.java @@ -22,8 +22,10 @@ import org.junit.Before; public class LittleEndianUnsafeDirectByteBufTest extends LittleEndianDirectByteBufTest { @Before - public void checkHasUnsafe() { + @Override + public void init() { Assume.assumeTrue("sun.misc.Unsafe not found, skip tests", PlatformDependent.hasUnsafe()); + super.init(); } @Override diff --git a/buffer/src/test/java/io/netty/buffer/LittleEndianUnsafeNoCleanerDirectByteBufTest.java b/buffer/src/test/java/io/netty/buffer/LittleEndianUnsafeNoCleanerDirectByteBufTest.java index 3a4b0c43da..005cfd89a0 100644 --- a/buffer/src/test/java/io/netty/buffer/LittleEndianUnsafeNoCleanerDirectByteBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/LittleEndianUnsafeNoCleanerDirectByteBufTest.java @@ -22,9 +22,11 @@ import org.junit.Before; public class LittleEndianUnsafeNoCleanerDirectByteBufTest extends LittleEndianDirectByteBufTest { @Before - public void checkHasUnsafe() { + @Override + public void init() { Assume.assumeTrue("java.nio.DirectByteBuffer.(long, int) not found, skip tests", PlatformDependent.useDirectBufferNoCleaner()); + super.init(); } @Override diff --git a/buffer/src/test/java/io/netty/buffer/ReadOnlyUnsafeDirectByteBufferBufTest.java b/buffer/src/test/java/io/netty/buffer/ReadOnlyUnsafeDirectByteBufferBufTest.java index 1a69725a27..9307ddb34b 100644 --- a/buffer/src/test/java/io/netty/buffer/ReadOnlyUnsafeDirectByteBufferBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/ReadOnlyUnsafeDirectByteBufferBufTest.java @@ -16,6 +16,7 @@ package io.netty.buffer; import io.netty.util.internal.PlatformDependent; +import org.junit.Assume; import org.junit.BeforeClass; import java.nio.ByteBuffer; @@ -29,7 +30,7 @@ public class ReadOnlyUnsafeDirectByteBufferBufTest extends ReadOnlyDirectByteBuf */ @BeforeClass public static void assumeConditions() { - assumeTrue(PlatformDependent.hasUnsafe()); + assumeTrue("sun.misc.Unsafe not found, skip tests", PlatformDependent.hasUnsafe()); } @Override diff --git a/buffer/src/test/java/io/netty/buffer/UnsafeByteBufUtilTest.java b/buffer/src/test/java/io/netty/buffer/UnsafeByteBufUtilTest.java index 568700e519..461e3dd4ea 100644 --- a/buffer/src/test/java/io/netty/buffer/UnsafeByteBufUtilTest.java +++ b/buffer/src/test/java/io/netty/buffer/UnsafeByteBufUtilTest.java @@ -15,6 +15,9 @@ */ package io.netty.buffer; +import io.netty.util.internal.PlatformDependent; +import org.junit.Assume; +import org.junit.Before; import org.junit.Test; import java.nio.ByteBuffer; @@ -25,6 +28,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; public class UnsafeByteBufUtilTest { + @Before + public void checkHasUnsafe() { + Assume.assumeTrue("sun.misc.Unsafe not found, skip tests", PlatformDependent.hasUnsafe()); + } @Test public void testSetBytesOnReadOnlyByteBuffer() throws Exception { diff --git a/buffer/src/test/java/io/netty/buffer/WrappedUnpooledUnsafeByteBufTest.java b/buffer/src/test/java/io/netty/buffer/WrappedUnpooledUnsafeByteBufTest.java index 87145704b2..daa256b9ab 100644 --- a/buffer/src/test/java/io/netty/buffer/WrappedUnpooledUnsafeByteBufTest.java +++ b/buffer/src/test/java/io/netty/buffer/WrappedUnpooledUnsafeByteBufTest.java @@ -16,12 +16,21 @@ package io.netty.buffer; import io.netty.util.internal.PlatformDependent; +import org.junit.Assume; +import org.junit.Before; import org.junit.Test; import java.io.IOException; public class WrappedUnpooledUnsafeByteBufTest extends BigEndianUnsafeDirectByteBufTest { + @Before + @Override + public void init() { + Assume.assumeTrue("sun.misc.Unsafe not found, skip tests", PlatformDependent.hasUnsafe()); + super.init(); + } + @Override protected ByteBuf newBuffer(int length) { return new WrappedUnpooledUnsafeDirectByteBuf(UnpooledByteBufAllocator.DEFAULT,