From 4603efae8d099229bd1830c8aa66ba1ba23306c2 Mon Sep 17 00:00:00 2001 From: Matteo Mara Date: Mon, 29 Apr 2024 11:11:41 +0200 Subject: [PATCH] SONAR-22159 Add assume check on creation date properly set in test cleanUpOld --- .../bootstrap/GlobalTempFolderProviderTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/GlobalTempFolderProviderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/GlobalTempFolderProviderTest.java index 19a251859ae0..11a095998397 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/GlobalTempFolderProviderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/bootstrap/GlobalTempFolderProviderTest.java @@ -23,6 +23,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributeView; import java.nio.file.attribute.FileTime; import java.util.Collections; @@ -70,6 +71,7 @@ public void cleanUpOld() throws IOException { File tmp = new File(workingDir, ".sonartmp_" + i); tmp.mkdirs(); setFileCreationDate(tmp, creationTime); + assumeCorrectFileCreationDate(tmp.toPath(), creationTime); } tempFolderProvider.provide( @@ -159,4 +161,15 @@ private void setFileCreationDate(File f, long time) throws IOException { FileTime creationTime = FileTime.fromMillis(time); attributes.setTimes(creationTime, creationTime, creationTime); } + + // See SONAR-22159, the test started failing due to issues in setting the correct creation time on Cirrus, skipping the test if the problem + // happens + private void assumeCorrectFileCreationDate(Path tmp, long creationTime) throws IOException { + FileTime fileCreationTimeSet = Files.getFileAttributeView(tmp, BasicFileAttributeView.class).readAttributes().creationTime(); + FileTime expectedCreationTime = FileTime.fromMillis(creationTime); + + assumeTrue(String.format("Incorrect creation date set on temporary file %s: %s set instead of %s", + tmp.toAbsolutePath(), fileCreationTimeSet, expectedCreationTime), + expectedCreationTime.compareTo(fileCreationTimeSet) >= 0); + } }