Skip to content

Commit

Permalink
Expand regression tests for GitHub bug #24
Browse files Browse the repository at this point in the history
More test cases were added for
  - multi-dimensional arrays,
  - primitive type arrays.

Relates to #24.

Signed-off-by: Alexander Kriegisch <[email protected]>
  • Loading branch information
kriegaex committed Jan 15, 2023
1 parent be60722 commit 9198f15
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 13 deletions.
16 changes: 16 additions & 0 deletions tests/bugs1919/github_24/ExactlyMatchingAspect.aj
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,20 @@ public aspect ExactlyMatchingAspect {
after() : execution(public MaybeMissingClass[] MaybeMissingClass.*()) {
System.out.println(thisJoinPoint);
}

after() : execution(public MaybeMissingClass[][] MaybeMissingClass.*()) {
System.out.println(thisJoinPoint);
}

after() : execution(public int MaybeMissingClass.*()) {
System.out.println(thisJoinPoint);
}

after() : execution(public int[] MaybeMissingClass.*()) {
System.out.println(thisJoinPoint);
}

after() : execution(public int[][] MaybeMissingClass.*()) {
System.out.println(thisJoinPoint);
}
}
16 changes: 16 additions & 0 deletions tests/bugs1919/github_24/FuzzilyMatchingAspect.aj
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,20 @@ public aspect FuzzilyMatchingAspect {
after() : execution(public MaybeMissing*[] MaybeMissing*.*()) {
System.out.println(thisJoinPoint);
}

after() : execution(public MaybeMissing*[][] MaybeMissing*.*()) {
System.out.println(thisJoinPoint);
}

after() : execution(public in* MaybeMissing*.*()) {
System.out.println(thisJoinPoint);
}

after() : execution(public in*[] MaybeMissing*.*()) {
System.out.println(thisJoinPoint);
}

after() : execution(public in*[][] MaybeMissing*.*()) {
System.out.println(thisJoinPoint);
}
}
24 changes: 24 additions & 0 deletions tests/bugs1919/github_24/MaybeMissingClass.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ public class MaybeMissingClass {
public static void main(String[] args) {
f1();
f2();
f3();
f4();
f5();
f6();
}

public static MaybeMissingClass f1() {
Expand All @@ -13,4 +17,24 @@ public static MaybeMissingClass[] f2() {
System.out.println("MaybeMissingClass.f2");
return null;
}

public static MaybeMissingClass[][] f3() {
System.out.println("MaybeMissingClass.f3");
return null;
}

public static int f4() {
System.out.println("MaybeMissingClass.f4");
return 0;
}

public static int[] f5() {
System.out.println("MaybeMissingClass.f5");
return new int[2];
}

public static int[][] f6() {
System.out.println("MaybeMissingClass.f6");
return new int[2][2];
}
}
69 changes: 56 additions & 13 deletions tests/src/test/resources/org/aspectj/systemtest/ajc1919/ajc1919.xml
Original file line number Diff line number Diff line change
Expand Up @@ -229,15 +229,27 @@
<ajc-test dir="bugs1919/github_24" vm="1.5" title="exact array type matching, aspect compiled together with target class">
<compile files="ExactlyMatchingAspect.aj MaybeMissingClass.java" options="-1.5 -showWeaveInfo">
<!-- Even before the bugfix, in this case weaving worked as expected -->
<message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())'"/>
<message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())'"/>
<message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())"/>
<message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())"/>
<message kind="weave" text="method-execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/>
<message kind="weave" text="method-execution(int MaybeMissingClass.f4())"/>
<message kind="weave" text="method-execution(int[] MaybeMissingClass.f5())"/>
<message kind="weave" text="method-execution(int[][] MaybeMissingClass.f6())"/>
</compile>
<run class="MaybeMissingClass">
<stdout>
<line text="MaybeMissingClass.f1"/>
<line text="execution(MaybeMissingClass MaybeMissingClass.f1())"/>
<line text="MaybeMissingClass.f2"/>
<line text="execution(MaybeMissingClass[] MaybeMissingClass.f2())"/>
<line text="MaybeMissingClass.f3"/>
<line text="execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/>
<line text="MaybeMissingClass.f4"/>
<line text="execution(int MaybeMissingClass.f4())"/>
<line text="MaybeMissingClass.f5"/>
<line text="execution(int[] MaybeMissingClass.f5())"/>
<line text="MaybeMissingClass.f6"/>
<line text="execution(int[][] MaybeMissingClass.f6())"/>
</stdout>
</run>
</ajc-test>
Expand All @@ -248,24 +260,32 @@
-->
<ajc-test dir="bugs1919/github_24" vm="1.5" title="exact array type matching, aspect compiled separately from target class">
<compile files="ExactlyMatchingAspect.aj" options="-1.5 -showWeaveInfo" outjar="aspect.jar">
<message kind="warning" text="no match for this type name: MaybeMissingClass [Xlint:invalidAbsoluteTypeName]"/>
<message kind="warning" text="no match for this type name: MaybeMissingClass [Xlint:invalidAbsoluteTypeName]"/>
<message kind="warning" text="no match for this type name: MaybeMissingClass [Xlint:invalidAbsoluteTypeName]"/>
<message kind="warning" text="no match for this type name: MaybeMissingClass [Xlint:invalidAbsoluteTypeName]"/>
<message kind="warning" text="advice defined in ExactlyMatchingAspect has not been applied [Xlint:adviceDidNotMatch]"/>
<message kind="warning" text="advice defined in ExactlyMatchingAspect has not been applied [Xlint:adviceDidNotMatch]"/>
</compile>
<compile files="MaybeMissingClass.java" options="-1.5 -showWeaveInfo" aspectpath="aspect.jar">
<!-- Before the bugfix, f1 would be woven twice, f2 not at all-->
<message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())'"/>
<message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())'"/>
<message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())"/>
<message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())"/>
<message kind="weave" text="method-execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/>
<message kind="weave" text="method-execution(int MaybeMissingClass.f4())"/>
<message kind="weave" text="method-execution(int[] MaybeMissingClass.f5())"/>
<message kind="weave" text="method-execution(int[][] MaybeMissingClass.f6())"/>
</compile>
<run class="MaybeMissingClass" classpath="aspect.jar">
<stdout>
<line text="MaybeMissingClass.f1"/>
<line text="execution(MaybeMissingClass MaybeMissingClass.f1())"/>
<line text="MaybeMissingClass.f2"/>
<line text="execution(MaybeMissingClass[] MaybeMissingClass.f2())"/>
<line text="MaybeMissingClass.f3"/>
<line text="execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/>
<line text="MaybeMissingClass.f4"/>
<line text="execution(int MaybeMissingClass.f4())"/>
<line text="MaybeMissingClass.f5"/>
<line text="execution(int[] MaybeMissingClass.f5())"/>
<line text="MaybeMissingClass.f6"/>
<line text="execution(int[][] MaybeMissingClass.f6())"/>
</stdout>
</run>
</ajc-test>
Expand All @@ -277,15 +297,27 @@
<ajc-test dir="bugs1919/github_24" vm="1.5" title="fuzzy array type matching, aspect compiled together with target class">
<compile files="FuzzilyMatchingAspect.aj MaybeMissingClass.java" options="-1.5 -showWeaveInfo">
<!-- Before the bugfix, both f1 and f2 would be woven twice -->
<message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())'"/>
<message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())'"/>
<message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())"/>
<message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())"/>
<message kind="weave" text="method-execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/>
<message kind="weave" text="method-execution(int MaybeMissingClass.f4())"/>
<message kind="weave" text="method-execution(int[] MaybeMissingClass.f5())"/>
<message kind="weave" text="method-execution(int[][] MaybeMissingClass.f6())"/>
</compile>
<run class="MaybeMissingClass">
<stdout>
<line text="MaybeMissingClass.f1"/>
<line text="execution(MaybeMissingClass MaybeMissingClass.f1())"/>
<line text="MaybeMissingClass.f2"/>
<line text="execution(MaybeMissingClass[] MaybeMissingClass.f2())"/>
<line text="MaybeMissingClass.f3"/>
<line text="execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/>
<line text="MaybeMissingClass.f4"/>
<line text="execution(int MaybeMissingClass.f4())"/>
<line text="MaybeMissingClass.f5"/>
<line text="execution(int[] MaybeMissingClass.f5())"/>
<line text="MaybeMissingClass.f6"/>
<line text="execution(int[][] MaybeMissingClass.f6())"/>
</stdout>
</run>
</ajc-test>
Expand All @@ -297,19 +329,30 @@
<ajc-test dir="bugs1919/github_24" vm="1.5" title="fuzzy array type matching, aspect compiled separately from target class">
<compile files="FuzzilyMatchingAspect.aj" options="-1.5 -showWeaveInfo" outjar="aspect.jar">
<message kind="warning" text="advice defined in FuzzilyMatchingAspect has not been applied [Xlint:adviceDidNotMatch]"/>
<message kind="warning" text="advice defined in FuzzilyMatchingAspect has not been applied [Xlint:adviceDidNotMatch]"/>
</compile>
<compile files="MaybeMissingClass.java" options="-1.5 -showWeaveInfo" aspectpath="aspect.jar">
<!-- Before the bugfix, both f1 and f2 would be woven twice -->
<message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())'"/>
<message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())'"/>
<message kind="weave" text="method-execution(MaybeMissingClass MaybeMissingClass.f1())"/>
<message kind="weave" text="method-execution(MaybeMissingClass[] MaybeMissingClass.f2())"/>
<message kind="weave" text="method-execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/>
<message kind="weave" text="method-execution(int MaybeMissingClass.f4())"/>
<message kind="weave" text="method-execution(int[] MaybeMissingClass.f5())"/>
<message kind="weave" text="method-execution(int[][] MaybeMissingClass.f6())"/>
</compile>
<run class="MaybeMissingClass" classpath="aspect.jar">
<stdout>
<line text="MaybeMissingClass.f1"/>
<line text="execution(MaybeMissingClass MaybeMissingClass.f1())"/>
<line text="MaybeMissingClass.f2"/>
<line text="execution(MaybeMissingClass[] MaybeMissingClass.f2())"/>
<line text="MaybeMissingClass.f3"/>
<line text="execution(MaybeMissingClass[][] MaybeMissingClass.f3())"/>
<line text="MaybeMissingClass.f4"/>
<line text="execution(int MaybeMissingClass.f4())"/>
<line text="MaybeMissingClass.f5"/>
<line text="execution(int[] MaybeMissingClass.f5())"/>
<line text="MaybeMissingClass.f6"/>
<line text="execution(int[][] MaybeMissingClass.f6())"/>
</stdout>
</run>
</ajc-test>
Expand Down

0 comments on commit 9198f15

Please sign in to comment.