From 0264a1f411bc4e874402ab790abdff09ed235cb3 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sun, 11 Jan 2026 06:14:08 -0700 Subject: [PATCH 1/2] Remove noisy test logging from QueueTest No one is reading the test logs. They add megabytes to the output and may obscure useful messages. --- test/src/test/java/hudson/model/QueueTest.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/test/src/test/java/hudson/model/QueueTest.java b/test/src/test/java/hudson/model/QueueTest.java index 375f24fd3bc0..130410f76ba0 100644 --- a/test/src/test/java/hudson/model/QueueTest.java +++ b/test/src/test/java/hudson/model/QueueTest.java @@ -90,8 +90,6 @@ import java.io.UncheckedIOException; import java.net.HttpURLConnection; import java.net.URI; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; @@ -112,7 +110,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; -import java.util.logging.Level; import java.util.logging.Logger; import jenkins.model.BlockedBecauseOfBuildInProgress; import jenkins.model.Jenkins; @@ -132,7 +129,6 @@ import org.junit.jupiter.api.Test; import org.jvnet.hudson.test.Issue; import org.jvnet.hudson.test.JenkinsRule; -import org.jvnet.hudson.test.LogRecorder; import org.jvnet.hudson.test.MockAuthorizationStrategy; import org.jvnet.hudson.test.MockQueueItemAuthenticator; import org.jvnet.hudson.test.SequenceLock; @@ -150,8 +146,6 @@ @WithJenkins public class QueueTest { - private final LogRecorder logging = new LogRecorder().record(Queue.class, Level.FINE); - private JenkinsRule r; @BeforeEach @@ -173,8 +167,6 @@ void persistence() throws Exception { assertNotNull(testProject.scheduleBuild2(0, new UserIdCause())); q.save(); - System.out.println(Files.readString(r.jenkins.getRootDir().toPath().resolve("queue.xml"), StandardCharsets.UTF_8)); - assertEquals(1, q.getItems().length); q.clear(); assertEquals(0, q.getItems().length); @@ -228,8 +220,6 @@ void persistence2() throws Exception { assertNotNull(testProject.scheduleBuild2(0, new UserIdCause())); q.save(); - System.out.println(Files.readString(r.jenkins.getRootDir().toPath().resolve("queue.xml"), StandardCharsets.UTF_8)); - assertEquals(1, q.getItems().length); q.clear(); assertEquals(0, q.getItems().length); @@ -372,7 +362,6 @@ Started by timer (2 times) Started by remote host 4.3.2.1 with note: test Started by remote host 1.2.3.4 with note: foo"""), "Build page should combine duplicates and show counts: " + buildPage); - System.out.println(new XmlFile(new File(build.getRootDir(), "build.xml")).asString()); } @Issue("JENKINS-8790") From ca53cdb1e4dd464e7f3543bda4cb4b950c403318 Mon Sep 17 00:00:00 2001 From: Mark Waite Date: Sun, 11 Jan 2026 06:22:02 -0700 Subject: [PATCH 2/2] Stop and delete builds 1 and 2 in QueueTest to prevent Windows test failures The Windows file system prevents cleanup of the builds and jobs directory while the test has them open. Stopping the builds and deleting them is enough to close the directory and allow it to be deleted. Testing done: * Before this change, testGetCauseOfBlockageForNonConcurrentFreestyle failed in about 50% of runs on my 7 different Windows agents * After this change, testGetCauseOfBlockageForNonConcurrentFreestyle passes all runs on my 7 different Windows agents --- test/src/test/java/hudson/model/QueueTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/test/src/test/java/hudson/model/QueueTest.java b/test/src/test/java/hudson/model/QueueTest.java index 130410f76ba0..fc7942e30794 100644 --- a/test/src/test/java/hudson/model/QueueTest.java +++ b/test/src/test/java/hudson/model/QueueTest.java @@ -1232,7 +1232,22 @@ void testGetCauseOfBlockageForNonConcurrentFreestyle() throws Exception { assertEquals(expected.getShortDescription(), actual.getShortDescription()); Queue.getInstance().doCancelItem(r.jenkins.getQueue().getBlockedItems().get(0).getId()); - r.assertBuildStatusSuccess(r.waitForCompletion(build)); + + build.doStop(); // Stop build 1 early + r.waitForCompletion(build); + build.delete(); // Delete build 1 + + // Stop and delete build 2 if it is running. Seen running on slower Windows computers + if (t1.isBuilding()) { + FreeStyleBuild build2 = t1.getLastBuild(); + build2.doStop(); + r.waitForCompletion(build2); + build2.delete(); + } + + assertFalse(t1.isBuilding(), "Job unexpectedly building"); + assertNull(t1.getQueueItem(), "Job unexpectedly has non-null entry in queue " + t1.getQueueItem()); + assertFalse(t1.isInQueue(), "Job unexpectedly in queue"); } @Test