< prev index next >

test/jdk/internal/jimage/ExecutableTest.java

Print this page
rev 12468 : 8132704: [TESTBUG] jdk/internal/jimage/ExecutableTest.java incorrectly asserts all files to be executable
Reviewed-by: rriggs

@@ -25,11 +25,13 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.attribute.PosixFilePermission;
 import static java.nio.file.attribute.PosixFilePermission.*;
+import java.util.Arrays;
 import java.util.EnumSet;
+import java.util.HashSet;
 import java.util.Set;
 
 /*
  * @test
  * @bug 8132475

@@ -39,17 +41,23 @@
  * @author Volker Simonis
  */
 
 public class ExecutableTest {
 
+    // The bin/ directory may contain non-executable files (see 8132704)
+    private static final String[] exclude = { "jmc.ini" };
+    private static final Set<String> excludeSet =
+        new HashSet<String>(Arrays.asList(exclude));
+
     public static void main(String args[]) throws Throwable {
         String JAVA_HOME = System.getProperty("java.home");
         Path binPath = Paths.get(JAVA_HOME, "bin");
         DirectoryStream<Path> stream = Files.newDirectoryStream(binPath);
         EnumSet<PosixFilePermission> execPerms =
             EnumSet.of(GROUP_EXECUTE, OTHERS_EXECUTE, OWNER_EXECUTE);
         for (Path entry : stream) {
+            if (excludeSet.contains(entry.getFileName().toString())) continue;
             if (Files.isRegularFile(entry)) {
                 if (!Files.isExecutable(entry)) {
                     throw new Error(entry + " is not executable!");
                 }
                 try {
< prev index next >