From 0484610a9cc9713e9689aea954c4b43667540d17 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Thu, 15 Apr 2021 14:25:44 +0000 Subject: [PATCH] Junit 5: Run some tests which change static BYTE_ARRAY_MAX_OVERRIDE in isolation Otherwise many other tests can become flaky if the value is set very low git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1888792 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java | 5 +++-- .../java/org/apache/poi/hslf/dev/TestSlideShowDumper.java | 2 ++ poi/src/main/java/org/apache/poi/util/IOUtils.java | 2 +- poi/src/test/java/org/apache/poi/util/TestIOUtils.java | 4 +++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java index 6722f00f41..980d6538e8 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/BaseTestPPTIterating.java @@ -21,7 +21,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.File; import java.io.PrintStream; -import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -38,10 +37,12 @@ import org.apache.poi.util.IOUtils; import org.apache.poi.util.NullPrintStream; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.parallel.Isolated; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; +@Isolated // this test changes global static BYTE_ARRAY_MAX_OVERRIDE public abstract class BaseTestPPTIterating { protected static final Set OLD_FILES = new HashSet<>(); static { @@ -76,7 +77,7 @@ public abstract class BaseTestPPTIterating { private final PrintStream save = System.out; @BeforeEach - void setUpBase() throws UnsupportedEncodingException { + void setUpBase() { // set a higher max allocation limit as some test-files require more IOUtils.setByteArrayMaxOverride(5*1024*1024); diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java index 51b9ee5d69..5eecf4370f 100644 --- a/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java +++ b/poi-scratchpad/src/test/java/org/apache/poi/hslf/dev/TestSlideShowDumper.java @@ -29,7 +29,9 @@ import org.apache.poi.EmptyFileException; import org.apache.poi.hslf.HSLFTestDataSamples; import org.apache.poi.util.IOUtils; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; +@Isolated // this test changes global static BYTE_ARRAY_MAX_OVERRIDE public class TestSlideShowDumper extends BaseTestPPTIterating { private static final Set FAILING = new HashSet<>(); static { diff --git a/poi/src/main/java/org/apache/poi/util/IOUtils.java b/poi/src/main/java/org/apache/poi/util/IOUtils.java index 7853f68ac1..ec348b67a2 100644 --- a/poi/src/main/java/org/apache/poi/util/IOUtils.java +++ b/poi/src/main/java/org/apache/poi/util/IOUtils.java @@ -526,7 +526,7 @@ public final class IOUtils { private static void throwRFE(long length, int maxLength) { throw new RecordFormatException(String.format(Locale.ROOT, "Tried to allocate an array of length %,d" + - ", but the maximum lenght for this record type is %,d.\n" + + ", but the maximum length for this record type is %,d.\n" + "If the file is not corrupt, please open an issue on bugzilla to request \n" + "increasing the maximum allowable size for this record type.\n"+ "As a temporary workaround, consider setting a higher override value with " + diff --git a/poi/src/test/java/org/apache/poi/util/TestIOUtils.java b/poi/src/test/java/org/apache/poi/util/TestIOUtils.java index 19b64dd3c1..d09dc5912e 100644 --- a/poi/src/test/java/org/apache/poi/util/TestIOUtils.java +++ b/poi/src/test/java/org/apache/poi/util/TestIOUtils.java @@ -43,7 +43,9 @@ import org.apache.poi.EmptyFileException; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; +@Isolated // this test changes global static BYTE_ARRAY_MAX_OVERRIDE final class TestIOUtils { private static File TMP; private static final long LENGTH = 300 + new Random().nextInt(9000); @@ -531,7 +533,7 @@ final class TestIOUtils { } } - public class NullInputStream extends InputStream { + public static class NullInputStream extends InputStream { private final int bytes; private final boolean exception;