Use posix long names when creating tar archive for image building

Fixes gh-19964
This commit is contained in:
Andy Wilkinson
2020-01-30 13:31:27 +00:00
parent 02d095d71a
commit 54b3f480b4
6 changed files with 50 additions and 1 deletions

View File

@@ -20,6 +20,10 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Random;
import org.gradle.testkit.runner.BuildResult;
import org.gradle.testkit.runner.TaskOutcome;
@@ -51,6 +55,7 @@ class BootBuildImageIntegrationTests {
@TestTemplate
void bootBuildImageBuildsImage() throws IOException {
writeMainClass();
writeLongNameResource();
BuildResult result = this.gradleBuild.build("bootBuildImage");
assertThat(result.task(":bootBuildImage").getOutcome()).isEqualTo(TaskOutcome.SUCCESS);
ImageReference imageReference = ImageReference.of(ImageName.of(this.gradleBuild.getProjectDir().getName()));
@@ -87,4 +92,18 @@ class BootBuildImageIntegrationTests {
}
}
private void writeLongNameResource() {
StringBuilder name = new StringBuilder();
new Random().ints('a', 'z' + 1).limit(128).forEach((i) -> name.append((char) i));
try {
Path path = this.gradleBuild.getProjectDir().toPath()
.resolve(Paths.get("src", "main", "resources", name.toString()));
Files.createDirectories(path.getParent());
Files.createFile(path);
}
catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}