From 5cce0e9d5d91523aafbdb3cb9aad59ec275ec773 Mon Sep 17 00:00:00 2001 From: Martin Duhem Date: Wed, 26 Aug 2020 10:05:15 +0200 Subject: [PATCH] Fix #5801: Remove duplicate TaskDefs in test agent When forking, a test could be run as many times as its `TestDef` matched `Fingerprint`s. When forking is disabled, sbt correctly runs the tests only once. --- testing/agent/src/main/java/sbt/ForkMain.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testing/agent/src/main/java/sbt/ForkMain.java b/testing/agent/src/main/java/sbt/ForkMain.java index e9b5a9bbe..2ba171603 100644 --- a/testing/agent/src/main/java/sbt/ForkMain.java +++ b/testing/agent/src/main/java/sbt/ForkMain.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.LinkedHashSet; import java.util.concurrent.*; public final class ForkMain { @@ -326,7 +327,7 @@ public final class ForkMain { if (framework == null) continue; - final ArrayList filteredTests = new ArrayList<>(); + final LinkedHashSet filteredTests = new LinkedHashSet<>(); for (final Fingerprint testFingerprint : framework.fingerprints()) { for (final TaskDef test : tests) { // TODO: To pass in correct explicitlySpecified and selectors