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}.