@@ -0,0 +1,17 @@ | |||
public class Code { | |||
public static void main(String []argv) { | |||
foo("fooname"); | |||
bar("crap","barname"); | |||
} | |||
public static void foo(String username) {} | |||
public static void bar(String a, String username) { } | |||
} | |||
aspect X { | |||
before(String username): (execution(public static * foo(..)) && args(username,..)) || | |||
(execution(public static * bar(..)) && args(*,username,..)) { | |||
System.out.println("username = "+username); | |||
} | |||
} |
@@ -0,0 +1,17 @@ | |||
public class Code2 { | |||
public static void main(String []argv) { | |||
foo("fooname"); | |||
bar("crap","barname"); | |||
} | |||
public static void foo(String username) {} | |||
public static void bar(String a, String username) { } | |||
} | |||
aspect X { | |||
before(String username): (execution(public static * foo(..)) && args(username)) || | |||
(execution(public static * bar(..)) && args(*,username)) { | |||
System.out.println("username = "+username); | |||
} | |||
} |
@@ -0,0 +1,20 @@ | |||
public class Code { | |||
public static void main(String []argv) { | |||
} | |||
} | |||
class Outer<T> { | |||
class Inner { | |||
T t; | |||
Inner(T t) { | |||
this.t =t ; | |||
} | |||
} | |||
public Inner m() {return null;} | |||
public Outer<String>.Inner m2() { | |||
Outer<String> os = new Outer<String>(); | |||
return os.new Inner("foo"); | |||
} | |||
public Outer<?>.Inner m3() {return null;} | |||
} |
@@ -13,6 +13,7 @@ package org.aspectj.systemtest; | |||
import org.aspectj.systemtest.ajc180.AllTestsAspectJ180; | |||
import org.aspectj.systemtest.ajc181.AllTestsAspectJ181; | |||
import org.aspectj.systemtest.ajc1810.AllTestsAspectJ1810; | |||
import org.aspectj.systemtest.ajc1811.AllTestsAspectJ1811; | |||
import org.aspectj.systemtest.ajc182.AllTestsAspectJ182; | |||
import org.aspectj.systemtest.ajc183.AllTestsAspectJ183; | |||
import org.aspectj.systemtest.ajc184.AllTestsAspectJ184; | |||
@@ -30,6 +31,7 @@ public class AllTests18 { | |||
public static Test suite() { | |||
TestSuite suite = new TestSuite("AspectJ System Test Suite - 1.8"); | |||
// $JUnit-BEGIN$ | |||
suite.addTest(AllTestsAspectJ1811.suite()); | |||
suite.addTest(AllTestsAspectJ1810.suite()); | |||
suite.addTest(AllTestsAspectJ189.suite()); | |||
suite.addTest(AllTestsAspectJ188.suite()); |
@@ -0,0 +1,86 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2016 Contributors | |||
* All rights reserved. This program and the accompanying materials | |||
* are made available under the terms of the Eclipse Public License v1.0 | |||
* which accompanies this distribution, and is available at | |||
* http://www.eclipse.org/legal/epl-v10.html | |||
* | |||
* Contributors: | |||
* Andy Clement - initial API and implementation | |||
*******************************************************************************/ | |||
package org.aspectj.systemtest.ajc1811; | |||
import java.io.File; | |||
import org.aspectj.apache.bcel.Constants; | |||
import org.aspectj.apache.bcel.classfile.Attribute; | |||
import org.aspectj.apache.bcel.classfile.JavaClass; | |||
import org.aspectj.apache.bcel.classfile.Method; | |||
import org.aspectj.testing.XMLBasedAjcTestCase; | |||
import org.aspectj.weaver.ResolvedMember; | |||
import org.aspectj.weaver.ResolvedType; | |||
import org.aspectj.weaver.UnresolvedType; | |||
import org.aspectj.weaver.bcel.BcelWorld; | |||
import junit.framework.Test; | |||
/** | |||
* @author Andy Clement | |||
*/ | |||
public class Ajc1811Tests extends org.aspectj.testing.XMLBasedAjcTestCase { | |||
// public void testParameterizedWithInner() throws Exception { | |||
// runTest("parameterized with inner"); | |||
// JavaClass jc = getClassFrom(ajc.getSandboxDirectory(), "Outer"); | |||
// assertNotNull(jc); | |||
// BcelWorld world = new BcelWorld(ajc.getSandboxDirectory().toString()); | |||
// | |||
// ResolvedType outerType = world.resolve(UnresolvedType.forName("Outer")); | |||
// ResolvedMember m = findMethod(outerType,"m"); | |||
// | |||
// UnresolvedType type = m.getReturnType(); | |||
// assertEquals("LOuter$Inner;",type.getSignature()); | |||
// | |||
// type = m.getGenericReturnType(); | |||
// assertEquals("LOuter$Inner;",type.getSignature()); | |||
// | |||
// ResolvedType resolvedType = world.resolve(type); | |||
// ResolvedType outerResolvedType = resolvedType.getOuterClass(); | |||
// assertEquals("LOuter;",outerResolvedType.getSignature()); | |||
// | |||
// ResolvedMember m2 = findMethod(outerType,"m2"); | |||
// type = m2.getReturnType(); | |||
// assertEquals("LOuter$Inner;",type.getSignature()); | |||
// | |||
// type = m2.getGenericReturnType(); | |||
// assertEquals("LOuter$Inner;",type.getSignature()); | |||
// | |||
// // public Inner m() { ... } | |||
// Method m = findMethod(jc,"m"); | |||
// System.out.println(m); | |||
// System.out.println(">"+m.getReturnType()); | |||
// assertNotNull(returnType); | |||
// | |||
// // public Outer<String>.Inner m2() { ... } | |||
// } | |||
// | |||
// public void testMultiArgs_509235() { | |||
// runTest("multiargs"); | |||
// } | |||
// | |||
// public void testMultiArgs_509235_2() { | |||
// runTest("multiargs - no ellipsis"); | |||
// } | |||
// --- | |||
public static Test suite() { | |||
return XMLBasedAjcTestCase.loadSuite(Ajc1811Tests.class); | |||
} | |||
@Override | |||
protected File getSpecFile() { | |||
return getClassResource("ajc1811.xml"); | |||
} | |||
} |
@@ -0,0 +1,25 @@ | |||
/******************************************************************************* | |||
* Copyright (c) 2016 Contributors | |||
* All rights reserved. This program and the accompanying materials | |||
* are made available under the terms of the Eclipse Public License v1.0 | |||
* which accompanies this distribution, and is available at | |||
* http://www.eclipse.org/legal/epl-v10.html | |||
* | |||
* Contributors: | |||
* Andy Clement - initial API and implementation | |||
*******************************************************************************/ | |||
package org.aspectj.systemtest.ajc1811; | |||
import junit.framework.Test; | |||
import junit.framework.TestSuite; | |||
public class AllTestsAspectJ1811 { | |||
public static Test suite() { | |||
TestSuite suite = new TestSuite("AspectJ 1.8.11 tests"); | |||
// $JUnit-BEGIN$ | |||
suite.addTest(Ajc1811Tests.suite()); | |||
// $JUnit-END$ | |||
return suite; | |||
} | |||
} |
@@ -0,0 +1,29 @@ | |||
<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]> | |||
<suite> | |||
<ajc-test dir="bugs1811/parameterizedWithInner" title="parameterized with inner"> | |||
<compile options="-1.8" files="Code.java"/> | |||
</ajc-test> | |||
<ajc-test dir="bugs1811/509235" title="multiargs"> | |||
<compile options="-1.8" files="Code.java"/> | |||
<run class="Code"> | |||
<stdout> | |||
<line text="username = fooname"/> | |||
<line text="username = barname"/> | |||
</stdout> | |||
</run> | |||
</ajc-test> | |||
<ajc-test dir="bugs1811/509235" title="multiargs - no ellipsis"> | |||
<compile options="-1.8" files="Code2.java"/> | |||
<run class="Code2"> | |||
<stdout> | |||
<line text="username = fooname"/> | |||
<line text="username = barname"/> | |||
</stdout> | |||
</run> | |||
</ajc-test> | |||
</suite> |