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); + } }