From fba5ffc626cad81ae9ba69bd9afbd7b407651b9f Mon Sep 17 00:00:00 2001 From: Scott Frederick Date: Tue, 8 Jun 2021 15:10:14 -0500 Subject: [PATCH] Fix FilePermissionsTests on Windows See gh-26658 --- .../platform/io/FilePermissionsTests.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/FilePermissionsTests.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/FilePermissionsTests.java index e5b83f1340c8..a3bcbe21b2da 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/FilePermissionsTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/FilePermissionsTests.java @@ -27,11 +27,15 @@ import java.util.Set; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.EnabledOnOs; +import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.io.TempDir; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIOException; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; /** * Tests for {@link FilePermissions}. @@ -44,6 +48,7 @@ class FilePermissionsTests { Path tempDir; @Test + @DisabledOnOs(OS.WINDOWS) void umaskForPath() throws IOException { FileAttribute> fileAttribute = PosixFilePermissions .asFileAttribute(PosixFilePermissions.fromString("rw-r-----")); @@ -52,11 +57,20 @@ void umaskForPath() throws IOException { } @Test + @DisabledOnOs(OS.WINDOWS) void umaskForPathWithNonExistentFile() throws IOException { assertThatIOException() .isThrownBy(() -> FilePermissions.umaskForPath(Paths.get(this.tempDir.toString(), "does-not-exist"))); } + @Test + @EnabledOnOs(OS.WINDOWS) + void umaskForPathOnWindowsFails() throws IOException { + Path tempFile = Files.createTempFile("umask", null); + assertThatIllegalStateException().isThrownBy(() -> FilePermissions.umaskForPath(tempFile)) + .withMessageContaining("Unsupported file type for retrieving Posix attributes"); + } + @Test void umaskForPathWithNullPath() throws IOException { assertThatIllegalArgumentException().isThrownBy(() -> FilePermissions.umaskForPath(null));