diff options
Diffstat (limited to 'tests')
4 files changed, 187 insertions, 9 deletions
diff --git a/tests/java5/ataspectj/ataspectj/MultipleBindingTest.java b/tests/java5/ataspectj/ataspectj/MultipleBindingTest.java new file mode 100644 index 000000000..366a127cb --- /dev/null +++ b/tests/java5/ataspectj/ataspectj/MultipleBindingTest.java @@ -0,0 +1,167 @@ +/******************************************************************************* + * Copyright (c) 2005 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://eclipse.org/legal/epl-v10.html + * + * Contributors: + * Alexandre Vasseur initial implementation + *******************************************************************************/ +package ataspectj; + +import junit.framework.TestCase; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.reflect.SourceLocation; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Around; +import org.aspectj.runtime.internal.AroundClosure; + +/** + * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a> + */ +public class MultipleBindingTest extends TestCase { + + static StringBuffer s_log = new StringBuffer(); + static void log(String s) { + s_log.append(s).append(" "); + } + + public static void main(String[] args) { + TestHelper.runAndThrowOnFailure(suite()); + } + + public static junit.framework.Test suite() { + return new junit.framework.TestSuite(MultipleBindingTest.class); + } + + public void testMultipleJoinPoint() { + s_log = new StringBuffer(); + Target.dump(new JoinPoint() { + public String toShortString() { + return "jpFromApp"; + } + + public String toLongString() { + return null; + } + + public Object getThis() { + return null; + } + + public Object getTarget() { + return null; + } + + public Object[] getArgs() { + return new Object[0]; + } + + public Signature getSignature() { + return null; + } + + public SourceLocation getSourceLocation() { + return null; + } + + public String getKind() { + return null; + } + + public StaticPart getStaticPart() { + return null; + } + }); + assertEquals("jpFromApp execution(MultipleBindingTest.Target.dump(..)) execution(MultipleBindingTest.Target.dump(..)) jpFromApp ", s_log.toString()); + } + + public void testMultipleProceedingJoinPoint() { + s_log = new StringBuffer(); + Target.dump2(new ProceedingJoinPoint() { + public void set$AroundClosure(AroundClosure arc) { + + } + + public Object proceed() throws Throwable { + return null; + } + + public Object proceed(Object[] args) throws Throwable { + return null; + } + + public String toShortString() { + return "pjpFromApp"; + } + + public String toLongString() { + return null; + } + + public Object getThis() { + return null; + } + + public Object getTarget() { + return null; + } + + public Object[] getArgs() { + return new Object[0]; + } + + public Signature getSignature() { + return null; + } + + public SourceLocation getSourceLocation() { + return null; + } + + public String getKind() { + return null; + } + + public StaticPart getStaticPart() { + return null; + } + + }); + assertEquals("pjpFromApp execution(MultipleBindingTest.Target.dump2(..)) execution(MultipleBindingTest.Target.dump2(..)) pjpFromApp ", s_log.toString()); + } + + static class Target { + static void dump(JoinPoint jp) { + log(jp.toShortString()); + } + static void dump2(ProceedingJoinPoint pjp) { + log(pjp.toShortString()); + } + } + + @Aspect + public static class TestAspect { + + @Before("execution(* ataspectj.MultipleBindingTest.Target.dump(..)) && args(ajp)") + public void before(JoinPoint ajp, JoinPoint jp, JoinPoint jpbis) { + log(ajp.toShortString()); + log(jp.toShortString()); + log(jpbis.toShortString()); + } + + @Around("execution(* ataspectj.MultipleBindingTest.Target.dump2(..)) && args(apjp)") + public Object around(ProceedingJoinPoint apjp, ProceedingJoinPoint pjp, ProceedingJoinPoint pjpbis) throws Throwable { + log(apjp.toShortString()); + log(pjp.toShortString()); + log(pjpbis.toShortString()); + return pjp.proceed(); + } + } + +} diff --git a/tests/java5/ataspectj/ataspectj/SingletonAspectBindingsTest.java b/tests/java5/ataspectj/ataspectj/SingletonAspectBindingsTest.java index e59821cb8..d94d2af0a 100644 --- a/tests/java5/ataspectj/ataspectj/SingletonAspectBindingsTest.java +++ b/tests/java5/ataspectj/ataspectj/SingletonAspectBindingsTest.java @@ -134,15 +134,15 @@ public class SingletonAspectBindingsTest extends TestCase { } // public void testHe() throws Throwable { -// //Allow to look inn file based on advises/advised-by offset numbers -// File f = new File("../tests/java5/ataspectj/ataspectj/SingletonAspectBindingsTest2.aj"); +// //Allow to look inn file based on advises/advised-by offset numbers +// File f = new File("../tests/java5/ataspectj/ataspectj/SingletonAspectBindingsTest.java"); // FileReader r = new FileReader(f); // int i = 0; -// for (i = 0; i < 2800; i++) { +// for (i = 0; i < 3700; i++) { // r.read(); // } -// for (;i < 2900; i++) { -// if (i == 2817) System.out.print("X"); +// for (;i < 3800; i++) { +// if (i==3721 || i == 3742 || i == 3777) System.out.print("X"); // System.out.print((char)r.read()); // } // System.out.print("|DONE"); diff --git a/tests/src/org/aspectj/systemtest/ajc150/ataspectj/AtAjSyntaxTests.java b/tests/src/org/aspectj/systemtest/ajc150/ataspectj/AtAjSyntaxTests.java index 7cec3892b..8d3813021 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ataspectj/AtAjSyntaxTests.java +++ b/tests/src/org/aspectj/systemtest/ajc150/ataspectj/AtAjSyntaxTests.java @@ -41,11 +41,11 @@ public class AtAjSyntaxTests extends XMLBasedAjcTestCase { public void testSingletonAspectBindings() { //Note AV: uncomment setReporting to get it in modules/tests folder - org.aspectj.asm.AsmManager.setReporting("debug.txt",true,true,true,true); + //org.aspectj.asm.AsmManager.setReporting("debug.txt",true,true,true,true); runTest("singletonAspectBindings"); // same stuff with AJ //org.aspectj.asm.AsmManager.setReporting("debug-aj.txt",true,true,true,true); - //runTest("singletonAspectBindings2"); + runTest("singletonAspectBindings2"); } @@ -112,4 +112,8 @@ public class AtAjSyntaxTests extends XMLBasedAjcTestCase { public void testIfPointcut2() { runTest("IfPointcut2Test"); } + + public void testMultipleBinding() { + runTest("MultipleBinding"); + } }
\ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/ajc150/ataspectj/syntax.xml b/tests/src/org/aspectj/systemtest/ajc150/ataspectj/syntax.xml index f4e209b07..212dbd4f9 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ataspectj/syntax.xml +++ b/tests/src/org/aspectj/systemtest/ajc150/ataspectj/syntax.xml @@ -131,10 +131,17 @@ </ajc-test> <ajc-test dir="java5/ataspectj" title="perClauseInheritance"> -<!-- <compile files="ataspectj/PerClauseInheritanceTest.java,ataspectj/TestHelper.java" options="-1.5 -XnoInline"/>--> -<!-- <run class="ataspectj.PerClauseInheritanceTest"/>--> + <compile files="ataspectj/PerClauseInheritanceTest.java,ataspectj/TestHelper.java" options="-1.5 -XnoInline"/> + <run class="ataspectj.PerClauseInheritanceTest"/> <compile files="ataspectj/PerClauseInheritanceTest.java,ataspectj/TestHelper.java" options="-1.5 -XnoInline -Xdev:NoAtAspectJProcessing"/> <run class="ataspectj.PerClauseInheritanceTest"/> </ajc-test> + <ajc-test dir="java5/ataspectj" title="MultipleBinding"> + <compile files="ataspectj/MultipleBindingTest.java,ataspectj/TestHelper.java" options="-1.5 -Xdev:NoAtAspectJProcessing -XnoInline"/> + <run class="ataspectj.MultipleBindingTest"/> + <compile files="ataspectj/MultipleBindingTest.java,ataspectj/TestHelper.java" options="-1.5 -Xdev:NoAtAspectJProcessing"/> + <run class="ataspectj.MultipleBindingTest"/> + </ajc-test> + </suite>
\ No newline at end of file |