diff options
author | jhugunin <jhugunin> | 2003-01-07 20:49:38 +0000 |
---|---|---|
committer | jhugunin <jhugunin> | 2003-01-07 20:49:38 +0000 |
commit | 1e721079e0cec90516b4629272c178ff377ec75b (patch) | |
tree | 4461efd429afe8ea0e319a5d028010d789b787c9 /tests | |
parent | 2b680c46c54d8d5c3069b29686282d7fff720b1c (diff) | |
download | aspectj-1e721079e0cec90516b4629272c178ff377ec75b.tar.gz aspectj-1e721079e0cec90516b4629272c178ff377ec75b.zip |
tests from bugzilla
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ajcTests.xml | 16 | ||||
-rw-r--r-- | tests/ajcTestsFailing.xml | 1 | ||||
-rw-r--r-- | tests/bugs/CloseConnectionsCflow.java | 57 | ||||
-rw-r--r-- | tests/bugs/ConstructorArgTracing.java | 16 | ||||
-rw-r--r-- | tests/bugs/EnsureOverriding.java | 45 | ||||
-rw-r--r-- | tests/jimTests.xml | 7 |
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" |