mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-11-14 20:42:21 +00:00
Merge commit '7250d8b875366ae90fa6aec13b5a5c86720e23a3' into security-master
This commit is contained in:
commit
e992e1153b
131 files changed
+5298
-717
No files matched your search
@@ -43,8 +43,11 @@ import java.net.URLConnection;
|
||||
import java.net.URLStreamHandler;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.attribute.FileTime;
|
||||
import java.nio.file.attribute.PosixFilePermission;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -52,6 +55,7 @@ import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
@@ -845,4 +849,34 @@ public class FilePathTest {
|
||||
assertTrue("junction target contents should not be deleted", Files.exists(targetContents));
|
||||
assertFalse("could not delete target", Files.exists(toDelete));
|
||||
}
|
||||
|
||||
@Issue("JENKINS-13128")
|
||||
@Test public void copyRecursivePreservesPosixFilePermissions() throws Exception {
|
||||
assumeFalse("windows doesn't support posix file permissions", Functions.isWindows());
|
||||
File src = temp.newFolder("src");
|
||||
File dst = temp.newFolder("dst");
|
||||
Path sourceFile = Files.createFile(src.toPath().resolve("test-file"));
|
||||
Set<PosixFilePermission> allRWX = EnumSet.allOf(PosixFilePermission.class);
|
||||
Files.setPosixFilePermissions(sourceFile, allRWX);
|
||||
FilePath f = new FilePath(src);
|
||||
f.copyRecursiveTo(new FilePath(dst));
|
||||
Path destinationFile = dst.toPath().resolve("test-file");
|
||||
assertTrue("file was not copied", Files.exists(destinationFile));
|
||||
Set<PosixFilePermission> destinationPermissions = Files.getPosixFilePermissions(destinationFile);
|
||||
assertEquals("file permissions not copied", allRWX, destinationPermissions);
|
||||
}
|
||||
|
||||
@Issue("JENKINS-13128")
|
||||
@Test public void copyRecursivePreservesLastModifiedTime() throws Exception {
|
||||
File src = temp.newFolder("src");
|
||||
File dst = temp.newFolder("dst");
|
||||
Path sourceFile = Files.createFile(src.toPath().resolve("test-file"));
|
||||
FileTime mtime = FileTime.from(42L, TimeUnit.SECONDS);
|
||||
Files.setLastModifiedTime(sourceFile, mtime);
|
||||
FilePath f = new FilePath(src);
|
||||
f.copyRecursiveTo(new FilePath(dst));
|
||||
Path destinationFile = dst.toPath().resolve("test-file");
|
||||
assertTrue("file was not copied", Files.exists(destinationFile));
|
||||
assertEquals("file mtime was not preserved", mtime, Files.getLastModifiedTime(destinationFile));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user