Skip to content

Commit 38910de

Browse files
authored
Merge pull request #2958 from testng-team/feature/errorprone
Add errorprone
2 parents 49ddafb + 6c97402 commit 38910de

File tree

52 files changed

+255
-165
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+255
-165
lines changed

build-logic/build-parameters/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,8 @@ buildParameters {
4949
defaultValue.set(true)
5050
description.set("Fail build on javadoc warnings")
5151
}
52+
bool("skipErrorProne") {
53+
defaultValue.set(false)
54+
description.set("Skip Error Prone verifications")
55+
}
5256
}

build-logic/code-quality/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ dependencies {
77
api(projects.basics)
88
api("org.sonarqube:org.sonarqube.gradle.plugin:4.4.1.3373")
99
api("com.github.autostyle:autostyle-plugin-gradle:4.0")
10+
api("net.ltgt.gradle:gradle-errorprone-plugin:3.1.0")
1011
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import net.ltgt.gradle.errorprone.errorprone
2+
3+
plugins {
4+
id("net.ltgt.errorprone")
5+
id("build-logic.build-params")
6+
}
7+
8+
dependencies {
9+
errorprone("com.google.errorprone:error_prone_core:2.20.0")
10+
}
11+
12+
tasks.withType<JavaCompile>().configureEach {
13+
options.errorprone.disableWarningsInGeneratedCode.set(true)
14+
}

build-logic/jvm/src/main/kotlin/testng.java.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,7 @@ tasks.configureEach<Test> {
4242
inputs.property("java.vm.version", System.getProperty("java.vm.version"))
4343
inputs.property("java.vm.vendor", System.getProperty("java.vm.vendor"))
4444
}
45+
46+
if (!buildParameters.skipErrorProne) {
47+
apply(plugin = "testng.errorprone")
48+
}

testng-asserts/src/test/java/org/testng/AssertTest.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -305,22 +305,10 @@ public void compareUnEqualDoubleArraysWithDelta() {
305305
Assert.assertEquals(actual, expected, 0.1d);
306306
}
307307

308-
@SuppressWarnings("serial")
309308
@Test(expectedExceptions = AssertionError.class)
310309
public void assertEqualsMapShouldFail() {
311-
Map<String, String> mapActual =
312-
new HashMap<String, String>() {
313-
{
314-
put("a", "1");
315-
}
316-
};
317-
Map<String, String> mapExpected =
318-
new HashMap<String, String>() {
319-
{
320-
put("a", "1");
321-
put("b", "2");
322-
}
323-
};
310+
Map<String, String> mapActual = Map.of("a", "1");
311+
Map<String, String> mapExpected = Map.of("a", "1", "b", "2");
324312

325313
Assert.assertEquals(mapActual, mapExpected);
326314
}
@@ -654,12 +642,22 @@ static class BrokenEqualsTrue {
654642
public boolean equals(Object o) {
655643
return true; // broken implementation
656644
}
645+
646+
@Override
647+
public int hashCode() {
648+
return 0;
649+
}
657650
}
658651

659652
static class BrokenEqualsFalse {
660653
@Override
661654
public boolean equals(Object o) {
662655
return false; // broken implementation
663656
}
657+
658+
@Override
659+
public int hashCode() {
660+
return 0;
661+
}
664662
}
665663
}

testng-core/src/main/java/org/testng/SuiteResult.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import org.testng.xml.XmlSuite;
77

88
/** This class logs the result of an entire Test Suite (defined by a property file). */
9-
class SuiteResult implements ISuiteResult, Comparable<ISuiteResult> {
9+
class SuiteResult implements ISuiteResult, Comparable<SuiteResult> {
1010
private final XmlSuite m_suite;
1111
private final ITestContext m_testContext;
1212

@@ -26,7 +26,7 @@ public XmlSuite getSuite() {
2626
}
2727

2828
@Override
29-
public int compareTo(@Nonnull ISuiteResult other) {
29+
public int compareTo(@Nonnull SuiteResult other) {
3030
int result = 0;
3131
try {
3232
String n1 = getTestContext().getName();

testng-core/src/main/java/org/testng/internal/ClonedMethod.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public boolean hasMoreInvocation() {
138138

139139
@Override
140140
public Class<?> getRealClass() {
141-
return m_javaMethod.getClass();
141+
return m_javaMethod.getDeclaringClass();
142142
}
143143

144144
@Override

testng-core/src/main/java/org/testng/internal/Graph.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.testng.internal;
22

3+
import java.util.ArrayDeque;
4+
import java.util.ArrayList;
35
import java.util.Collection;
46
import java.util.Comparator;
7+
import java.util.Deque;
58
import java.util.HashSet;
6-
import java.util.LinkedList;
79
import java.util.List;
810
import java.util.Map;
911
import java.util.Set;
@@ -190,9 +192,9 @@ public List<T> findPredecessors(T o) {
190192
// already encountered. "queue" is the queue of items whose
191193
// predecessors we haven't yet explored.
192194

193-
LinkedList<T> result = new LinkedList<>();
195+
Deque<T> result = new ArrayDeque<>();
194196
Set<T> visited = new HashSet<>();
195-
LinkedList<T> queue = new LinkedList<>();
197+
Deque<T> queue = new ArrayDeque<>();
196198
visited.add(o);
197199
queue.addLast(o);
198200

@@ -206,7 +208,7 @@ public List<T> findPredecessors(T o) {
206208
}
207209
}
208210

209-
return result;
211+
return new ArrayList<>(result);
210212
}
211213

212214
@Override

testng-core/src/main/java/org/testng/internal/Tarjan.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package org.testng.internal;
22

3+
import java.util.ArrayDeque;
34
import java.util.List;
45
import java.util.Map;
56
import java.util.Objects;
6-
import java.util.Stack;
77
import org.testng.collections.Lists;
88
import org.testng.collections.Maps;
99

@@ -14,13 +14,13 @@
1414
*/
1515
public class Tarjan<T> {
1616
int m_index = 0;
17-
private final Stack<T> stack;
17+
private final ArrayDeque<T> stack;
1818
Map<T, Integer> visitedNodes = Maps.newHashMap();
1919
Map<T, Integer> m_lowlinks = Maps.newHashMap();
2020
private List<T> m_cycle;
2121

2222
public Tarjan(Graph<T> graph, T start) {
23-
stack = new Stack<>();
23+
stack = new ArrayDeque<>();
2424
run(graph, start);
2525
}
2626

testng-core/src/main/java/org/testng/internal/annotations/JDK15TagFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ private Object invokeMethod(Annotation test, String methodName) {
644644
Object result = null;
645645
try {
646646
// Note: we should cache methods already looked up
647-
Method m = test.getClass().getMethod(methodName);
647+
Method m = test.annotationType().getMethod(methodName);
648648
result = m.invoke(test);
649649
} catch (Exception e) {
650650
Logger.getLogger(JDK15TagFactory.class).error(e.getMessage(), e);

0 commit comments

Comments
 (0)