summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2003-01-07 20:49:38 +0000
committerjhugunin <jhugunin>2003-01-07 20:49:38 +0000
commit1e721079e0cec90516b4629272c178ff377ec75b (patch)
tree4461efd429afe8ea0e319a5d028010d789b787c9 /tests
parent2b680c46c54d8d5c3069b29686282d7fff720b1c (diff)
downloadaspectj-1e721079e0cec90516b4629272c178ff377ec75b.tar.gz
aspectj-1e721079e0cec90516b4629272c178ff377ec75b.zip
tests from bugzilla
Diffstat (limited to 'tests')
-rw-r--r--tests/ajcTests.xml16
-rw-r--r--tests/ajcTestsFailing.xml1
-rw-r--r--tests/bugs/CloseConnectionsCflow.java57
-rw-r--r--tests/bugs/ConstructorArgTracing.java16
-rw-r--r--tests/bugs/EnsureOverriding.java45
-rw-r--r--tests/jimTests.xml7
6 files changed, 135 insertions, 7 deletions
diff --git a/tests/ajcTests.xml b/tests/ajcTests.xml
index 5b6c70d8f..b5d9a0362 100644
--- a/tests/ajcTests.xml
+++ b/tests/ajcTests.xml
@@ -5432,4 +5432,20 @@
</compile>
</ajc-test>
+ <ajc-test dir="bugs" pr="28702" title="percflow code hangs compiler">
+ <compile files="CloseConnectionsCflow.java">
+ </compile>
+ </ajc-test>
+
+ <ajc-test dir="bugs" pr="28703" title="assert and pertarget crashes compiler">
+ <compile files="EnsureOverriding.java" options="-1.4"/>
+ <run class="EnsureOverriding"/>
+ </ajc-test>
+
+ <ajc-test dir="bugs" pr="28852"
+ title="Verification error tracing constructor that takes arguments">
+ <compile files="ConstructorArgTracing.java"/>
+ <run class="ConstructorArgTracing"/>
+ </ajc-test>
+
</suite>
diff --git a/tests/ajcTestsFailing.xml b/tests/ajcTestsFailing.xml
index 6133db99d..142e7e30b 100644
--- a/tests/ajcTestsFailing.xml
+++ b/tests/ajcTestsFailing.xml
@@ -52,7 +52,6 @@
<run class="pack.ImportInnerFromInterfaceImplementor"/>
</ajc-test>
-
<ajc-test dir="bugs" pr="906"
title="privileged access to code outside the control of the compiler">
<compile files="PrivilegeBeyondScope.java">
diff --git a/tests/bugs/CloseConnectionsCflow.java b/tests/bugs/CloseConnectionsCflow.java
new file mode 100644
index 000000000..10f0e330e
--- /dev/null
+++ b/tests/bugs/CloseConnectionsCflow.java
@@ -0,0 +1,57 @@
+// Bug # 28702
+
+import java.util.Stack;
+
+
+
+interface Connection {
+
+ Connection open();
+
+ void close();
+
+}
+
+
+
+aspect CloseConnectionsCflow percflow(layerEntryMethods()) {
+
+ Stack openConnections;
+
+ pointcut layerMethods() :
+
+ execution(public * com.example.businessFacade.*.*(..));
+
+ pointcut layerEntryMethods() :
+
+ layerMethods() && !cflowbelow(layerMethods());
+
+ pointcut openedConnection() :
+
+ call(* Connection.open(..));
+
+ pointcut layerBoundary() : cflow(layerEntryMethods());
+
+
+
+ after() returning (Connection conn) :
+
+ openedConnection() && layerBoundary() {
+
+ openConnections.push(conn);
+
+ }
+
+ after() : layerBoundary() {
+
+ while (!openConnections.empty()) {
+
+ Connection conn = (Connection)openConnections.pop();
+
+ conn.close();
+
+ }
+
+ }
+
+}
diff --git a/tests/bugs/ConstructorArgTracing.java b/tests/bugs/ConstructorArgTracing.java
new file mode 100644
index 000000000..ba6311748
--- /dev/null
+++ b/tests/bugs/ConstructorArgTracing.java
@@ -0,0 +1,16 @@
+// from Bug#: 28852
+
+public class ConstructorArgTracing {
+ public ConstructorArgTracing(int arg) {
+ }
+
+ public static void main(String[] args) {
+ ConstructorArgTracing account = new ConstructorArgTracing(12345);
+ }
+}
+
+aspect TraceAspect {
+ before() : !within(TraceAspect) {
+ System.out.println(thisJoinPoint);
+ }
+}
diff --git a/tests/bugs/EnsureOverriding.java b/tests/bugs/EnsureOverriding.java
new file mode 100644
index 000000000..6c41e2861
--- /dev/null
+++ b/tests/bugs/EnsureOverriding.java
@@ -0,0 +1,45 @@
+// from Bug#: 28703
+
+class Base {
+ /** extend when overriding - must call Base.lockResource() */
+ public void lockResource(boolean dummy) { /* ... */ }
+}
+
+class Derived extends Base {
+ boolean isLocked;
+
+ public void lockResource(boolean callSuper) {
+ if (callSuper) super.lockResource(true);
+ isLocked = true;
+ }
+}
+
+public aspect EnsureOverriding pertarget(mustExtend()) {
+ boolean calledSuper = false;
+ pointcut mustExtend() :
+ execution(void Base+.lockResource(..)) && !within(Base);
+
+ after () returning: mustExtend() {
+ assert(calledSuper);
+ if (!calledSuper) { throw new RuntimeException("need super call"); }
+ }
+
+ after(Base a, Base b) returning:
+ cflow(mustExtend() && target(a)) && execution(void Base.lockResource(..)) && target(b)
+ {
+ if (a == b) {
+ //System.err.println("made call");
+ calledSuper = true;
+ }
+ }
+
+ public static void main(String args[]) {
+ (new Derived()).lockResource(true);
+ try {
+ (new Derived()).lockResource(false);
+ throw new Error("shouldn't get here");
+ } catch (RuntimeException re) {
+ if (!re.getMessage().equals("need super call")) throw re;
+ }
+ }
+}
diff --git a/tests/jimTests.xml b/tests/jimTests.xml
index 581a5bb80..57e827b8c 100644
--- a/tests/jimTests.xml
+++ b/tests/jimTests.xml
@@ -1,12 +1,7 @@
<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd">
<suite>
- <ajc-test dir="new" pr="764"
- title="binding handler args with indeterminate prefix and suffix"
- keywords="from-resolved_105">
- <compile files="IndeterminateHandlerArg.java"/>
- <run class="IndeterminateHandlerArg"/>
- </ajc-test>
+
<!--
<ajc-test dir="base/test129"
title="DEPRECATED: introduce of abstract methods works"