Browse Source

tests from bugzilla

tags/V_1_1_b5
jhugunin 21 years ago
parent
commit
1e721079e0

+ 16
- 0
tests/ajcTests.xml View File

@@ -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>

+ 0
- 1
tests/ajcTestsFailing.xml View File

@@ -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">

+ 57
- 0
tests/bugs/CloseConnectionsCflow.java View File

@@ -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();

}

}

}

+ 16
- 0
tests/bugs/ConstructorArgTracing.java View File

@@ -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);
}
}

+ 45
- 0
tests/bugs/EnsureOverriding.java View File

@@ -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;
}
}
}

+ 1
- 6
tests/jimTests.xml View File

@@ -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"

Loading…
Cancel
Save