Browse Source

test cases for Bugzilla Bug 42743: declare soft limitation

tags/V1_5_0M2
acolyer 19 years ago
parent
commit
204274dc05

+ 41
- 0
tests/decs/DeclareSoftRuntimeException.aj View File

@@ -0,0 +1,41 @@
public aspect DeclareSoftRuntimeException {
declare soft : MyRuntimeException : execution(* *(..));
declare soft : MyException : execution(* *(..));
declare soft : Exception : execution(void throwMyExceptionButNotReally());
public static void main(String[] args) {
try {
throwMyRuntimeException();
} catch(Exception ex) {
System.out.println(ex.getClass().getName());
}
try {
throwMyException();
} catch(Exception ex) {
System.out.println(ex.getClass().getName());
}
try {
throwMyExceptionButNotReally();
} catch(Exception ex) {
System.out.println(ex.getClass().getName());
}
}
private static void throwMyRuntimeException() {
throw new MyRuntimeException();
}
private static void throwMyException() throws MyException {
throw new MyException();
}
private static void throwMyExceptionButNotReally() throws MyException {
throw new MyRuntimeException();
}
}

class MyRuntimeException extends RuntimeException {}

class MyException extends Exception {}

+ 23
- 0
tests/decs/VerifyError.aj View File

@@ -0,0 +1,23 @@
import java.io.IOException;
import org.aspectj.lang.SoftException;

public class VerifyError {

static void foo() throws IOException {
throw new IOException();
}

public static void main(String[] args) throws Exception{
try {
foo();
} catch (SoftException sEx) {
//
}
}
}


aspect Soften {

declare soft : IOException : call(* foo());
}

+ 9
- 1
tests/src/org/aspectj/systemtest/ajc150/Ajc150Tests.java View File

@@ -111,7 +111,7 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void test051_arrayCloningInJava5() {
runTest("AJC possible bug with static nested classes");
}
public void testBadASMforEnums() throws IOException {
runTest("bad asm for enums");
@@ -128,6 +128,14 @@ public class Ajc150Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void npeOnTypeNotFound() {
runTest("structure model npe on type not found");
}
public void testNoRuntimeExceptionSoftening() {
runTest("declare soft of runtime exception");
}
public void testRuntimeNoSoftenWithHandler() {
runTest("declare soft w. catch block");
}
// helper methods.....

+ 19
- 0
tests/src/org/aspectj/systemtest/ajc150/ajc150.xml View File

@@ -54,6 +54,25 @@
<run class="B"/>
</ajc-test>
<ajc-test dir="decs" pr="42743" title="declare soft of runtime exception">
<compile files="DeclareSoftRuntimeException.aj">
<message kind="warning" line="3" text="MyRuntimeException will not be softened as it is already a RuntimeException"/>
</compile>
<run class="DeclareSoftRuntimeException">
<stdout>
<line text="MyRuntimeException"/>
<line text="org.aspectj.lang.SoftException"/>
<line text="MyRuntimeException"/>
</stdout>
</run>
</ajc-test>

<ajc-test dir="decs" pr="42743" title="declare soft w. catch block">
<compile files="VerifyError.aj">
</compile>
<run class="VerifyError"/>
</ajc-test>
<ajc-test dir="bugs" pr="61568" title="Various kinds of ambiguous bindings">
<compile files="AmbiguousBindings.aj">
<message line="17" text="ambiguous binding of parameter(s) foo across '||' in pointcut"></message>

Loading…
Cancel
Save