This is an automated email from the ASF dual-hosted git repository.

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new b32275662 Better test retention detection (#1632)
b32275662 is described below

commit b32275662b90f17f7ff6ad686a1817b9dba759d1
Author: Gary Gregory <[email protected]>
AuthorDate: Tue May 5 11:04:43 2026 -0400

    Better test retention detection (#1632)
    
    * Add testLang1641()
    
    * Rename some test methods
    
    * Better detection of retention bugs in tests
---
 .../apache/commons/lang3/AppendableJoinerTest.java  |   2 +-
 ...nsions.java => ArrayUtilsGetDimensionsTest.java} |   2 +-
 .../org/apache/commons/lang3/BitFieldLongTest.java  |   2 +-
 .../apache/commons/lang3/CachedRandomBitsTest.java  |   2 +-
 .../apache/commons/lang3/ClassUtilsOssFuzzTest.java | Bin 17081 -> 17106 bytes
 .../commons/lang3/ClassUtilsShortClassNameTest.java |   2 +-
 .../commons/lang3/RuntimeEnvironmentTest.java       |   2 +-
 .../commons/lang3/StringUtilsAbbreviateTest.java    |   2 +-
 .../commons/lang3/StringUtilsIsMixedCaseTest.java   |   2 +-
 .../java/org/apache/commons/lang3/StringsTest.java  |   2 +-
 .../apache/commons/lang3/SystemPropertiesTest.java  |   2 +-
 .../apache/commons/lang3/arch/ProcessorTest.java    |   3 ++-
 .../commons/lang3/builder/ConversionTest.java       |   3 ++-
 .../org/apache/commons/lang3/builder/IDKeyTest.java |   3 ++-
 .../commons/lang3/builder/TestClassBuilder.java     |   3 ++-
 .../lang3/concurrent/ConcurrentExceptionTest.java   |   3 ++-
 .../concurrent/ConcurrentRuntimeExceptionTest.java  |   3 ++-
 .../commons/lang3/function/ByteSupplierTest.java    |   3 ++-
 .../lang3/function/FailableSupplierTest.java        |   3 ++-
 .../commons/lang3/function/FunctionsTest.java       |   3 ++-
 .../commons/lang3/function/PredicatesTest.java      |   3 ++-
 .../commons/lang3/stream/FailableStreamTest.java    |   3 ++-
 .../commons/lang3/stream/LangCollectorsTest.java    |   3 ++-
 .../apache/commons/lang3/time/TimeZonesTest.java    |   3 ++-
 .../lang3/util/IterableStringTokenizerTest.java     |   3 ++-
 25 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/src/test/java/org/apache/commons/lang3/AppendableJoinerTest.java 
b/src/test/java/org/apache/commons/lang3/AppendableJoinerTest.java
index d4dab91b1..9178714ec 100644
--- a/src/test/java/org/apache/commons/lang3/AppendableJoinerTest.java
+++ b/src/test/java/org/apache/commons/lang3/AppendableJoinerTest.java
@@ -35,7 +35,7 @@
 /**
  * Tests {@link AppendableJoiner}.
  */
-class AppendableJoinerTest {
+class AppendableJoinerTest extends AbstractLangTest {
 
     static class Fixture {
 
diff --git 
a/src/test/java/org/apache/commons/lang3/ArrayUtilsGetDimensions.java 
b/src/test/java/org/apache/commons/lang3/ArrayUtilsGetDimensionsTest.java
similarity index 98%
rename from src/test/java/org/apache/commons/lang3/ArrayUtilsGetDimensions.java
rename to 
src/test/java/org/apache/commons/lang3/ArrayUtilsGetDimensionsTest.java
index 10e1e6cac..035ca2ff0 100644
--- a/src/test/java/org/apache/commons/lang3/ArrayUtilsGetDimensions.java
+++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsGetDimensionsTest.java
@@ -26,7 +26,7 @@
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
 
-class ArrayUtilsGetDimensions {
+class ArrayUtilsGetDimensionsTest extends AbstractLangTest {
 
     // Tests cyclic references
     static class Node {
diff --git a/src/test/java/org/apache/commons/lang3/BitFieldLongTest.java 
b/src/test/java/org/apache/commons/lang3/BitFieldLongTest.java
index d43d3f31a..ad2c19a24 100644
--- a/src/test/java/org/apache/commons/lang3/BitFieldLongTest.java
+++ b/src/test/java/org/apache/commons/lang3/BitFieldLongTest.java
@@ -26,7 +26,7 @@
 /**
  * Tests {@link BitField} constructed with long masks.
  */
-class BitFieldLongTest {
+class BitFieldLongTest extends AbstractLangTest {
 
     private static final BitField BF_MULTI  = new BitField(0x3F80L);
     private static final BitField BF_MULTI_L  = new 
BitField(0x3F80_0000_0000_0000L);
diff --git a/src/test/java/org/apache/commons/lang3/CachedRandomBitsTest.java 
b/src/test/java/org/apache/commons/lang3/CachedRandomBitsTest.java
index 0c49c5cde..0efc8da53 100644
--- a/src/test/java/org/apache/commons/lang3/CachedRandomBitsTest.java
+++ b/src/test/java/org/apache/commons/lang3/CachedRandomBitsTest.java
@@ -28,7 +28,7 @@
 /**
  * Tests {@link CachedRandomBits}.
  */
-class CachedRandomBitsTest {
+class CachedRandomBitsTest extends AbstractLangTest {
 
     /** MockRandom mocks a Random class nextBytes to use a specific list of 
outputs */
     private static class MockRandom extends Random {
diff --git a/src/test/java/org/apache/commons/lang3/ClassUtilsOssFuzzTest.java 
b/src/test/java/org/apache/commons/lang3/ClassUtilsOssFuzzTest.java
index 3c9d39ea2..e43e18924 100644
Binary files 
a/src/test/java/org/apache/commons/lang3/ClassUtilsOssFuzzTest.java and 
b/src/test/java/org/apache/commons/lang3/ClassUtilsOssFuzzTest.java differ
diff --git 
a/src/test/java/org/apache/commons/lang3/ClassUtilsShortClassNameTest.java 
b/src/test/java/org/apache/commons/lang3/ClassUtilsShortClassNameTest.java
index 89282b295..d8cbae0b8 100644
--- a/src/test/java/org/apache/commons/lang3/ClassUtilsShortClassNameTest.java
+++ b/src/test/java/org/apache/commons/lang3/ClassUtilsShortClassNameTest.java
@@ -27,7 +27,7 @@ class $trange {
 /**
  * Tests {@link ClassUtils#getShortClassName(Class)} for <a 
href="https://issues.apache.org/jira/browse/LANG-1818";>LANG-1818</a>
  */
-public class ClassUtilsShortClassNameTest {
+public class ClassUtilsShortClassNameTest extends AbstractLangTest {
 
     class $Inner {
     }
diff --git a/src/test/java/org/apache/commons/lang3/RuntimeEnvironmentTest.java 
b/src/test/java/org/apache/commons/lang3/RuntimeEnvironmentTest.java
index f07c42798..a706a5aa7 100644
--- a/src/test/java/org/apache/commons/lang3/RuntimeEnvironmentTest.java
+++ b/src/test/java/org/apache/commons/lang3/RuntimeEnvironmentTest.java
@@ -33,7 +33,7 @@
 /**
  * Tests {@link RuntimeEnvironment}.
  */
-class RuntimeEnvironmentTest {
+class RuntimeEnvironmentTest extends AbstractLangTest {
 
     private static final String simpleEnviron = 
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\u0000" +
             "HOSTNAME=d62718b69f37\u0000TERM=xterm\u0000HOME=/root\u0000";
diff --git 
a/src/test/java/org/apache/commons/lang3/StringUtilsAbbreviateTest.java 
b/src/test/java/org/apache/commons/lang3/StringUtilsAbbreviateTest.java
index a48f023a2..3f753ba19 100644
--- a/src/test/java/org/apache/commons/lang3/StringUtilsAbbreviateTest.java
+++ b/src/test/java/org/apache/commons/lang3/StringUtilsAbbreviateTest.java
@@ -28,7 +28,7 @@
 /**
  * Tests {@link StringUtils#abbreviate(String, int)} and friends.
  */
-class StringUtilsAbbreviateTest {
+class StringUtilsAbbreviateTest extends AbstractLangTest {
 
     private void assertAbbreviateWithAbbrevMarkerAndOffset(final String 
expected, final String abbrevMarker, final int offset, final int maxWidth) {
         final String abcdefghijklmno = "abcdefghijklmno";
diff --git 
a/src/test/java/org/apache/commons/lang3/StringUtilsIsMixedCaseTest.java 
b/src/test/java/org/apache/commons/lang3/StringUtilsIsMixedCaseTest.java
index 7a4c8e8fd..531b6ab35 100644
--- a/src/test/java/org/apache/commons/lang3/StringUtilsIsMixedCaseTest.java
+++ b/src/test/java/org/apache/commons/lang3/StringUtilsIsMixedCaseTest.java
@@ -33,7 +33,7 @@
 @OutputTimeUnit(TimeUnit.NANOSECONDS)
 @State(Scope.Thread)
 @Warmup(iterations = 5, time = 10)
-public class StringUtilsIsMixedCaseTest {
+public class StringUtilsIsMixedCaseTest extends AbstractLangTest {
 
     public static final String LOWER_CASE_LETTERS = 
"abcdefghijklmnopqrstuvwxyz";
     public static final String END_MATCH = "at the enD";
diff --git a/src/test/java/org/apache/commons/lang3/StringsTest.java 
b/src/test/java/org/apache/commons/lang3/StringsTest.java
index 24090cc8b..5f74a80a5 100644
--- a/src/test/java/org/apache/commons/lang3/StringsTest.java
+++ b/src/test/java/org/apache/commons/lang3/StringsTest.java
@@ -30,7 +30,7 @@
 /**
  * Tests {@link Strings}.
  */
-class StringsTest {
+class StringsTest extends AbstractLangTest {
 
     public static Stream<Strings> stringsFactory() {
         return Stream.of(Strings.CS, Strings.CI);
diff --git a/src/test/java/org/apache/commons/lang3/SystemPropertiesTest.java 
b/src/test/java/org/apache/commons/lang3/SystemPropertiesTest.java
index ab79454cf..de4f70884 100644
--- a/src/test/java/org/apache/commons/lang3/SystemPropertiesTest.java
+++ b/src/test/java/org/apache/commons/lang3/SystemPropertiesTest.java
@@ -38,7 +38,7 @@
 @SetSystemProperties({
     @SetSystemProperty(key = SystemPropertiesTest.KEY_SPACE_1, value = 
"value1"),
     @SetSystemProperty(key = SystemPropertiesTest.KEY_TAB_1, value = "value2") 
})
-class SystemPropertiesTest {
+class SystemPropertiesTest extends AbstractLangTest {
 
     private static final String SIMPLE_NAME = 
SystemPropertiesTest.class.getSimpleName();
     static final String KEY_SPACE_1 = " ";
diff --git a/src/test/java/org/apache/commons/lang3/arch/ProcessorTest.java 
b/src/test/java/org/apache/commons/lang3/arch/ProcessorTest.java
index c45f41221..2eed3a953 100644
--- a/src/test/java/org/apache/commons/lang3/arch/ProcessorTest.java
+++ b/src/test/java/org/apache/commons/lang3/arch/ProcessorTest.java
@@ -20,11 +20,12 @@
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.apache.commons.lang3.arch.Processor.Arch;
 import org.apache.commons.lang3.arch.Processor.Type;
 import org.junit.jupiter.api.Test;
 
-class ProcessorTest {
+class ProcessorTest extends AbstractLangTest {
 
     @Test
     void testIs32Bit() {
diff --git a/src/test/java/org/apache/commons/lang3/builder/ConversionTest.java 
b/src/test/java/org/apache/commons/lang3/builder/ConversionTest.java
index 75e0637c0..464322d58 100644
--- a/src/test/java/org/apache/commons/lang3/builder/ConversionTest.java
+++ b/src/test/java/org/apache/commons/lang3/builder/ConversionTest.java
@@ -20,10 +20,11 @@
 import static 
org.apache.commons.lang3.LangAssertions.assertNullPointerException;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.apache.commons.lang3.Conversion;
 import org.junit.jupiter.api.Test;
 
-class ConversionTest {
+class ConversionTest extends AbstractLangTest {
 
     @Test
     void testHexToByte() {
diff --git a/src/test/java/org/apache/commons/lang3/builder/IDKeyTest.java 
b/src/test/java/org/apache/commons/lang3/builder/IDKeyTest.java
index 3ef634115..b4113499d 100644
--- a/src/test/java/org/apache/commons/lang3/builder/IDKeyTest.java
+++ b/src/test/java/org/apache/commons/lang3/builder/IDKeyTest.java
@@ -20,12 +20,13 @@
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotEquals;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link IDKey}.
  */
-class IDKeyTest {
+class IDKeyTest extends AbstractLangTest {
 
     @Test
     void testEquals() {
diff --git 
a/src/test/java/org/apache/commons/lang3/builder/TestClassBuilder.java 
b/src/test/java/org/apache/commons/lang3/builder/TestClassBuilder.java
index 2e988f13a..4bdbe25f2 100644
--- a/src/test/java/org/apache/commons/lang3/builder/TestClassBuilder.java
+++ b/src/test/java/org/apache/commons/lang3/builder/TestClassBuilder.java
@@ -17,6 +17,7 @@
 
 package org.apache.commons.lang3.builder;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.objectweb.asm.ClassWriter;
 import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.Opcodes;
@@ -24,7 +25,7 @@
 /**
  * Builds classes dynamically for tests.
  */
-public class TestClassBuilder {
+public class TestClassBuilder extends AbstractLangTest {
 
     /**
      * Extends {@link ClassLoader} to make {@link 
ClassLoader#defineClass(String, byte[])} public.
diff --git 
a/src/test/java/org/apache/commons/lang3/concurrent/ConcurrentExceptionTest.java
 
b/src/test/java/org/apache/commons/lang3/concurrent/ConcurrentExceptionTest.java
index 41eca1b6d..4e8f3d622 100644
--- 
a/src/test/java/org/apache/commons/lang3/concurrent/ConcurrentExceptionTest.java
+++ 
b/src/test/java/org/apache/commons/lang3/concurrent/ConcurrentExceptionTest.java
@@ -21,12 +21,13 @@
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link ConcurrentException}.
  */
-class ConcurrentExceptionTest {
+class ConcurrentExceptionTest extends AbstractLangTest {
 
     /**
      * Tests creating a ConcurrentException with an error as cause.
diff --git 
a/src/test/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeExceptionTest.java
 
b/src/test/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeExceptionTest.java
index 3c529dff9..50cc3896a 100644
--- 
a/src/test/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeExceptionTest.java
+++ 
b/src/test/java/org/apache/commons/lang3/concurrent/ConcurrentRuntimeExceptionTest.java
@@ -19,12 +19,13 @@
 
 import static 
org.apache.commons.lang3.LangAssertions.assertIllegalArgumentException;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link ConcurrentRuntimeException}.
  */
-class ConcurrentRuntimeExceptionTest {
+class ConcurrentRuntimeExceptionTest extends AbstractLangTest {
 
     /**
      * Tries to create a ConcurrentRuntimeException with an error as cause.
diff --git 
a/src/test/java/org/apache/commons/lang3/function/ByteSupplierTest.java 
b/src/test/java/org/apache/commons/lang3/function/ByteSupplierTest.java
index b520a49fa..3763d3af9 100644
--- a/src/test/java/org/apache/commons/lang3/function/ByteSupplierTest.java
+++ b/src/test/java/org/apache/commons/lang3/function/ByteSupplierTest.java
@@ -19,12 +19,13 @@
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link ByteSupplier}.
  */
-class ByteSupplierTest {
+class ByteSupplierTest extends AbstractLangTest {
 
     @Test
     void testGetAsByte() {
diff --git 
a/src/test/java/org/apache/commons/lang3/function/FailableSupplierTest.java 
b/src/test/java/org/apache/commons/lang3/function/FailableSupplierTest.java
index 2816c80b5..4691184e6 100644
--- a/src/test/java/org/apache/commons/lang3/function/FailableSupplierTest.java
+++ b/src/test/java/org/apache/commons/lang3/function/FailableSupplierTest.java
@@ -19,12 +19,13 @@
 
 import static org.junit.jupiter.api.Assertions.assertNull;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link FailableSupplier}.
  */
-class FailableSupplierTest {
+class FailableSupplierTest extends AbstractLangTest {
 
     @Test
     void testNULL() throws Throwable {
diff --git a/src/test/java/org/apache/commons/lang3/function/FunctionsTest.java 
b/src/test/java/org/apache/commons/lang3/function/FunctionsTest.java
index e0d85a766..c943a8c7b 100644
--- a/src/test/java/org/apache/commons/lang3/function/FunctionsTest.java
+++ b/src/test/java/org/apache/commons/lang3/function/FunctionsTest.java
@@ -26,13 +26,14 @@
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Function;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link Functions}.
  */
-class FunctionsTest {
+class FunctionsTest extends AbstractLangTest {
 
     /**
      * Tests {@link Functions#apply(Function, Object)}.
diff --git 
a/src/test/java/org/apache/commons/lang3/function/PredicatesTest.java 
b/src/test/java/org/apache/commons/lang3/function/PredicatesTest.java
index 9a251c9cd..0eff24735 100644
--- a/src/test/java/org/apache/commons/lang3/function/PredicatesTest.java
+++ b/src/test/java/org/apache/commons/lang3/function/PredicatesTest.java
@@ -22,12 +22,13 @@
 
 import java.util.function.Predicate;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link Predicates}.
  */
-class PredicatesTest {
+class PredicatesTest extends AbstractLangTest {
 
     @Test
     void testFalsePredicate() {
diff --git 
a/src/test/java/org/apache/commons/lang3/stream/FailableStreamTest.java 
b/src/test/java/org/apache/commons/lang3/stream/FailableStreamTest.java
index 33e944616..3bd80a964 100644
--- a/src/test/java/org/apache/commons/lang3/stream/FailableStreamTest.java
+++ b/src/test/java/org/apache/commons/lang3/stream/FailableStreamTest.java
@@ -28,13 +28,14 @@
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.apache.commons.lang3.stream.Streams.FailableStream;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link FailableStream}.
  */
-class FailableStreamTest {
+class FailableStreamTest extends AbstractLangTest {
 
     private Integer failable(final Map.Entry<String, AtomicInteger> value) 
throws IOException {
         if (value == new Object()) {
diff --git 
a/src/test/java/org/apache/commons/lang3/stream/LangCollectorsTest.java 
b/src/test/java/org/apache/commons/lang3/stream/LangCollectorsTest.java
index 8e006041f..51b68a18d 100644
--- a/src/test/java/org/apache/commons/lang3/stream/LangCollectorsTest.java
+++ b/src/test/java/org/apache/commons/lang3/stream/LangCollectorsTest.java
@@ -26,12 +26,13 @@
 import java.util.stream.Collector;
 import java.util.stream.Stream;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link LangCollectors}
  */
-class LangCollectorsTest {
+class LangCollectorsTest extends AbstractLangTest {
 
     private static final class Fixture {
         int value;
diff --git a/src/test/java/org/apache/commons/lang3/time/TimeZonesTest.java 
b/src/test/java/org/apache/commons/lang3/time/TimeZonesTest.java
index b0008ec06..d32402cc2 100644
--- a/src/test/java/org/apache/commons/lang3/time/TimeZonesTest.java
+++ b/src/test/java/org/apache/commons/lang3/time/TimeZonesTest.java
@@ -21,12 +21,13 @@
 
 import java.util.TimeZone;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.junit.jupiter.api.Test;
 
 /**
  * Tests {@link TimeZones}.
  */
-class TimeZonesTest {
+class TimeZonesTest extends AbstractLangTest {
 
     static final String TIME_ZONE_GET_AVAILABLE_IDS = 
"java.util.TimeZone#getAvailableIDs()";
 
diff --git 
a/src/test/java/org/apache/commons/lang3/util/IterableStringTokenizerTest.java 
b/src/test/java/org/apache/commons/lang3/util/IterableStringTokenizerTest.java
index 43094c03c..4cba97e7d 100644
--- 
a/src/test/java/org/apache/commons/lang3/util/IterableStringTokenizerTest.java
+++ 
b/src/test/java/org/apache/commons/lang3/util/IterableStringTokenizerTest.java
@@ -29,6 +29,7 @@
 import java.util.StringTokenizer;
 import java.util.stream.Collectors;
 
+import org.apache.commons.lang3.AbstractLangTest;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -37,7 +38,7 @@
 /**
  * Tests {@link IterableStringTokenizer}.
  */
-class IterableStringTokenizerTest {
+class IterableStringTokenizerTest extends AbstractLangTest {
 
     /**
      * Delimiters from {@link StringTokenizer}.

Reply via email to