diff options
-rw-r--r-- | weaver/src/test/java/org/aspectj/weaver/bcel/ClasspathManagerTestCase.java | 264 |
1 files changed, 132 insertions, 132 deletions
diff --git a/weaver/src/test/java/org/aspectj/weaver/bcel/ClasspathManagerTestCase.java b/weaver/src/test/java/org/aspectj/weaver/bcel/ClasspathManagerTestCase.java index 1dcce6842..370357625 100644 --- a/weaver/src/test/java/org/aspectj/weaver/bcel/ClasspathManagerTestCase.java +++ b/weaver/src/test/java/org/aspectj/weaver/bcel/ClasspathManagerTestCase.java @@ -13,6 +13,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.regex.Pattern; import org.aspectj.apache.bcel.classfile.ClassFormatException; @@ -30,23 +31,22 @@ import org.aspectj.weaver.bcel.ClassPathManager.ClassFile; import junit.framework.TestCase; /** - * Should run these tests 3 times on each JDK level (8, 9, 11). On each one 3 of the - * tests should pass indicating that JDK can successfully access system types in - * each JDK level. + * Should run these tests 3 times on each JDK level (8, 9, 11). On each one 3 of the tests should pass indicating that + * JDK can successfully access system types in each JDK level. * * @author Andy Clement */ public class ClasspathManagerTestCase extends TestCase { // Works on my machine where all jvms under ~/jvms - private static String java18_rtjar = findJvm("j.*18.*","rt.jar"); - private static String java9_jrtfsjar = findJvm("j.*9.*","jrt-fs.jar");; - private static String java11_jrtfsjar = findJvm("j.*11.*","jrt-fs.jar");; + private static final String java18_rtjar = findJvm("j.*18.*", "rt.jar"); + private static final String java9_jrtfsjar = findJvm("j.*9.*", "jrt-fs.jar"); + private static final String java11_jrtfsjar = findJvm("j.*11.*", "jrt-fs.jar"); private static String findJvm(String pattern, String jar) { - String start = System.getProperty("user.home")+"/jvms"; + String start = System.getProperty("user.home") + "/jvms"; if (new File(start).isDirectory()) { - for (File f : new File(start).listFiles()) { + for (File f : Objects.requireNonNull(new File(start).listFiles())) { if (f.isDirectory() && Pattern.matches(pattern, f.getName())) { File result = walk(f, jar); if (result != null) { @@ -61,15 +61,14 @@ public class ClasspathManagerTestCase extends TestCase { private static File walk(File dir, String jar) { File[] fs = dir.listFiles(); - if (fs!=null) { - for (File f: fs) { - if (f.getName().equals(jar)) { + if (fs != null) { + for (File f : fs) { + if (f.getName().equals(jar)) return f; - } else if (f.isDirectory()) { + else if (f.isDirectory()) { File s = walk(f, jar); - if (s!=null) { + if (s != null) return s; - } } } } @@ -106,119 +105,122 @@ public class ClasspathManagerTestCase extends TestCase { ); } - public void xtestSanity18accessing18RTJAR() throws IOException { - if (LangUtil.getVmVersion()>8) fail("Must be Java 8"); - List<String> classpath = new ArrayList<>(); - classpath.add(java18_rtjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/Object;")); - assertNotNull(t); - } - - public void xtestJava18accessing11JRT() throws ClassFormatException, IOException { - if (LangUtil.getVmVersion()>8) fail("Must be Java 8"); - List<String> classpath = new ArrayList<>(); - classpath.add(java11_jrtfsjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); - assertNotNull(t); - ClassParser classParser = new ClassParser(t.getInputStream(),t.getPath()); - JavaClass clazz = classParser.parse(); - // isBlank() exists on Java 11 - long c = Arrays.asList(clazz.getMethods()).stream().filter(m -> m.getName().equals("isBlank")).count(); - assertEquals(1,c); - } - - public void xtestJava18accessing19JRT() throws ClassFormatException, IOException { - if (LangUtil.getVmVersion()>8) fail("Must be Java 8"); - List<String> classpath = new ArrayList<>(); - classpath.add(java9_jrtfsjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); - assertNotNull(t); - ClassParser classParser = new ClassParser(t.getInputStream(),t.getPath()); - JavaClass clazz = classParser.parse(); - // isBlank() exists on Java 11, but not on Java9 - long c = Arrays.asList(clazz.getMethods()).stream().filter(m -> m.getName().equals("isBlank")).count(); - assertEquals(0,c); - } - - - public void xtestSanity19accessing18RTJAR() throws IOException { - assertEquals(9.0,LangUtil.getVmVersion()); - List<String> classpath = new ArrayList<>(); - classpath.add(java18_rtjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/Object;")); - assertNotNull(t); - } - - public void xtestJava19accessing11JRT() throws ClassFormatException, IOException { - assertEquals(9.0,LangUtil.getVmVersion()); - List<String> classpath = new ArrayList<>(); - classpath.add(java11_jrtfsjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); - assertNotNull(t); - ClassParser classParser = new ClassParser(t.getInputStream(),t.getPath()); - JavaClass clazz = classParser.parse(); - // isBlank() exists on Java 11 - long c = Arrays.asList(clazz.getMethods()).stream().filter(m -> m.getName().equals("isBlank")).count(); - assertEquals(1,c); - } - - public void xtestJava19accessing19JRT() throws ClassFormatException, IOException { - assertEquals(9.0,LangUtil.getVmVersion()); - List<String> classpath = new ArrayList<>(); - classpath.add(java9_jrtfsjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); - assertNotNull(t); - ClassParser classParser = new ClassParser(t.getInputStream(),t.getPath()); - JavaClass clazz = classParser.parse(); - // isBlank() exists on Java 11, but not on Java9 - long c = Arrays.asList(clazz.getMethods()).stream().filter(m -> m.getName().equals("isBlank")).count(); - assertEquals(0,c); - } - - public void xtestSanity11accessing18RTJAR() throws IOException { - assertEquals(11.0,LangUtil.getVmVersion()); - List<String> classpath = new ArrayList<>(); - classpath.add(java18_rtjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/Object;")); - assertNotNull(t); - } - - public void xtestJava11accessing11JRT() throws ClassFormatException, IOException { - assertEquals(11.0,LangUtil.getVmVersion()); - List<String> classpath = new ArrayList<>(); - classpath.add(java11_jrtfsjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); - assertNotNull(t); - ClassParser classParser = new ClassParser(t.getInputStream(),t.getPath()); - JavaClass clazz = classParser.parse(); - // isBlank() exists on Java 11 - long c = Arrays.asList(clazz.getMethods()).stream().filter(m -> m.getName().equals("isBlank")).count(); - assertEquals(1,c); - } - - public void xtestJava11accessing19JRT() throws ClassFormatException, IOException { - assertEquals(11.0,LangUtil.getVmVersion()); - List<String> classpath = new ArrayList<>(); - classpath.add(java9_jrtfsjar); - ClassPathManager cpm = new ClassPathManager(classpath, new MH()); - ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); - assertNotNull(t); - ClassParser classParser = new ClassParser(t.getInputStream(),t.getPath()); - JavaClass clazz = classParser.parse(); - // isBlank() exists on Java 11, but not on Java9 - long c = Arrays.asList(clazz.getMethods()).stream().filter(m -> m.getName().equals("isBlank")).count(); - assertEquals(0,c); - } - - static class MH implements IMessageHandler { + public void xtestSanity18accessing18RTJAR() { + if (LangUtil.getVmVersion() > 8) + fail("Must be Java 8"); + List<String> classpath = new ArrayList<>(); + classpath.add(java18_rtjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/Object;")); + assertNotNull(t); + } + + public void xtestJava18accessing11JRT() throws ClassFormatException, IOException { + if (LangUtil.getVmVersion() > 8) + fail("Must be Java 8"); + List<String> classpath = new ArrayList<>(); + classpath.add(java11_jrtfsjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); + assertNotNull(t); + ClassParser classParser = new ClassParser(t.getInputStream(), t.getPath()); + JavaClass clazz = classParser.parse(); + // isBlank() exists on Java 11 + long c = Arrays.stream(clazz.getMethods()).filter(m -> m.getName().equals("isBlank")).count(); + assertEquals(1, c); + } + + public void xtestJava18accessing19JRT() throws ClassFormatException, IOException { + if (LangUtil.getVmVersion() > 8) + fail("Must be Java 8"); + List<String> classpath = new ArrayList<>(); + classpath.add(java9_jrtfsjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); + assertNotNull(t); + ClassParser classParser = new ClassParser(t.getInputStream(), t.getPath()); + JavaClass clazz = classParser.parse(); + // isBlank() exists on Java 11, but not on Java9 + long c = Arrays.stream(clazz.getMethods()).filter(m -> m.getName().equals("isBlank")).count(); + assertEquals(0, c); + } + + + public void xtestSanity19accessing18RTJAR() { + assertEquals(9.0, LangUtil.getVmVersion()); + List<String> classpath = new ArrayList<>(); + classpath.add(java18_rtjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/Object;")); + assertNotNull(t); + } + + public void xtestJava19accessing11JRT() throws ClassFormatException, IOException { + assertEquals(9.0, LangUtil.getVmVersion()); + List<String> classpath = new ArrayList<>(); + classpath.add(java11_jrtfsjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); + assertNotNull(t); + ClassParser classParser = new ClassParser(t.getInputStream(), t.getPath()); + JavaClass clazz = classParser.parse(); + // isBlank() exists on Java 11 + long c = Arrays.stream(clazz.getMethods()).filter(m -> m.getName().equals("isBlank")).count(); + assertEquals(1, c); + } + + public void xtestJava19accessing19JRT() throws ClassFormatException, IOException { + assertEquals(9.0, LangUtil.getVmVersion()); + List<String> classpath = new ArrayList<>(); + classpath.add(java9_jrtfsjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); + assertNotNull(t); + ClassParser classParser = new ClassParser(t.getInputStream(), t.getPath()); + JavaClass clazz = classParser.parse(); + // isBlank() exists on Java 11, but not on Java9 + long c = Arrays.stream(clazz.getMethods()).filter(m -> m.getName().equals("isBlank")).count(); + assertEquals(0, c); + } + + public void xtestSanity11accessing18RTJAR() { + assertEquals(11.0, LangUtil.getVmVersion()); + List<String> classpath = new ArrayList<>(); + classpath.add(java18_rtjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/Object;")); + assertNotNull(t); + } + + public void xtestJava11accessing11JRT() throws ClassFormatException, IOException { + assertEquals(11.0, LangUtil.getVmVersion()); + List<String> classpath = new ArrayList<>(); + classpath.add(java11_jrtfsjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); + assertNotNull(t); + ClassParser classParser = new ClassParser(t.getInputStream(), t.getPath()); + JavaClass clazz = classParser.parse(); + // isBlank() exists on Java 11 + long c = Arrays.stream(clazz.getMethods()).filter(m -> m.getName().equals("isBlank")).count(); + assertEquals(1, c); + } + + public void xtestJava11accessing19JRT() throws ClassFormatException, IOException { + assertEquals(11.0, LangUtil.getVmVersion()); + List<String> classpath = new ArrayList<>(); + classpath.add(java9_jrtfsjar); + ClassPathManager cpm = new ClassPathManager(classpath, new MH()); + ClassFile t = cpm.find(UnresolvedType.forSignature("Ljava/lang/String;")); + assertNotNull(t); + ClassParser classParser = new ClassParser(t.getInputStream(), t.getPath()); + JavaClass clazz = classParser.parse(); + // isBlank() exists on Java 11, but not on Java9 + long c = Arrays.stream(clazz.getMethods()).filter(m -> m.getName().equals("isBlank")).count(); + assertEquals(0, c); + } + + static class MH implements IMessageHandler { @Override public boolean handleMessage(IMessage message) throws AbortException { @@ -232,12 +234,10 @@ public class ClasspathManagerTestCase extends TestCase { } @Override - public void dontIgnore(Kind kind) { - } + public void dontIgnore(Kind kind) {} @Override - public void ignore(Kind kind) { - } + public void ignore(Kind kind) {} - } + } } |