Parcourir la source

more tests around module options

tags/V1_9_0_RC4
Andy Clement il y a 6 ans
Parent
révision
cf7484b3d3

+ 9
- 0
tests/bugs190/modules/ggg/aaa/bbb/A.java Voir le fichier

@@ -0,0 +1,9 @@
package aaa.bbb;
import ddd.D;

public class A {
public static void main(String []argv) {
System.out.println("A running");
D.foo();
}
}

+ 5
- 0
tests/bugs190/modules/ggg/ddd/D.java Voir le fichier

@@ -0,0 +1,5 @@
package ddd;

public class D {
public static void foo() {}
}

BIN
tests/bugs190/modules/ggg/foo.jar Voir le fichier


+ 3
- 0
tests/bugs190/modules/ggg/module-info.java Voir le fichier

@@ -0,0 +1,3 @@
module my.module {
exports aaa.bbb;
}

+ 9
- 0
tests/bugs190/modules/hhh/aaa/bbb/A.java Voir le fichier

@@ -0,0 +1,9 @@
package aaa.bbb;
import ddd.D;

public class A {
public static void main(String []argv) {
System.out.println("A running");
D.foo();
}
}

+ 5
- 0
tests/bugs190/modules/hhh/ddd/D.java Voir le fichier

@@ -0,0 +1,5 @@
package ddd;

public class D {
public static void foo() {}
}

+ 3
- 0
tests/bugs190/modules/hhh/module-info-a.java Voir le fichier

@@ -0,0 +1,3 @@
module my.module.a {
exports ddd;
}

+ 3
- 0
tests/bugs190/modules/hhh/module-info-b.java Voir le fichier

@@ -0,0 +1,3 @@
module my.module.b {
exports aaa.bbb;
}

+ 21
- 0
tests/bugs190/modules/iii/UsesJAXB.java Voir le fichier

@@ -0,0 +1,21 @@
import javax.xml.transform.TransformerFactory;
import javax.xml.bind.JAXBContext;
import javax.xml.parsers.DocumentBuilderFactory;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
public class UsesJAXB {
// private static final Logger LOG = LoggerFactory.getLogger(UsesJAXB.class);
TransformerFactory tf = TransformerFactory.newInstance();
public UsesJAXB() {
// LOG.error("UMS001");
Document document;
JAXBContext context;
}
}

+ 6
- 1
tests/src/org/aspectj/systemtest/ajc190/Ajc190Tests.java Voir le fichier

@@ -13,13 +13,14 @@ package org.aspectj.systemtest.ajc190;
import java.io.File;

import org.aspectj.testing.XMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCaseForJava9OrLater;

import junit.framework.Test;

/**
* @author Andy Clement
*/
public class Ajc190Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public class Ajc190Tests extends XMLBasedAjcTestCaseForJava9OrLater {

public void testAnnotMethodHasMember_pr156962_1() { // From similar in Ajc153Tests
runTest("Test Annot Method Has Member 1");
@@ -37,6 +38,10 @@ public class Ajc190Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void testWeaveModule() throws Exception {
runTest("weave module");
}
public void testUsesJaxb() {
runTest("java use of java.xml.bind");
}

// ---


+ 20
- 19
tests/src/org/aspectj/systemtest/ajc190/ModuleTests.java Voir le fichier

@@ -9,21 +9,22 @@ package org.aspectj.systemtest.ajc190;

import java.io.File;

import junit.framework.Test;

import org.aspectj.apache.bcel.classfile.Attribute;
import org.aspectj.apache.bcel.classfile.Code;
import org.aspectj.apache.bcel.classfile.JavaClass;
import org.aspectj.apache.bcel.classfile.Method;
import org.aspectj.testing.XMLBasedAjcTestCase;
import org.aspectj.testing.XMLBasedAjcTestCaseForJava9OrLater;

import junit.framework.Test;

/**
* Building and weaving with modules in the picture...
* Building and weaving with modules in the picture.
*
* @author Andy Clement
*
*/
public class ModuleTests extends org.aspectj.testing.XMLBasedAjcTestCase {
public class ModuleTests extends XMLBasedAjcTestCaseForJava9OrLater {

public void testBuildAModule() {
runTest("build a module");
@@ -44,31 +45,30 @@ public class ModuleTests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void testBuildModuleIncludingAspects() {
runTest("compile module including aspects");
}
public void testBuildModuleAndApplyAspectsFromAspectPath() {
runTest("compile module and apply aspects via aspectpath");
}

public void testBinaryWeavingAModuleJar() {
// Pass a module on inpath, does it weave ok with a source aspect, does it run afterwards?
runTest("binary weaving module");
}

// can't really write these tests now... pure jdt seems to allow type resolution against module path for types
// not in modules being compiled but javac does not

public void xtestReferenceTypesFromModuleInBuildingSomeCode() {
runTest("compile regular code using module code");
}

public void xtestReferenceTypesFromModuleInBuildingSomeCodeButCantSeeThem() {
runTest("compile regular code using module code that isn't visible");
public void testModulepathClasspathResolution1() {
runTest("module path vs classpath 1");
}

public void xtestBinaryWeavingInvolvingTypesOnModulePath() {
fail();
// public void testModulepathClasspathResolution2() {
// runTest("module path vs classpath 2");
// }
// This tests that when using --add-modules with one of the JDK modules (in the jmods subfolder of the JDK)
// that it can be found without needing to set --module-path (this seems to be implicitly included by javac too)
public void testAddModules1() {
runTest("java use of java.xml.bind");
}

public void xtestLoadtimeWeavingWithModulePathContainingTypes() {
fail();
}
/* For the specified class, check that each method has a stackmap attribute */
private void checkStackMapExistence(String classname, String toIgnore) throws ClassNotFoundException {
toIgnore = "_" + (toIgnore == null ? "" : toIgnore) + "_";
@@ -131,6 +131,7 @@ public class ModuleTests extends org.aspectj.testing.XMLBasedAjcTestCase {
return XMLBasedAjcTestCase.loadSuite(ModuleTests.class);
}

@Override
protected File getSpecFile() {
return getClassResource("ajc190.xml");
}

+ 63
- 0
tests/src/org/aspectj/systemtest/ajc190/ajc190.xml Voir le fichier

@@ -78,6 +78,69 @@
</run>
</ajc-test>
<ajc-test dir="bugs190/modules/eee" title="compile module and apply aspects via aspectpath">
<compile files="module-info.java aaa/bbb/A.java" options="-1.9" outjar="my.module.jar"/>
<file deletefile="module-info.java"/>
<file deletefile="aaa"/>
<compile files="Azpect.java" outjar="azpects.jar"/>
<compile options="-showWeaveInfo" inpath="my.module.jar" aspectpath="azpects.jar" outjar="my.module.woven.jar">
<message kind="weave" text="Join point 'method-execution(void aaa.bbb.A.main(java.lang.String[]))' in Type 'aaa.bbb.A' (A.java:4) advised by before advice from 'aspects.Azpect' (azpects.jar!Azpect.class:4(from Azpect.java))"/>
</compile>
<file deletefile="my.module.jar"/>
<run classpath="my.module.woven.jar:azpects.jar" class="aaa.bbb.A">
<stdout>
<line text="Azpect running"/>
<line text="A running"/>
</stdout>
</run>
</ajc-test>
<ajc-test dir="bugs190/modules/ggg" title="module path vs classpath 1">
<!-- build some simple code into a jar we can depend on *not a module* -->
<compile files="ddd/D.java" options="-1.9" outjar="foo.jar"/>
<file deletefile="ddd/D.java"/>
<!-- compile a module that depends on that -->
<!-- this fails because if you start working with modules you commit to the modules story and classpath
becomes irrelevant -->
<compile files="module-info.java aaa/bbb/A.java" options="-1.9" outjar="module.jar" classpath="foo.jar">
<message kind="error" text="The import ddd cannot be resolved"/>
<message kind="error" text="D cannot be resolved"/>
</compile>
</ajc-test>
<ajc-test dir="bugs190/modules/hhh" title="module path vs classpath 2">
<!-- build some simple code into a jar we can depend on *not a module* -->
<file renamefrom="module-info-a.java" renameto="module-info.java"/>
<compile files="module-info.java ddd/D.java" options="-1.9" outjar="my.module.a.jar"/>
<!--
<file renamefrom="module-info-b.java" renameto="module-info.java"/>
<compile files="module-info.java aaa/bbb/A.java" options="-1.9" outjar="my.module.b.jar" modulepath="my.module.a.jar"/>
-->
</ajc-test>
<ajc-test dir="bugs190/modules/iii" title="java use of java.xml.bind">
<compile files="UsesJAXB.java" options="--add-modules java.xml.bind -1.9"/>
</ajc-test>
<!--
<compile files="module-info.java aaa/bbb/A.java" options="-1.9" outjar="module.jar" aspectpath="foo.jar"/>
<compile files="module-info.java aaa/bbb/A.java" options="-1.9" outjar="my.module.jar"/>
<file deletefile="module-info.java"/>
<file deletefile="aaa"/>
<compile files="Azpect.java" outjar="azpects.jar"/>
<compile options="-showWeaveInfo" inpath="my.module.jar" aspectpath="azpects.jar" outjar="my.module.woven.jar">
<message kind="weave" text="Join point 'method-execution(void aaa.bbb.A.main(java.lang.String[]))' in Type 'aaa.bbb.A' (A.java:4) advised by before advice from 'aspects.Azpect' (azpects.jar!Azpect.class:4(from Azpect.java))"/>
</compile>
<file deletefile="my.module.jar"/>
<run classpath="my.module.woven.jar:azpects.jar" class="aaa.bbb.A">
<stdout>
<line text="Azpect running"/>
<line text="A running"/>
</stdout>
</run>
</ajc-test>
-->
<ajc-test dir="bugs190/modules" title="weave module">
<compile files="aspect1/Azpect1.java" inpath="module1/module-one.jar" outjar="runner.jar" options="-1.8"/>
<java classpath="runner.jar" class="a.b.c.Code"/>

Chargement…
Annuler
Enregistrer