/* ******************************************************************* * Copyright (c) 2004 IBM Corporation * All rights reserved. * This program and the accompanying materials are made available * under the terms of the Eclipse Public License v 2.0 * which accompanies this distribution and is available at * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt * * ******************************************************************/ package org.aspectj.systemtest.ajc11; import org.aspectj.testing.XMLBasedAjcTestCase; import junit.framework.Test; public class Ajc11Tests extends org.aspectj.testing.XMLBasedAjcTestCase { public static Test suite() { return XMLBasedAjcTestCase.loadSuite(Ajc11Tests.class); } protected java.net.URL getSpecFile() { return getClassResource("ajc11.xml"); } public void test001() { runTest("declare interface extends class"); } public void test002() { runTest("declare interface implements class"); } public void test003() { runTest("declaring a private method on an inner interface"); } public void test004() { runTest("CE expected when declaring fields on arrays"); } public void test005() { runTest("signature of handler join point"); } public void test006() { runTest("source locations within expressions"); } public void test007() { runTest("crashes given method in declared method"); } public void test008() { runTest("after returning advice on interface constructor"); } public void test009() { runTest("after returning advice on interface constructor - error"); } public void test010() { runTest("after advice on static call join point"); } public void test011() { runTest("incompatible class change error"); } public void test012() { runTest("simple cflow of method execution"); } public void test013() { runTest("using instance as class reference to constant field"); } public void test014() { runTest("interface self-reference in anonymous instance"); } public void test015() { runTest("self-reference from (aspect-declared) method-local class"); } public void test016() { runTest("expect CE for unterminated declare error"); } public void test017() { runTest("expect CE for declaration collision between subaspects instead of domination order"); } public void test018() { runTest("subtype pattern in dominates should pick out aspect subtypes"); } public void test019() { runTest("subtype pattern in dominates will conflict with type pattern"); } public void test020() { runTest("after returning advice on interface and implementation constructor"); } public void test021() { runTest("after throwing advice with non-throwable formal"); } public void test022() { runTest("declare array field using postfix"); } public void test023() { runTest("prohibit declaring new aspect constructor with arguments"); } public void test024() { runTest("prohibit declaring only aspect constructor with arguments"); } public void test025() { runTest("declare class extends interface"); } public void test026() { runTest("declare class implements class"); } public void test027() { runTest("declare interface implements interface"); } public void test028() { runTest("if and cflow arg binding"); } public void test029() { runTest("circularity in declare dominates"); } public void test030() { runTest("percflow code hangs compiler"); } public void test031() { runTest("Verification error tracing constructor that takes arguments"); } public void test032() { runTest("declared exceptions in inter-type decls"); } public void test033() { runTest("Verify error on non-Throwable in declare soft"); } public void test034() { runTest("inter-type fields with array types"); } public void test035() { runTest("checking around join point for advice return type - numeric"); } public void test036() { runTest("void around advice without proceed"); } public void test037() { runTest("declaring method on superclass and subclass"); } public void test038() { runTest("introducing final fields (simple)"); } public void test039() { runTest("introducing final fields and using as constants"); } public void test040() { runTest("introducing final fields and checking errors"); } public void test041() { runTest("Static inner aspects cannot reference user defined pointcuts"); } public void test042() { runTest("Static inner aspects cannot reference user defined pointcuts"); } public void test043() { runTest("Declare precedence should not allow multiple * patterns"); } public void test044() { runTest("VerifyError on accessing objects not accessible to the weaver"); } public void test045() { runTest("aspect static initializers should run before instance constructed"); } public void test046() { runTest("super call in intertype method declaration body causes VerifyError"); } public void test047() { runTest("Error with certain combination of advice"); } public void test048() { runTest("Pointcut adviceexecution() does not work"); } public void test049() { runTest("problems with finalize call"); } public void test050() { runTest("Negation of if pointcut does not work"); } public void test051() { runTest("ajc reports error when encountering static declaration of nested classes"); } public void test052() { runTest("can't use pointcuts defined in inner aspects "); } public void test053() { runTest("can't resolve nested public interfaces (also PR#32399)"); } public void test054() { runTest("thisJoinPoint.getArgs() causes IncompatibleClassChangeError"); } public void test055() { runTest("inter-type declaration of void field"); } public void test056() { runTest("no such constructor for proceed argument (error)"); } public void test057() { runTest("omnibus declare warning context with no initializer/constructor"); } public void test058() { runTest("omnibus declare warning context"); } public void test059() { runTest("cflow binding issues with ignoring state"); } public void test060() { runTest("cflow binding -- original weaver crash"); } public void test061() { runTest("type not imported in around advice"); } public void test062() { runTest("type not imported in aspect"); } public void test063() { runTest("class extending abstract aspect"); } public void test064() { runTest("declare soft and throw statements"); } public void test065() { runTest("inter-type declaration bug with abstract classes"); } public void test066() { runTest("Inter type declaration to base class not seen by derived class"); } public void test067() { runTest("Declare parents with intermediate ancestor"); } public void test068() { runTest("Declare parents removing ancestor"); } public void test069() { runTest("IllegalAccessError while accessing introduced variable / 1.1rc1"); } public void test070() { runTest("implemented abstract pointcut"); } public void test071() { runTest("privileged aspect main verify error"); } public void test072() { runTest("Internal compiler error with thisJoinPoint.getStaticPart()"); } public void test073() { runTest("Inconsistant stack height with around"); } public void test074() { runTest("Ajc 1.1 rc1 java.lang.VerifyError with messy arounds"); } public void test075() { runTest("try/finally in around advice (same as ...messy arounds?)"); } public void test076() { runTest("advise join points in subclass of empty interface"); } public void test077() { runTest("can't put around advice on interface static initializer"); } public void test078() { runTest("cflow concretization causing assertion failure"); } public void test079() { runTest("lame error message: negation doesn't allow binding"); } public void test080() { runTest("Error when introducing members of type Class"); } // public void test081(){ // runTest("arrays via Class.forName()"); // } public void test082() { runTest("perthis and inline arounds"); } public void test083() { runTest("Weaver fails with NPE for very large source files "); } public void test084() { runTest("CLE: no sources"); } public void test085() { runTest("CLE: bad filename"); } public void test086() { runTest("CLE: no dir specified for sourceroots"); } public void test087() { runTest("CLE: no sourceroot specified for incremental"); } public void test088() { runTest("CLE: file specified with incremental"); } public void test089() { runTest("public static fields being ignored"); } public void test090() { runTest("can not resolve this member warning"); } public void test091() { runTest("try switch VerifyError, InconsistentStackHeight"); } public void test092() { runTest("Compiler crash in ajc 1.1 - terrible error for inaccessible constructor - 1.7"); } public void test093() { runTest("Missing import crashes compiler"); } public void test094() { runTest("NPE in bcel.LazyMethodGen when delegating from one ctor to a second that includes a switch"); } public void test095() { runTest("switch statement in aspects crashes weaving"); } public void test096() { runTest("ajc stack trace on declaring hashcode() method in aspect"); } public void test097() { runTest("using super in method introduced on interface with multiple supertypes"); } public void test098() { runTest("Compiler crashes in jar and cflow (with no .jar)"); } public void test099() { runTest("Compiler crashes in jar and cflow (with .jar)"); } public void test100() { runTest("Default method impl for interface causes internal exception."); } public void test102() { runTest("compile error expected for abstract pointcut outside abstract aspect"); } public void test103() { runTest("subtype-qualified pointcut reference"); } public void test104() { runTest("weaver trace on mis-qualified pointcut reference"); } public void test105() { runTest("compile error expected for interface pointcuts"); } public void test106() { runTest("interface call signatures when declaring method in aspect"); } public void test107() { runTest("reflective check of declared exceptions from aspect-declared methods"); } public void test108() { runTest("throw derivative pointcuts not advised"); } public void test109() { runTest("perthis and signature bad interaction"); } public void test110() { runTest("declare error fails on pointcuts composed from multiple classes"); } public void test111() { runTest("declare error fails on pointcuts composed from multiple classes"); } public void test112() { runTest("Interaction between pointcut binding and declare parents"); } public void test113() { runTest("Non-functional concretezation of ReferencePointcut"); } public void test114() { runTest("zip and jar suffixes for extdirs entries"); } }