Skip to content

Commit

Permalink
Don't run EmptyDirTaskTests in a Docker container
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Widdis <widdis@gmail.com>
  • Loading branch information
dbwiddis committed Jul 6, 2022
1 parent 289c2d3 commit cb96c2f
Showing 1 changed file with 17 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

import com.carrotsearch.randomizedtesting.RandomizedTest;
import org.apache.tools.ant.taskdefs.condition.Os;
Expand Down Expand Up @@ -65,6 +68,7 @@ public void testCreateEmptyDir() throws Exception {

public void testCreateEmptyDirNoPermissions() throws Exception {
RandomizedTest.assumeFalse("Functionality is Unix specific", Os.isFamily(Os.FAMILY_WINDOWS));
RandomizedTest.assumeFalse("Functionality doesn't work in Docker", isRunningInDocker());

Project project = ProjectBuilder.builder().build();
EmptyDirTask emptyDirTask = project.getTasks().create("emptyDirTask", EmptyDirTask.class);
Expand Down Expand Up @@ -92,4 +96,16 @@ private File getNewNonExistingTempFolderFile(Project project) throws IOException
return newEmptyFolder;
}

}
private static boolean isRunningInDocker() {
// Only reliable existing method but may be removed in future
if (new File("/.dockerenv").exists()) {
return true;
}
// Backup 1: look for 'docker' in one of the paths in /proc/1/cgroup
if (Files.lines(Path.of("/proc/1/cgroup")).anyMatch(line -> line.contains("docker"))) {
return true;
}
// Backup 2: look for 'docker' in overlay fs
return Files.lines(Path.of("/proc/1/mounts")).anyMatch(line -> line.startsWith("overlay") && line.contains("docker"));
}
}

0 comments on commit cb96c2f

Please sign in to comment.