Procházet zdrojové kódy

tests for pr113447 from Helen Hawkins.

tags/V1_5_0RC1
aclement před 18 roky
rodič
revize
1cd86ff91e

tests/bugs150/PR113447.java → tests/bugs150/pr113447/PR113447.java Zobrazit soubor

@@ -15,12 +15,13 @@ aspect Super {

// second method doesn't exist
pointcut pc1(PR113447 s) :
(this(s) && execution(void method1()))
|| (this(s) && execution(void method2()));
(this(PR113447) && this(s) && execution(void method1()) && this(PR113447))
|| (this(s) && execution(void method2()) && this(PR113447));

before(PR113447 s) : pc1(s) {
}
/*
// second method does exist
pointcut pc2(PR113447 s) :
(this(s) && execution(void method1()))
@@ -36,5 +37,6 @@ aspect Super {

before(PR113447 s) : pc3(s) {
}
*/

}

+ 65
- 0
tests/bugs150/pr113447/PR113447a.java Zobrazit soubor

@@ -0,0 +1,65 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
@interface Annotation{};

@Annotation
public class PR113447a {

public static void main(String[] args) {
PR113447a me = new PR113447a();
me.method1();
me.method3();
me.method4(2);
}
public void method1(){}

public void method3(){}
public void method4(int i){}
public void method5(int i){}
}

aspect Super {

// second method doesn't exist
pointcut pc1(Annotation a) :
(@this(a) && execution(void method1()))
|| (@this(a) && execution(void method2()));

before(Annotation a) : pc1(a) {}
// second method does exist
pointcut pc2(Annotation a) :
(@this(a) && execution(void method1()))
|| (@this(a) && execution(void method3()));

before(Annotation a) : pc2(a) {}
// second method doesn't exist
pointcut pc3(Annotation a) :
(@target(a) && call(void method1()))
|| (@target(a) && call(void method2()));

before(Annotation a) : pc3(a) {
}
// second method does exist
pointcut pc4(Annotation a) :
(@target(a) && call(void method1()))
|| (@target(a) && call(void method3()));

before(Annotation a) : pc4(a) {
}
// @this equivalent of BaseTests.test024 which was affected by
// the fix for the non annotation version
pointcut p(Annotation a) :
@target(a) && (call(void method4(int))
|| call(void method5(int)));

before(Annotation a) : p(a) {}
after(Annotation a): p(a) {}
}

+ 27
- 0
tests/bugs150/pr113447/PR113447b.java Zobrazit soubor

@@ -0,0 +1,27 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
@interface Annotation{};

@Annotation
public class PR113447b {

public static void main(String[] args) {
PR113447b me = new PR113447b();
me.method4(1);
}
public void method4(int i){}
public void method5(int i){}
}

aspect Super {

pointcut p(Annotation a) :
@within(a) && (call(void method4(int))
|| call(void method5(int)));

before(Annotation a) : p(a) {}

}

+ 27
- 0
tests/bugs150/pr113447/PR113447c.java Zobrazit soubor

@@ -0,0 +1,27 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
@interface Annotation{};

public class PR113447c {

@Annotation
public static void main(String[] args) {
PR113447c me = new PR113447c();
me.method4(1);
}

public void method4(int i){}
public void method5(int i){}
}

aspect Super {

pointcut p(Annotation a) :
@withincode(a) && (call(void method4(int))
|| call(void method5(int)));

before(Annotation a) : p(a) {}

}

+ 25
- 0
tests/bugs150/pr113447/PR113447d.java Zobrazit soubor

@@ -0,0 +1,25 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
@interface Annotation{};

public class PR113447d {

public static void main(String[] args) {
PR113447d me = new PR113447d();
me.method4(1);
}
@Annotation public void method4(int i){}
@Annotation public void method5(int i){}
}

aspect Super {
pointcut p(Annotation a) :
@annotation(a) && (call(void method4(int))
|| call(void method5(int)));

before(Annotation a) : p(a) {}
}

+ 36
- 0
tests/bugs150/pr113447/PR113447e.java Zobrazit soubor

@@ -0,0 +1,36 @@
public class PR113447e {

public static void main(String[] args) {
PR113447e me = new PR113447e();
me.method1(1);
me.method3(2);
}
public void method1(int i){}

public void method3(int i){}
}

aspect Super {

// second method doesn't exist
pointcut pc1(int i) :
(args(i) && call(void method1(int)))
|| (args(i) && call(void method2(int)));

before(int i) : pc1(i) {}
// second method does exist
pointcut pc2(int i) :
(args(i) && call(void method1(int)))
|| (args(i) && call(void method3(int)));

before(int i) : pc2(i) {}
// ensure this still works
pointcut pc3(int i) :
args(i) && (call(void method1(int)) || call(void method2(int)));
before(int i) : pc3(i) {}
after(int i) : pc3(i) {}
}

+ 25
- 4
tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java Zobrazit soubor

@@ -658,10 +658,6 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
runTest("weaveinfo message for declare at method on an ITDd method");
}
public void testNoVerifyErrorWithTwoThisPCDs_pr113447() {
runTest("no verify error with two this pcds");
}
public void testITDCWithNoExplicitConsCall() {
runTest("ITDC with no explicit cons call");
}
@@ -682,6 +678,31 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
runTest("pointcut expression containing 'assert'");
}
public void testNoVerifyErrorWithTwoThisPCDs_pr113447() {
runTest("no verify error with two this pcds");
}

public void testNoVerifyErrorWithTwoAtThisPCDs_pr113447() {
runTest("no verify error with two at this pcds");
}
public void testNoVerifyErrorWithAtWithinPCDs_pr113447() {
runTest("no verify error with at within pcds");
}
public void testNoVerifyErrorWithAtWithincodePCDs_pr113447() {
runTest("no verify error with at withincode pcds");
}
public void testNoVerifyErrorWithAtAnnotationPCDs_pr113447() {
runTest("no verify error with at annotation pcds");
}
public void testNoVerifyErrorWithTwoArgsPCDs_pr113447() {
runTest("no verify error with two args pcds");
}
// helper methods.....
public SyntheticRepository createRepos(File cpentry) {

+ 31
- 1
tests/src/org/aspectj/systemtest/ajc150/ajc150.xml Zobrazit soubor

@@ -934,12 +934,42 @@
</compile>
</ajc-test>

<ajc-test dir="bugs150" title="no verify error with two this pcds">
<ajc-test dir="bugs150/pr113447" title="no verify error with two this pcds">
<compile files="PR113447.java">
</compile>
<run class="PR113447"/>
</ajc-test>

<ajc-test dir="bugs150/pr113447" title="no verify error with two at this pcds">
<compile files="PR113447a.java" options="-1.5">
</compile>
<run class="PR113447a"/>
</ajc-test>

<ajc-test dir="bugs150/pr113447" title="no verify error with at within pcds">
<compile files="PR113447b.java" options="-1.5">
</compile>
<run class="PR113447b"/>
</ajc-test>

<ajc-test dir="bugs150/pr113447" title="no verify error with at withincode pcds">
<compile files="PR113447c.java" options="-1.5">
</compile>
<run class="PR113447c"/>
</ajc-test>

<ajc-test dir="bugs150/pr113447" title="no verify error with at annotation pcds">
<compile files="PR113447d.java" options="-1.5">
</compile>
<run class="PR113447d"/>
</ajc-test>

<ajc-test dir="bugs150/pr113447" title="no verify error with two args pcds">
<compile files="PR113447e.java" options="-1.5">
</compile>
<run class="PR113447e"/>
</ajc-test>

<!-- ============================================================================ -->
<!-- ============================================================================ -->

Načítá se…
Zrušit
Uložit