From 0f211e17cac9b031ab8d9115f9030b3e65d3927a Mon Sep 17 00:00:00 2001 From: acolyer Date: Wed, 4 Aug 2004 12:04:41 +0000 Subject: [PATCH] Spring cleaning in the test suite. Docs for AjcTestCase and XMLBasedAjcTestCase added in docs dir. --- tests/.classpath | 15 +- .../base/{ => test143}/OneArgCallsIsOkay.java | 0 .../test144}/SuperStaticCallJoinPoint.java | 0 tests/bugs/Source14Assert.java | 13 + tests/doc/allclasses-frame.html | 32 + tests/doc/allclasses-noframe.html | 32 + tests/doc/constant-values.html | 138 ++ tests/doc/deprecated-list.html | 134 ++ tests/doc/help-doc.html | 193 ++ tests/doc/index-files/index-1.html | 137 ++ tests/doc/index-files/index-10.html | 138 ++ tests/doc/index-files/index-2.html | 138 ++ tests/doc/index-files/index-3.html | 161 ++ tests/doc/index-files/index-4.html | 149 ++ tests/doc/index-files/index-5.html | 138 ++ tests/doc/index-files/index-6.html | 134 ++ tests/doc/index-files/index-7.html | 138 ++ tests/doc/index-files/index-8.html | 137 ++ tests/doc/index-files/index-9.html | 138 ++ tests/doc/index.html | 26 + .../aspectj/testing/XMLBasedAjcTestCase.html | 449 ++++ .../class-use/XMLBasedAjcTestCase.html | 136 ++ .../org/aspectj/testing/package-frame.html | 32 + .../org/aspectj/testing/package-summary.html | 149 ++ .../doc/org/aspectj/testing/package-tree.html | 152 ++ .../doc/org/aspectj/testing/package-use.html | 136 ++ .../aspectj/tools/ajc/CompilationResult.html | 563 +++++ .../ajc/class-use/CompilationResult.html | 136 ++ .../org/aspectj/tools/ajc/package-frame.html | 32 + .../aspectj/tools/ajc/package-summary.html | 148 ++ .../org/aspectj/tools/ajc/package-tree.html | 150 ++ .../org/aspectj/tools/ajc/package-use.html | 163 ++ tests/doc/overview-frame.html | 44 + tests/doc/overview-summary.html | 153 ++ tests/doc/overview-tree.html | 151 ++ tests/doc/package-list | 2 + tests/doc/packages.html | 31 + tests/doc/resources/inherit.gif | Bin 0 -> 57 bytes tests/doc/stylesheet.css | 29 + .../defaultPackage/changes/Main.20.java | 7 + .../defaultPackage/src/Main.java | 7 + .../defaultPackage/src/lib/Lib.java | 9 + .../full-rebuild/changes/Aspect.20.java | 4 + .../aspectSourceAdded/changes/Detour.20.java | 7 + .../aspectSourceAdded/src/Main.java | 9 + .../classAdded/src.20/main/Main.java | 11 + .../classAdded/src/main/Main.java | 7 + .../classRemoved/src.20/main/Main.java | 8 + .../classRemoved/src/main/Main.java | 11 + .../classUpdated/src.20/main/Main.java | 8 + .../classUpdated/src/main/Main.java | 7 + .../src/AdviceOnIntroduced.java | 26 + .../classWAroundClosureRemoved/src/Main.java | 9 + .../defaultPackage/changes/Main.30.java | 8 + .../defaultPackage/changes/Main.50.java | 7 + .../defaultPackage/changes/Target.20.java | 9 + .../changes/Target.delete.40.java | 2 + .../initialTests/defaultPackage/src/Main.java | 7 + .../sourceAdded/src.20/main/Target.java | 9 + .../sourceAdded/src.30/main/Main.java | 12 + .../sourceAdded/src/main/Main.java | 7 + .../sourceDeleted/src.30/delete/Target.java | 7 + .../sourceDeleted/src/delete/DeleteMe.java | 7 + .../sourceDeleted/src/delete/Main.java | 8 + .../sourceDeleted/src/delete/Target.java | 8 + .../interPackage/changes/Main.20.java | 8 + .../interPackage/src/app/Main.java | 8 + .../interPackage/src/lib/Lib.java | 9 + .../stringliteral/changes/Main.20.java | 16 + .../incrementalju/stringliteral/oneInjar.jar | Bin 0 -> 23726 bytes .../stringliteral/src/TraceMains.java | 18 + .../stringliteral/src/packageOne/Main.java | 15 + .../incrementalju/stringliteral/twoInjar.jar | Bin 0 -> 23911 bytes .../test117/Driver.java | 0 .../test117/Readme.txt | 0 tests/{base => pureJava}/test120/Driver.java | 0 tests/{base => pureJava}/test120/Readme.txt | 0 tests/{base => pureJava}/test126/Driver.java | 0 tests/{base => pureJava}/test126/Readme.txt | 0 tests/{base => pureJava}/test133/Driver.java | 0 .../src/org/aspectj/systemtest/AllTests.java | 55 + .../org/aspectj/systemtest/AllTests14.java | 30 + .../systemtest/ajc10x/Ajc10xTests.java | 1165 ++++++++++ .../systemtest/ajc10x/ajc10x-tests.xml | 2006 +++++++++++++++++ .../org/aspectj/systemtest/ajc10x/ajc10x.xml | 9 + .../aspectj/systemtest/ajc11/Ajc11Tests.java | 480 ++++ .../aspectj/systemtest/ajc11/ajc11-tests.xml | 834 +++++++ .../org/aspectj/systemtest/ajc11/ajc11.xml | 10 + .../systemtest/ajc120/Ajc120Tests.java | 244 ++ .../systemtest/ajc120/ajc120-tests.xml | 478 ++++ .../org/aspectj/systemtest/ajc120/ajc120.xml | 11 + .../systemtest/ajc121/Ajc121Tests.java | 84 + .../systemtest/ajc121/ajc121-tests.xml | 127 ++ .../org/aspectj/systemtest/ajc121/ajc121.xml | 12 + .../aspectpath/AspectPathTests.java | 116 + .../aspectpath/aspectpath-tests.xml | 198 ++ .../systemtest/aspectpath/aspectpath.xml | 12 + .../aspectj/systemtest/base/BaseTests.java | 188 ++ .../systemtest/base/baseTests-tests.xml | 263 +++ .../org/aspectj/systemtest/base/baseTests.xml | 10 + .../systemtest/design/DesignTests.java | 80 + .../org/aspectj/systemtest/design/design.xml | 11 + .../aspectj/systemtest/design/designtest.xml | 94 + .../incremental/IncrementalTests.java | 194 ++ .../incremental/incremental-junit-tests.xml | 197 ++ .../incremental/incremental-tests.xml | 183 ++ .../systemtest/incremental/incremental.xml | 10 + .../systemtest/inpath/InPathTests.java | 96 + .../systemtest/inpath/inpath-tests.xml | 296 +++ .../org/aspectj/systemtest/inpath/inpath.xml | 11 + .../systemtest/java14/Java14Tests.java | 115 + .../systemtest/java14/java14-tests.xml | 153 ++ .../org/aspectj/systemtest/java14/java14.xml | 11 + .../KnownLimitationsTests.java | 144 ++ .../knownLimitations-tests.xml | 297 +++ .../knownlimitations/knownLimitations.xml | 11 + .../systemtest/options/OptionsTests.java | 44 + .../systemtest/options/options-tests.xml | 37 + .../aspectj/systemtest/options/options.xml | 10 + .../systemtest/pre10x/AjcPre10xTests.java | 316 +++ .../systemtest/pre10x/pre10x-tests.xml | 629 ++++++ .../org/aspectj/systemtest/pre10x/pre10x.xml | 10 + .../systemtest/purejava/PureJavaTests.java | 992 ++++++++ .../systemtest/purejava/pureJava-tests.xml | 1894 ++++++++++++++++ .../aspectj/systemtest/purejava/pureJava.xml | 10 + .../systemtest/serialVerUID/SUIDTests.java | 96 + .../serialVerUID/serialVerUID-tests.xml | 165 ++ .../systemtest/serialVerUID/serialVerUID.xml | 10 + .../aspectj/systemtest/xlint/XLintTests.java | 104 + .../aspectj/systemtest/xlint/xlint-tests.xml | 161 ++ .../org/aspectj/systemtest/xlint/xlint.xml | 10 + 131 files changed, 17659 insertions(+), 6 deletions(-) rename tests/base/{ => test143}/OneArgCallsIsOkay.java (100%) rename tests/{new => base/test144}/SuperStaticCallJoinPoint.java (100%) create mode 100644 tests/bugs/Source14Assert.java create mode 100644 tests/doc/allclasses-frame.html create mode 100644 tests/doc/allclasses-noframe.html create mode 100644 tests/doc/constant-values.html create mode 100644 tests/doc/deprecated-list.html create mode 100644 tests/doc/help-doc.html create mode 100644 tests/doc/index-files/index-1.html create mode 100644 tests/doc/index-files/index-10.html create mode 100644 tests/doc/index-files/index-2.html create mode 100644 tests/doc/index-files/index-3.html create mode 100644 tests/doc/index-files/index-4.html create mode 100644 tests/doc/index-files/index-5.html create mode 100644 tests/doc/index-files/index-6.html create mode 100644 tests/doc/index-files/index-7.html create mode 100644 tests/doc/index-files/index-8.html create mode 100644 tests/doc/index-files/index-9.html create mode 100644 tests/doc/index.html create mode 100644 tests/doc/org/aspectj/testing/XMLBasedAjcTestCase.html create mode 100644 tests/doc/org/aspectj/testing/class-use/XMLBasedAjcTestCase.html create mode 100644 tests/doc/org/aspectj/testing/package-frame.html create mode 100644 tests/doc/org/aspectj/testing/package-summary.html create mode 100644 tests/doc/org/aspectj/testing/package-tree.html create mode 100644 tests/doc/org/aspectj/testing/package-use.html create mode 100644 tests/doc/org/aspectj/tools/ajc/CompilationResult.html create mode 100644 tests/doc/org/aspectj/tools/ajc/class-use/CompilationResult.html create mode 100644 tests/doc/org/aspectj/tools/ajc/package-frame.html create mode 100644 tests/doc/org/aspectj/tools/ajc/package-summary.html create mode 100644 tests/doc/org/aspectj/tools/ajc/package-tree.html create mode 100644 tests/doc/org/aspectj/tools/ajc/package-use.html create mode 100644 tests/doc/overview-frame.html create mode 100644 tests/doc/overview-summary.html create mode 100644 tests/doc/overview-tree.html create mode 100644 tests/doc/package-list create mode 100644 tests/doc/packages.html create mode 100644 tests/doc/resources/inherit.gif create mode 100644 tests/doc/stylesheet.css create mode 100644 tests/incrementalju/defaultPackage/changes/Main.20.java create mode 100644 tests/incrementalju/defaultPackage/src/Main.java create mode 100644 tests/incrementalju/defaultPackage/src/lib/Lib.java create mode 100644 tests/incrementalju/full-rebuild/changes/Aspect.20.java create mode 100644 tests/incrementalju/initialTests/aspectSourceAdded/changes/Detour.20.java create mode 100644 tests/incrementalju/initialTests/aspectSourceAdded/src/Main.java create mode 100644 tests/incrementalju/initialTests/classAdded/src.20/main/Main.java create mode 100644 tests/incrementalju/initialTests/classAdded/src/main/Main.java create mode 100644 tests/incrementalju/initialTests/classRemoved/src.20/main/Main.java create mode 100644 tests/incrementalju/initialTests/classRemoved/src/main/Main.java create mode 100644 tests/incrementalju/initialTests/classUpdated/src.20/main/Main.java create mode 100644 tests/incrementalju/initialTests/classUpdated/src/main/Main.java create mode 100644 tests/incrementalju/initialTests/classWAroundClosureRemoved/src/AdviceOnIntroduced.java create mode 100644 tests/incrementalju/initialTests/classWAroundClosureRemoved/src/Main.java create mode 100644 tests/incrementalju/initialTests/defaultPackage/changes/Main.30.java create mode 100644 tests/incrementalju/initialTests/defaultPackage/changes/Main.50.java create mode 100644 tests/incrementalju/initialTests/defaultPackage/changes/Target.20.java create mode 100644 tests/incrementalju/initialTests/defaultPackage/changes/Target.delete.40.java create mode 100644 tests/incrementalju/initialTests/defaultPackage/src/Main.java create mode 100644 tests/incrementalju/initialTests/sourceAdded/src.20/main/Target.java create mode 100644 tests/incrementalju/initialTests/sourceAdded/src.30/main/Main.java create mode 100644 tests/incrementalju/initialTests/sourceAdded/src/main/Main.java create mode 100644 tests/incrementalju/initialTests/sourceDeleted/src.30/delete/Target.java create mode 100644 tests/incrementalju/initialTests/sourceDeleted/src/delete/DeleteMe.java create mode 100644 tests/incrementalju/initialTests/sourceDeleted/src/delete/Main.java create mode 100644 tests/incrementalju/initialTests/sourceDeleted/src/delete/Target.java create mode 100644 tests/incrementalju/interPackage/changes/Main.20.java create mode 100644 tests/incrementalju/interPackage/src/app/Main.java create mode 100644 tests/incrementalju/interPackage/src/lib/Lib.java create mode 100644 tests/incrementalju/stringliteral/changes/Main.20.java create mode 100644 tests/incrementalju/stringliteral/oneInjar.jar create mode 100644 tests/incrementalju/stringliteral/src/TraceMains.java create mode 100644 tests/incrementalju/stringliteral/src/packageOne/Main.java create mode 100644 tests/incrementalju/stringliteral/twoInjar.jar rename tests/{base => knownLimitations}/test117/Driver.java (100%) rename tests/{base => knownLimitations}/test117/Readme.txt (100%) rename tests/{base => pureJava}/test120/Driver.java (100%) rename tests/{base => pureJava}/test120/Readme.txt (100%) rename tests/{base => pureJava}/test126/Driver.java (100%) rename tests/{base => pureJava}/test126/Readme.txt (100%) rename tests/{base => pureJava}/test133/Driver.java (100%) create mode 100644 tests/src/org/aspectj/systemtest/AllTests.java create mode 100644 tests/src/org/aspectj/systemtest/AllTests14.java create mode 100644 tests/src/org/aspectj/systemtest/ajc10x/Ajc10xTests.java create mode 100644 tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml create mode 100644 tests/src/org/aspectj/systemtest/ajc11/Ajc11Tests.java create mode 100644 tests/src/org/aspectj/systemtest/ajc11/ajc11-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/ajc11/ajc11.xml create mode 100644 tests/src/org/aspectj/systemtest/ajc120/Ajc120Tests.java create mode 100644 tests/src/org/aspectj/systemtest/ajc120/ajc120-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/ajc120/ajc120.xml create mode 100644 tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java create mode 100644 tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/ajc121/ajc121.xml create mode 100644 tests/src/org/aspectj/systemtest/aspectpath/AspectPathTests.java create mode 100644 tests/src/org/aspectj/systemtest/aspectpath/aspectpath-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/aspectpath/aspectpath.xml create mode 100644 tests/src/org/aspectj/systemtest/base/BaseTests.java create mode 100644 tests/src/org/aspectj/systemtest/base/baseTests-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/base/baseTests.xml create mode 100644 tests/src/org/aspectj/systemtest/design/DesignTests.java create mode 100644 tests/src/org/aspectj/systemtest/design/design.xml create mode 100644 tests/src/org/aspectj/systemtest/design/designtest.xml create mode 100644 tests/src/org/aspectj/systemtest/incremental/IncrementalTests.java create mode 100644 tests/src/org/aspectj/systemtest/incremental/incremental-junit-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/incremental/incremental-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/incremental/incremental.xml create mode 100644 tests/src/org/aspectj/systemtest/inpath/InPathTests.java create mode 100644 tests/src/org/aspectj/systemtest/inpath/inpath-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/inpath/inpath.xml create mode 100644 tests/src/org/aspectj/systemtest/java14/Java14Tests.java create mode 100644 tests/src/org/aspectj/systemtest/java14/java14-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/java14/java14.xml create mode 100644 tests/src/org/aspectj/systemtest/knownlimitations/KnownLimitationsTests.java create mode 100644 tests/src/org/aspectj/systemtest/knownlimitations/knownLimitations-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/knownlimitations/knownLimitations.xml create mode 100644 tests/src/org/aspectj/systemtest/options/OptionsTests.java create mode 100644 tests/src/org/aspectj/systemtest/options/options-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/options/options.xml create mode 100644 tests/src/org/aspectj/systemtest/pre10x/AjcPre10xTests.java create mode 100644 tests/src/org/aspectj/systemtest/pre10x/pre10x-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/pre10x/pre10x.xml create mode 100644 tests/src/org/aspectj/systemtest/purejava/PureJavaTests.java create mode 100644 tests/src/org/aspectj/systemtest/purejava/pureJava-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/purejava/pureJava.xml create mode 100644 tests/src/org/aspectj/systemtest/serialVerUID/SUIDTests.java create mode 100644 tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID.xml create mode 100644 tests/src/org/aspectj/systemtest/xlint/XLintTests.java create mode 100644 tests/src/org/aspectj/systemtest/xlint/xlint-tests.xml create mode 100644 tests/src/org/aspectj/systemtest/xlint/xlint.xml diff --git a/tests/.classpath b/tests/.classpath index 186521200..837601bb8 100644 --- a/tests/.classpath +++ b/tests/.classpath @@ -1,9 +1,12 @@ - - - - - - + + + + + + + + + diff --git a/tests/base/OneArgCallsIsOkay.java b/tests/base/test143/OneArgCallsIsOkay.java similarity index 100% rename from tests/base/OneArgCallsIsOkay.java rename to tests/base/test143/OneArgCallsIsOkay.java diff --git a/tests/new/SuperStaticCallJoinPoint.java b/tests/base/test144/SuperStaticCallJoinPoint.java similarity index 100% rename from tests/new/SuperStaticCallJoinPoint.java rename to tests/base/test144/SuperStaticCallJoinPoint.java diff --git a/tests/bugs/Source14Assert.java b/tests/bugs/Source14Assert.java new file mode 100644 index 000000000..bd19a97f6 --- /dev/null +++ b/tests/bugs/Source14Assert.java @@ -0,0 +1,13 @@ + + +public class Source14Assert { + private void method1() { + try { + invoke(); + } catch (Throwable throwable) { + assert false : throwable; + } + } + private void invoke() {} + public static void main(String[] args) {} +} \ No newline at end of file diff --git a/tests/doc/allclasses-frame.html b/tests/doc/allclasses-frame.html new file mode 100644 index 000000000..24f0431ae --- /dev/null +++ b/tests/doc/allclasses-frame.html @@ -0,0 +1,32 @@ + + + + + + +All Classes + + + + + + + + + + +All Classes +
+ + + + + +
CompilationResult +
+XMLBasedAjcTestCase +
+
+ + + diff --git a/tests/doc/allclasses-noframe.html b/tests/doc/allclasses-noframe.html new file mode 100644 index 000000000..a6cf2e3f8 --- /dev/null +++ b/tests/doc/allclasses-noframe.html @@ -0,0 +1,32 @@ + + + + + + +All Classes + + + + + + + + + + +All Classes +
+ + + + + +
CompilationResult +
+XMLBasedAjcTestCase +
+
+ + + diff --git a/tests/doc/constant-values.html b/tests/doc/constant-values.html new file mode 100644 index 000000000..de9f919dd --- /dev/null +++ b/tests/doc/constant-values.html @@ -0,0 +1,138 @@ + + + + + + +Constant Field Values + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Constant Field Values

+
+
+Contents + +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/deprecated-list.html b/tests/doc/deprecated-list.html new file mode 100644 index 000000000..9b9966173 --- /dev/null +++ b/tests/doc/deprecated-list.html @@ -0,0 +1,134 @@ + + + + + + +Deprecated List + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Deprecated API

+
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/help-doc.html b/tests/doc/help-doc.html new file mode 100644 index 000000000..cf0e77139 --- /dev/null +++ b/tests/doc/help-doc.html @@ -0,0 +1,193 @@ + + + + + + +API Help + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+How This API Document Is Organized

+
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

+Overview

+
+ +

+The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+

+Package

+
+ +

+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

+
+

+Class/Interface

+
+ +

+Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+

+Use

+
+Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
+

+Tree (Class Hierarchy)

+
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object. +
+

+Deprecated API

+
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+

+Index

+
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+

+Prev/Next

+These links take you to the next or previous class, interface, package, or related page.

+Frames/No Frames

+These links show and hide the HTML frames. All pages are available with or without frames. +

+

+Serialized Form

+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. +

+ + +This help file applies to API documentation generated using the standard doclet. + +
+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/index-files/index-1.html b/tests/doc/index-files/index-1.html new file mode 100644 index 000000000..1db81a776 --- /dev/null +++ b/tests/doc/index-files/index-1.html @@ -0,0 +1,137 @@ + + + + + + +A-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+A

+
+
addTest(AjcTest) - +Method in class org.aspectj.testing.XMLBasedAjcTestCase +
For use by the Digester. +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-10.html b/tests/doc/index-files/index-10.html new file mode 100644 index 000000000..a77865974 --- /dev/null +++ b/tests/doc/index-files/index-10.html @@ -0,0 +1,138 @@ + + + + + + +X-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+X

+
+
XMLBasedAjcTestCase - class org.aspectj.testing.XMLBasedAjcTestCase.
Root class for all Test suites that are based on an AspectJ XML test suite + file.
XMLBasedAjcTestCase() - +Constructor for class org.aspectj.testing.XMLBasedAjcTestCase +
  +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-2.html b/tests/doc/index-files/index-2.html new file mode 100644 index 000000000..53cab5179 --- /dev/null +++ b/tests/doc/index-files/index-2.html @@ -0,0 +1,138 @@ + + + + + + +C-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+C

+
+
CompilationResult - class org.aspectj.tools.ajc.CompilationResult.
Utility class that makes the results of a compiler run available.
CompilationResult(String[], String, String, List, List, List, List) - +Constructor for class org.aspectj.tools.ajc.CompilationResult +
Build a compilation result - called by the Ajc.compile and + Ajc.doIncrementalCompile methods. +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-3.html b/tests/doc/index-files/index-3.html new file mode 100644 index 000000000..48820dabf --- /dev/null +++ b/tests/doc/index-files/index-3.html @@ -0,0 +1,161 @@ + + + + + + +G-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+G

+
+
getArgs() - +Method in class org.aspectj.tools.ajc.CompilationResult +
The arguments that were passed to the compiler. +
getCurrentTest() - +Method in class org.aspectj.testing.XMLBasedAjcTestCase +
Get the currently executing test. +
getErrorMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
The error messages produced by the compiler. +
getFailMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
The fail or abort messages produced by the compiler. +
getInfoMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
The informational messages produced by the compiler. +
getSpecFile() - +Method in class org.aspectj.testing.XMLBasedAjcTestCase +
The file containing the XML specification for the tests. +
getStandardError() - +Method in class org.aspectj.tools.ajc.CompilationResult +
The standard error written by the compiler, excluding any messages. +
getStandardOutput() - +Method in class org.aspectj.tools.ajc.CompilationResult +
The standard output written by the compiler, excluding any messages. +
getWarningMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
The warning messages produced by the compiler. +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-4.html b/tests/doc/index-files/index-4.html new file mode 100644 index 000000000..ce61119e4 --- /dev/null +++ b/tests/doc/index-files/index-4.html @@ -0,0 +1,149 @@ + + + + + + +H-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+H

+
+
hasErrorMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
True if the compiler issued one or more error messages. +
hasFailMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
True if the compiler issued one or more fail or abort messages. +
hasInfoMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
True if the compiler issued one or more informational messages. +
hasMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
True if the compiler issued any messages of any kind. +
hasWarningMessages() - +Method in class org.aspectj.tools.ajc.CompilationResult +
True if the compiler issued one or more warning messages. +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-5.html b/tests/doc/index-files/index-5.html new file mode 100644 index 000000000..172e8bafb --- /dev/null +++ b/tests/doc/index-files/index-5.html @@ -0,0 +1,138 @@ + + + + + + +L-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+L

+
+
loadSuite(Class) - +Static method in class org.aspectj.testing.XMLBasedAjcTestCase +
You must define a suite() method in subclasses, and return + the result of calling this method. +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-6.html b/tests/doc/index-files/index-6.html new file mode 100644 index 000000000..6c4a935bf --- /dev/null +++ b/tests/doc/index-files/index-6.html @@ -0,0 +1,134 @@ + + + + + + +O-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+O

+
+
org.aspectj.testing - package org.aspectj.testing
 
org.aspectj.tools.ajc - package org.aspectj.tools.ajc
 
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-7.html b/tests/doc/index-files/index-7.html new file mode 100644 index 000000000..27a33b434 --- /dev/null +++ b/tests/doc/index-files/index-7.html @@ -0,0 +1,138 @@ + + + + + + +R-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+R

+
+
runTest(String) - +Method in class org.aspectj.testing.XMLBasedAjcTestCase +
This helper method runs the test with the given title in the + suite spec file. +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-8.html b/tests/doc/index-files/index-8.html new file mode 100644 index 000000000..870b926cf --- /dev/null +++ b/tests/doc/index-files/index-8.html @@ -0,0 +1,137 @@ + + + + + + +S-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+S

+
+
setUp() - +Method in class org.aspectj.testing.XMLBasedAjcTestCase +
  +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index-files/index-9.html b/tests/doc/index-files/index-9.html new file mode 100644 index 000000000..e85a8b75c --- /dev/null +++ b/tests/doc/index-files/index-9.html @@ -0,0 +1,138 @@ + + + + + + +T-Index + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+

+T

+
+
toString() - +Method in class org.aspectj.tools.ajc.CompilationResult +
Returns string containing message count summary, list of messages + by type, and the actual ajc compilation command that was issued. +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + +A C G H L O R S T X
+ + + diff --git a/tests/doc/index.html b/tests/doc/index.html new file mode 100644 index 000000000..533347c29 --- /dev/null +++ b/tests/doc/index.html @@ -0,0 +1,26 @@ + + + + + + +Generated Documentation (Untitled) + + + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to<A HREF="overview-summary.html">Non-frame version.</A> + + + diff --git a/tests/doc/org/aspectj/testing/XMLBasedAjcTestCase.html b/tests/doc/org/aspectj/testing/XMLBasedAjcTestCase.html new file mode 100644 index 000000000..6e8784378 --- /dev/null +++ b/tests/doc/org/aspectj/testing/XMLBasedAjcTestCase.html @@ -0,0 +1,449 @@ + + + + + + +XMLBasedAjcTestCase + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.aspectj.testing +
+Class XMLBasedAjcTestCase

+
+java.lang.Object
+  extended byjunit.framework.Assert
+      extended byjunit.framework.TestCase
+          extended byorg.aspectj.tools.ajc.AjcTestCase
+              extended byorg.aspectj.testing.XMLBasedAjcTestCase
+
+
+
All Implemented Interfaces:
junit.framework.Test
+
+
+
+
public abstract class XMLBasedAjcTestCase
extends org.aspectj.tools.ajc.AjcTestCase
+ +

+Root class for all Test suites that are based on an AspectJ XML test suite + file. Extends AjcTestCase allowing a mix of programmatic and spec-file + driven testing. See org.aspectj.systemtest.incremental.IncrementalTests for + an example of this mixed style. +

The class org.aspectj.testing.MakeTestClass will generate a subclass of + this class for you, given a suite spec. file as input...

+

+ +

+


+ +

+ + + + + + + +
+Nested Class Summary
+ + + + + + + +
Nested classes inherited from class org.aspectj.tools.ajc.AjcTestCase
org.aspectj.tools.ajc.AjcTestCase.Message, org.aspectj.tools.ajc.AjcTestCase.MessageSpec, org.aspectj.tools.ajc.AjcTestCase.RunResult
+  + + + + + + + +
+Field Summary
+ + + + + + + +
Fields inherited from class org.aspectj.tools.ajc.AjcTestCase
ajc
+  + + + + + + + + + + +
+Constructor Summary
XMLBasedAjcTestCase() + +
+           
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ voidaddTest(org.aspectj.testing.AjcTest test) + +
+          For use by the Digester.
+protected  org.aspectj.testing.AjcTestgetCurrentTest() + +
+          Get the currently executing test.
+protected abstract  java.io.FilegetSpecFile() + +
+          The file containing the XML specification for the tests.
+static junit.framework.TestloadSuite(java.lang.Class testCaseClass) + +
+          You must define a suite() method in subclasses, and return + the result of calling this method.
+protected  voidrunTest(java.lang.String title) + +
+          This helper method runs the test with the given title in the + suite spec file.
+protected  voidsetUp() + +
+           
+ + + + + + + +
Methods inherited from class org.aspectj.tools.ajc.AjcTestCase
ajc, assertMessages, assertMessages, assertNoMessages, assertNoMessages, newMessageList, newMessageList, newMessageList, newMessageList, run, run, setShouldEmptySandbox, tearDown
+ + + + + + + +
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, run, runBare, runTest, setName, toString
+ + + + + + + +
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+XMLBasedAjcTestCase

+
+public XMLBasedAjcTestCase()
+
+
+ + + + + + + + +
+Method Detail
+ +

+loadSuite

+
+public static junit.framework.Test loadSuite(java.lang.Class testCaseClass)
+
+
You must define a suite() method in subclasses, and return + the result of calling this method. (Don't you hate static + methods in programming models). For example: +
+   public static Test suite() {
+     return XMLBasedAjcTestCase.loadSuite(MyTestCaseClass.class);
+   }
+ 
+

+

+
Parameters:
testCaseClass - +
Returns:
+
+
+
+ +

+getSpecFile

+
+protected abstract java.io.File getSpecFile()
+
+
The file containing the XML specification for the tests. +

+

+
+
+
+
+ +

+runTest

+
+protected void runTest(java.lang.String title)
+
+
This helper method runs the test with the given title in the + suite spec file. All tests steps in given ajc-test execute + in the same sandbox. +

+

+
+
+
+
+ +

+getCurrentTest

+
+protected org.aspectj.testing.AjcTest getCurrentTest()
+
+
Get the currently executing test. Useful for access to e.g. + AjcTest.getTitle() etc.. +

+

+
+
+
+
+ +

+addTest

+
+public void addTest(org.aspectj.testing.AjcTest test)
+
+
For use by the Digester. As the XML document is parsed, it creates instances + of AjcTest objects, which are added to this TestCase by the Digester by + calling this method. +

+

+
+
+
+
+ +

+setUp

+
+protected void setUp()
+              throws java.lang.Exception
+
+
+ +
Throws: +
java.lang.Exception
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/testing/class-use/XMLBasedAjcTestCase.html b/tests/doc/org/aspectj/testing/class-use/XMLBasedAjcTestCase.html new file mode 100644 index 000000000..71426868e --- /dev/null +++ b/tests/doc/org/aspectj/testing/class-use/XMLBasedAjcTestCase.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class org.aspectj.testing.XMLBasedAjcTestCase + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.aspectj.testing.XMLBasedAjcTestCase

+
+No usage of org.aspectj.testing.XMLBasedAjcTestCase +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/testing/package-frame.html b/tests/doc/org/aspectj/testing/package-frame.html new file mode 100644 index 000000000..1851d3c29 --- /dev/null +++ b/tests/doc/org/aspectj/testing/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +org.aspectj.testing + + + + + + + + + + + +org.aspectj.testing + + + + +
+Classes  + +
+XMLBasedAjcTestCase
+ + + + diff --git a/tests/doc/org/aspectj/testing/package-summary.html b/tests/doc/org/aspectj/testing/package-summary.html new file mode 100644 index 000000000..9a4cf0188 --- /dev/null +++ b/tests/doc/org/aspectj/testing/package-summary.html @@ -0,0 +1,149 @@ + + + + + + +org.aspectj.testing + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.aspectj.testing +

+ + + + + + + + + +
+Class Summary
XMLBasedAjcTestCaseRoot class for all Test suites that are based on an AspectJ XML test suite + file.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/testing/package-tree.html b/tests/doc/org/aspectj/testing/package-tree.html new file mode 100644 index 000000000..22965845d --- /dev/null +++ b/tests/doc/org/aspectj/testing/package-tree.html @@ -0,0 +1,152 @@ + + + + + + +org.aspectj.testing Class Hierarchy + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.aspectj.testing +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/testing/package-use.html b/tests/doc/org/aspectj/testing/package-use.html new file mode 100644 index 000000000..cdfafd474 --- /dev/null +++ b/tests/doc/org/aspectj/testing/package-use.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Package org.aspectj.testing + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.aspectj.testing

+
+No usage of org.aspectj.testing +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/tools/ajc/CompilationResult.html b/tests/doc/org/aspectj/tools/ajc/CompilationResult.html new file mode 100644 index 000000000..e725457f9 --- /dev/null +++ b/tests/doc/org/aspectj/tools/ajc/CompilationResult.html @@ -0,0 +1,563 @@ + + + + + + +CompilationResult + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ +

+ +org.aspectj.tools.ajc +
+Class CompilationResult

+
+java.lang.Object
+  extended byorg.aspectj.tools.ajc.CompilationResult
+
+
+
+
public class CompilationResult
extends java.lang.Object
+ +

+Utility class that makes the results of a compiler run available. +

+ Instances of this class are returned by the Ajc.compile() and + doIncrementalCompile() methods (and the AjcTestCase.ajc() wrapper). +

+

+ This class provides a useful toString() method that is very helpful when + debugging or creating messages for assert statements. +

+

Note that the stdOut and stdErr captured from the compiler run do + not contain any rendered messages - these are in the messages lists + instead. Therefore for many compiler runs, they will be empty. +

+

+ +

+


+ +

+ + + + + + + + + + + + + + + + + +
+Constructor Summary
+protected CompilationResult(java.lang.String[] args, + java.lang.String stdOut, + java.lang.String stdErr, + java.util.List infoMessages, + java.util.List errorMessages, + java.util.List warningMessages, + java.util.List failMessages) + +
+          Build a compilation result - called by the Ajc.compile and + Ajc.doIncrementalCompile methods.
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Method Summary
+ java.lang.String[]getArgs() + +
+          The arguments that were passed to the compiler.
+ java.util.ListgetErrorMessages() + +
+          The error messages produced by the compiler.
+ java.util.ListgetFailMessages() + +
+          The fail or abort messages produced by the compiler.
+ java.util.ListgetInfoMessages() + +
+          The informational messages produced by the compiler.
+ java.lang.StringgetStandardError() + +
+          The standard error written by the compiler, excluding any messages.
+ java.lang.StringgetStandardOutput() + +
+          The standard output written by the compiler, excluding any messages.
+ java.util.ListgetWarningMessages() + +
+          The warning messages produced by the compiler.
+ booleanhasErrorMessages() + +
+          True if the compiler issued one or more error messages.
+ booleanhasFailMessages() + +
+          True if the compiler issued one or more fail or abort messages.
+ booleanhasInfoMessages() + +
+          True if the compiler issued one or more informational messages.
+ booleanhasMessages() + +
+          True if the compiler issued any messages of any kind.
+ booleanhasWarningMessages() + +
+          True if the compiler issued one or more warning messages.
+ java.lang.StringtoString() + +
+          Returns string containing message count summary, list of messages + by type, and the actual ajc compilation command that was issued.
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
+  +

+ + + + + + + + + + + +
+Constructor Detail
+ +

+CompilationResult

+
+protected CompilationResult(java.lang.String[] args,
+                            java.lang.String stdOut,
+                            java.lang.String stdErr,
+                            java.util.List infoMessages,
+                            java.util.List errorMessages,
+                            java.util.List warningMessages,
+                            java.util.List failMessages)
+
+
Build a compilation result - called by the Ajc.compile and + Ajc.doIncrementalCompile methods. Should be no need for you + to construct an instance yourself. +

+

+ + + + + + + + +
+Method Detail
+ +

+getArgs

+
+public java.lang.String[] getArgs()
+
+
The arguments that were passed to the compiler. +

+

+
+
+
+
+ +

+getStandardOutput

+
+public java.lang.String getStandardOutput()
+
+
The standard output written by the compiler, excluding any messages. +

+

+
+
+
+
+ +

+getStandardError

+
+public java.lang.String getStandardError()
+
+
The standard error written by the compiler, excluding any messages. +

+

+
+
+
+
+ +

+hasMessages

+
+public boolean hasMessages()
+
+
True if the compiler issued any messages of any kind. +

+

+
+
+
+
+ +

+hasInfoMessages

+
+public boolean hasInfoMessages()
+
+
True if the compiler issued one or more informational messages. +

+

+
+
+
+
+ +

+hasErrorMessages

+
+public boolean hasErrorMessages()
+
+
True if the compiler issued one or more error messages. +

+

+
+
+
+
+ +

+hasWarningMessages

+
+public boolean hasWarningMessages()
+
+
True if the compiler issued one or more warning messages. +

+

+
+
+
+
+ +

+hasFailMessages

+
+public boolean hasFailMessages()
+
+
True if the compiler issued one or more fail or abort messages. +

+

+
+
+
+
+ +

+getInfoMessages

+
+public java.util.List getInfoMessages()
+
+
The informational messages produced by the compiler. The list + entries are the IMessage objects created during the + compile - so that you can programmatically test source locations + etc. etc.. It may often be easier to use the assertMessages + helper methods defined in the AjcTestCase class to test for messages + though. +

+

+
See Also:
AjcTestCase
+
+
+
+ +

+getErrorMessages

+
+public java.util.List getErrorMessages()
+
+
The error messages produced by the compiler. The list + entries are the IMessage objects created during the + compile - so that you can programmatically test source locations + etc. etc.. It may often be easier to use the assertMessages + helper methods defined in the AjcTestCase class to test for messages + though. +

+

+
See Also:
AjcTestCase
+
+
+
+ +

+getWarningMessages

+
+public java.util.List getWarningMessages()
+
+
The warning messages produced by the compiler. The list + entries are the IMessage objects created during the + compile - so that you can programmatically test source locations + etc. etc.. It may often be easier to use the assertMessages + helper methods defined in the AjcTestCase class to test for messages + though. +

+

+
See Also:
AjcTestCase
+
+
+
+ +

+getFailMessages

+
+public java.util.List getFailMessages()
+
+
The fail or abort messages produced by the compiler. The list + entries are the IMessage objects created during the + compile - so that you can programmatically test source locations + etc. etc.. It may often be easier to use the assertMessages + helper methods defined in the AjcTestCase class to test for messages + though. +

+

+
See Also:
AjcTestCase
+
+
+
+ +

+toString

+
+public java.lang.String toString()
+
+
Returns string containing message count summary, list of messages + by type, and the actual ajc compilation command that was issued. +

+

+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/tools/ajc/class-use/CompilationResult.html b/tests/doc/org/aspectj/tools/ajc/class-use/CompilationResult.html new file mode 100644 index 000000000..0918deeaa --- /dev/null +++ b/tests/doc/org/aspectj/tools/ajc/class-use/CompilationResult.html @@ -0,0 +1,136 @@ + + + + + + +Uses of Class org.aspectj.tools.ajc.CompilationResult + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Class
org.aspectj.tools.ajc.CompilationResult

+
+No usage of org.aspectj.tools.ajc.CompilationResult +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/tools/ajc/package-frame.html b/tests/doc/org/aspectj/tools/ajc/package-frame.html new file mode 100644 index 000000000..914388486 --- /dev/null +++ b/tests/doc/org/aspectj/tools/ajc/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +org.aspectj.tools.ajc + + + + + + + + + + + +org.aspectj.tools.ajc + + + + +
+Classes  + +
+CompilationResult
+ + + + diff --git a/tests/doc/org/aspectj/tools/ajc/package-summary.html b/tests/doc/org/aspectj/tools/ajc/package-summary.html new file mode 100644 index 000000000..5d4f44f59 --- /dev/null +++ b/tests/doc/org/aspectj/tools/ajc/package-summary.html @@ -0,0 +1,148 @@ + + + + + + +org.aspectj.tools.ajc + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+

+Package org.aspectj.tools.ajc +

+ + + + + + + + + +
+Class Summary
CompilationResultUtility class that makes the results of a compiler run available.
+  + +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/tools/ajc/package-tree.html b/tests/doc/org/aspectj/tools/ajc/package-tree.html new file mode 100644 index 000000000..ee4f11996 --- /dev/null +++ b/tests/doc/org/aspectj/tools/ajc/package-tree.html @@ -0,0 +1,150 @@ + + + + + + +org.aspectj.tools.ajc Class Hierarchy + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For Package org.aspectj.tools.ajc +

+
+
+
Package Hierarchies:
All Packages
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/org/aspectj/tools/ajc/package-use.html b/tests/doc/org/aspectj/tools/ajc/package-use.html new file mode 100644 index 000000000..a8ee0acb9 --- /dev/null +++ b/tests/doc/org/aspectj/tools/ajc/package-use.html @@ -0,0 +1,163 @@ + + + + + + +Uses of Package org.aspectj.tools.ajc + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Uses of Package
org.aspectj.tools.ajc

+
+ + + + + + + + + +
+Packages that use org.aspectj.tools.ajc
org.aspectj.testing  
+  +

+ + + + + + + + +
+Classes in org.aspectj.tools.ajc used by org.aspectj.testing
AjcTestCase + +
+          A TestCase class that acts as the superclass for all test cases wishing + to drive the ajc compiler.
+  +

+


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/overview-frame.html b/tests/doc/overview-frame.html new file mode 100644 index 000000000..009b4a6fb --- /dev/null +++ b/tests/doc/overview-frame.html @@ -0,0 +1,44 @@ + + + + + + +Overview + + + + + + + + + + + + + + + +
+
+ + + + + +
All Classes +

+ +Packages +
+org.aspectj.testing +
+org.aspectj.tools.ajc +
+

+ +

+  + + diff --git a/tests/doc/overview-summary.html b/tests/doc/overview-summary.html new file mode 100644 index 000000000..ef1d4666d --- /dev/null +++ b/tests/doc/overview-summary.html @@ -0,0 +1,153 @@ + + + + + + +Overview + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +


+
+

+Writing ajc test cases +

+
+ + + + + + + + + + + + + +
+Packages
org.aspectj.testing 
org.aspectj.tools.ajc 
+ +


+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/overview-tree.html b/tests/doc/overview-tree.html new file mode 100644 index 000000000..b0a0d97c6 --- /dev/null +++ b/tests/doc/overview-tree.html @@ -0,0 +1,151 @@ + + + + + + +Class Hierarchy + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + +
+
+

+Hierarchy For All Packages

+
+
+
Package Hierarchies:
org.aspectj.testing, org.aspectj.tools.ajc
+
+

+Class Hierarchy +

+ +
+ + + + + + + + + + + + + + + +
+ +
+ + + +
+ + + diff --git a/tests/doc/package-list b/tests/doc/package-list new file mode 100644 index 000000000..4bb843770 --- /dev/null +++ b/tests/doc/package-list @@ -0,0 +1,2 @@ +org.aspectj.testing +org.aspectj.tools.ajc diff --git a/tests/doc/packages.html b/tests/doc/packages.html new file mode 100644 index 000000000..fa167eac0 --- /dev/null +++ b/tests/doc/packages.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+The front page has been relocated.Please see: +
+          Frame version +
+          Non-frame version.
+ + + diff --git a/tests/doc/resources/inherit.gif b/tests/doc/resources/inherit.gif new file mode 100644 index 0000000000000000000000000000000000000000..c814867a13deb0ca7ea2156c6ca1d5a03372af7e GIT binary patch literal 57 zcmZ?wbhEHbIIT!9-C*e{wE9>Kx3D)-;0v)C; KYxQGgum%9JOA&7X literal 0 HcmV?d00001 diff --git a/tests/doc/stylesheet.css b/tests/doc/stylesheet.css new file mode 100644 index 000000000..14c3737e8 --- /dev/null +++ b/tests/doc/stylesheet.css @@ -0,0 +1,29 @@ +/* Javadoc style sheet */ + +/* Define colors, fonts and other style attributes here to override the defaults */ + +/* Page background color */ +body { background-color: #FFFFFF } + +/* Headings */ +h1 { font-size: 145% } + +/* Table colors */ +.TableHeadingColor { background: #CCCCFF } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */ +.TableRowColor { background: #FFFFFF } /* White */ + +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif } +.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif } +.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif } + +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF;} /* Light mauve */ +.NavBarCell1Rev { background-color:#00008B;} /* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} + diff --git a/tests/incrementalju/defaultPackage/changes/Main.20.java b/tests/incrementalju/defaultPackage/changes/Main.20.java new file mode 100644 index 000000000..ad7e80c40 --- /dev/null +++ b/tests/incrementalju/defaultPackage/changes/Main.20.java @@ -0,0 +1,7 @@ + + +public class Main { + public static void main(String[] args) { + lib.Lib.f(); // bug: unable to resolve lib.Lib after change + } +} diff --git a/tests/incrementalju/defaultPackage/src/Main.java b/tests/incrementalju/defaultPackage/src/Main.java new file mode 100644 index 000000000..2d48a5793 --- /dev/null +++ b/tests/incrementalju/defaultPackage/src/Main.java @@ -0,0 +1,7 @@ + + +public class Main { + public static void main(String[] args) { + lib.Lib.f(); + } +} diff --git a/tests/incrementalju/defaultPackage/src/lib/Lib.java b/tests/incrementalju/defaultPackage/src/lib/Lib.java new file mode 100644 index 000000000..8ac8a0172 --- /dev/null +++ b/tests/incrementalju/defaultPackage/src/lib/Lib.java @@ -0,0 +1,9 @@ + +package lib; + +public class Lib { + public static void main(String[] args) { + } + public static void f(){} +} + diff --git a/tests/incrementalju/full-rebuild/changes/Aspect.20.java b/tests/incrementalju/full-rebuild/changes/Aspect.20.java new file mode 100644 index 000000000..94367bb64 --- /dev/null +++ b/tests/incrementalju/full-rebuild/changes/Aspect.20.java @@ -0,0 +1,4 @@ + +public aspect Aspect { + declare warning : execution(static void main(String[])): "dw"; +} \ No newline at end of file diff --git a/tests/incrementalju/initialTests/aspectSourceAdded/changes/Detour.20.java b/tests/incrementalju/initialTests/aspectSourceAdded/changes/Detour.20.java new file mode 100644 index 000000000..4cc707b99 --- /dev/null +++ b/tests/incrementalju/initialTests/aspectSourceAdded/changes/Detour.20.java @@ -0,0 +1,7 @@ +public aspect Detour { + + void around() : execution(* Main.main(..)) { + System.out.println("Main class successfully woven"); + } + +} \ No newline at end of file diff --git a/tests/incrementalju/initialTests/aspectSourceAdded/src/Main.java b/tests/incrementalju/initialTests/aspectSourceAdded/src/Main.java new file mode 100644 index 000000000..7c85f90c2 --- /dev/null +++ b/tests/incrementalju/initialTests/aspectSourceAdded/src/Main.java @@ -0,0 +1,9 @@ +import org.aspectj.testing.Tester; + +public class Main { + + public static void main(String[] args) { + Tester.checkFailed("Incremental compilation did not appear to (re)weave Main"); + } + +} \ No newline at end of file diff --git a/tests/incrementalju/initialTests/classAdded/src.20/main/Main.java b/tests/incrementalju/initialTests/classAdded/src.20/main/Main.java new file mode 100644 index 000000000..aae295f7f --- /dev/null +++ b/tests/incrementalju/initialTests/classAdded/src.20/main/Main.java @@ -0,0 +1,11 @@ +package main; + +public class Main { + public static void main (String[] args) { + new Target().run(); + } +} + +class Target { + void run() {} +} diff --git a/tests/incrementalju/initialTests/classAdded/src/main/Main.java b/tests/incrementalju/initialTests/classAdded/src/main/Main.java new file mode 100644 index 000000000..185ed42bf --- /dev/null +++ b/tests/incrementalju/initialTests/classAdded/src/main/Main.java @@ -0,0 +1,7 @@ + +package main; + +public class Main { + public static void main (String[] args) { + } +} diff --git a/tests/incrementalju/initialTests/classRemoved/src.20/main/Main.java b/tests/incrementalju/initialTests/classRemoved/src.20/main/Main.java new file mode 100644 index 000000000..dbe5d38ca --- /dev/null +++ b/tests/incrementalju/initialTests/classRemoved/src.20/main/Main.java @@ -0,0 +1,8 @@ + +package main; + +public class Main { + public static void main (String[] args) { + } +} + diff --git a/tests/incrementalju/initialTests/classRemoved/src/main/Main.java b/tests/incrementalju/initialTests/classRemoved/src/main/Main.java new file mode 100644 index 000000000..aae295f7f --- /dev/null +++ b/tests/incrementalju/initialTests/classRemoved/src/main/Main.java @@ -0,0 +1,11 @@ +package main; + +public class Main { + public static void main (String[] args) { + new Target().run(); + } +} + +class Target { + void run() {} +} diff --git a/tests/incrementalju/initialTests/classUpdated/src.20/main/Main.java b/tests/incrementalju/initialTests/classUpdated/src.20/main/Main.java new file mode 100644 index 000000000..d0b9d37b4 --- /dev/null +++ b/tests/incrementalju/initialTests/classUpdated/src.20/main/Main.java @@ -0,0 +1,8 @@ +package main; + +public class Main { + public static void main (String[] args) { + new Main().run(); + } + void run() {} +} diff --git a/tests/incrementalju/initialTests/classUpdated/src/main/Main.java b/tests/incrementalju/initialTests/classUpdated/src/main/Main.java new file mode 100644 index 000000000..185ed42bf --- /dev/null +++ b/tests/incrementalju/initialTests/classUpdated/src/main/Main.java @@ -0,0 +1,7 @@ + +package main; + +public class Main { + public static void main (String[] args) { + } +} diff --git a/tests/incrementalju/initialTests/classWAroundClosureRemoved/src/AdviceOnIntroduced.java b/tests/incrementalju/initialTests/classWAroundClosureRemoved/src/AdviceOnIntroduced.java new file mode 100644 index 000000000..4da93f0ca --- /dev/null +++ b/tests/incrementalju/initialTests/classWAroundClosureRemoved/src/AdviceOnIntroduced.java @@ -0,0 +1,26 @@ +import org.aspectj.testing.Tester; + +public aspect AdviceOnIntroduced { + public static void main(String[] args) { test(); } + + public static void test() { + Tester.checkEqual(new Foo(10).foo(5), 6, "foo"); + } + + int Foo.foo(int n) { return n; } + Foo.new(int w) {} + + int around(int n): + within(AdviceOnIntroduced) && + (args(n) && execution(int foo(int))) { + int result = proceed(n); + return result+1; + } + + before(): within(Foo) && execution(new(..)) { + //System.out.println("before new"); + } +} + +class Foo { +} diff --git a/tests/incrementalju/initialTests/classWAroundClosureRemoved/src/Main.java b/tests/incrementalju/initialTests/classWAroundClosureRemoved/src/Main.java new file mode 100644 index 000000000..7c85f90c2 --- /dev/null +++ b/tests/incrementalju/initialTests/classWAroundClosureRemoved/src/Main.java @@ -0,0 +1,9 @@ +import org.aspectj.testing.Tester; + +public class Main { + + public static void main(String[] args) { + Tester.checkFailed("Incremental compilation did not appear to (re)weave Main"); + } + +} \ No newline at end of file diff --git a/tests/incrementalju/initialTests/defaultPackage/changes/Main.30.java b/tests/incrementalju/initialTests/defaultPackage/changes/Main.30.java new file mode 100644 index 000000000..a46687d78 --- /dev/null +++ b/tests/incrementalju/initialTests/defaultPackage/changes/Main.30.java @@ -0,0 +1,8 @@ + +// default package + +public class Main { + public static void main (String[] args) { + new Target().run(); + } +} diff --git a/tests/incrementalju/initialTests/defaultPackage/changes/Main.50.java b/tests/incrementalju/initialTests/defaultPackage/changes/Main.50.java new file mode 100644 index 000000000..7616df98c --- /dev/null +++ b/tests/incrementalju/initialTests/defaultPackage/changes/Main.50.java @@ -0,0 +1,7 @@ + +// default package + +public class Main { + public static void main (String[] args) { + } +} diff --git a/tests/incrementalju/initialTests/defaultPackage/changes/Target.20.java b/tests/incrementalju/initialTests/defaultPackage/changes/Target.20.java new file mode 100644 index 000000000..d67b06569 --- /dev/null +++ b/tests/incrementalju/initialTests/defaultPackage/changes/Target.20.java @@ -0,0 +1,9 @@ + +// default package + +public class Target { + public static void main(String[] args) { + new Target().run(); + } + void run() {} +} diff --git a/tests/incrementalju/initialTests/defaultPackage/changes/Target.delete.40.java b/tests/incrementalju/initialTests/defaultPackage/changes/Target.delete.40.java new file mode 100644 index 000000000..187c8a8e6 --- /dev/null +++ b/tests/incrementalju/initialTests/defaultPackage/changes/Target.delete.40.java @@ -0,0 +1,2 @@ + +// delete this file \ No newline at end of file diff --git a/tests/incrementalju/initialTests/defaultPackage/src/Main.java b/tests/incrementalju/initialTests/defaultPackage/src/Main.java new file mode 100644 index 000000000..66b7433e4 --- /dev/null +++ b/tests/incrementalju/initialTests/defaultPackage/src/Main.java @@ -0,0 +1,7 @@ + +// default package + +public class Main { + public static void main (String[] args) { + } +} diff --git a/tests/incrementalju/initialTests/sourceAdded/src.20/main/Target.java b/tests/incrementalju/initialTests/sourceAdded/src.20/main/Target.java new file mode 100644 index 000000000..985587eec --- /dev/null +++ b/tests/incrementalju/initialTests/sourceAdded/src.20/main/Target.java @@ -0,0 +1,9 @@ +package main; + +import org.aspectj.testing.Tester; + +public class Target { + void run() { + Tester.event("Target.run()"); + } +} diff --git a/tests/incrementalju/initialTests/sourceAdded/src.30/main/Main.java b/tests/incrementalju/initialTests/sourceAdded/src.30/main/Main.java new file mode 100644 index 000000000..59564d39c --- /dev/null +++ b/tests/incrementalju/initialTests/sourceAdded/src.30/main/Main.java @@ -0,0 +1,12 @@ + +package main; + +import org.aspectj.testing.Tester; + +public class Main { + public static void main (String[] args) { + new Target().run(); + Tester.expectEvent("Target.run()"); + Tester.checkAllEvents(); + } +} diff --git a/tests/incrementalju/initialTests/sourceAdded/src/main/Main.java b/tests/incrementalju/initialTests/sourceAdded/src/main/Main.java new file mode 100644 index 000000000..185ed42bf --- /dev/null +++ b/tests/incrementalju/initialTests/sourceAdded/src/main/Main.java @@ -0,0 +1,7 @@ + +package main; + +public class Main { + public static void main (String[] args) { + } +} diff --git a/tests/incrementalju/initialTests/sourceDeleted/src.30/delete/Target.java b/tests/incrementalju/initialTests/sourceDeleted/src.30/delete/Target.java new file mode 100644 index 000000000..1678b7055 --- /dev/null +++ b/tests/incrementalju/initialTests/sourceDeleted/src.30/delete/Target.java @@ -0,0 +1,7 @@ + +package delete; + +public class Target { + static void run() { + } +} diff --git a/tests/incrementalju/initialTests/sourceDeleted/src/delete/DeleteMe.java b/tests/incrementalju/initialTests/sourceDeleted/src/delete/DeleteMe.java new file mode 100644 index 000000000..9057235ff --- /dev/null +++ b/tests/incrementalju/initialTests/sourceDeleted/src/delete/DeleteMe.java @@ -0,0 +1,7 @@ + +package delete; + +public class DeleteMe { + static void run() { + } +} diff --git a/tests/incrementalju/initialTests/sourceDeleted/src/delete/Main.java b/tests/incrementalju/initialTests/sourceDeleted/src/delete/Main.java new file mode 100644 index 000000000..e180e46c8 --- /dev/null +++ b/tests/incrementalju/initialTests/sourceDeleted/src/delete/Main.java @@ -0,0 +1,8 @@ + +package delete; + +public class Main { + public static void main(String[] args) { + Target.run(); + } +} diff --git a/tests/incrementalju/initialTests/sourceDeleted/src/delete/Target.java b/tests/incrementalju/initialTests/sourceDeleted/src/delete/Target.java new file mode 100644 index 000000000..a19401904 --- /dev/null +++ b/tests/incrementalju/initialTests/sourceDeleted/src/delete/Target.java @@ -0,0 +1,8 @@ + +package delete; + +public class Target { + static void run() { + DeleteMe.run(); // CE 6 after DeleteMe deleted + } +} diff --git a/tests/incrementalju/interPackage/changes/Main.20.java b/tests/incrementalju/interPackage/changes/Main.20.java new file mode 100644 index 000000000..085cf6f90 --- /dev/null +++ b/tests/incrementalju/interPackage/changes/Main.20.java @@ -0,0 +1,8 @@ + +package app; + +public class Main { + public static void main(String[] args) { + lib.Lib.f(); // bug: unable to resolve lib.Lib after change + } +} diff --git a/tests/incrementalju/interPackage/src/app/Main.java b/tests/incrementalju/interPackage/src/app/Main.java new file mode 100644 index 000000000..c114a1c7e --- /dev/null +++ b/tests/incrementalju/interPackage/src/app/Main.java @@ -0,0 +1,8 @@ + +package app; + +public class Main { + public static void main(String[] args) { + lib.Lib.f(); + } +} diff --git a/tests/incrementalju/interPackage/src/lib/Lib.java b/tests/incrementalju/interPackage/src/lib/Lib.java new file mode 100644 index 000000000..8ac8a0172 --- /dev/null +++ b/tests/incrementalju/interPackage/src/lib/Lib.java @@ -0,0 +1,9 @@ + +package lib; + +public class Lib { + public static void main(String[] args) { + } + public static void f(){} +} + diff --git a/tests/incrementalju/stringliteral/changes/Main.20.java b/tests/incrementalju/stringliteral/changes/Main.20.java new file mode 100644 index 000000000..b2848f051 --- /dev/null +++ b/tests/incrementalju/stringliteral/changes/Main.20.java @@ -0,0 +1,16 @@ + +package packageOne; + +import org.aspectj.testing.Tester; + +public class Main { + public static void main(String[] args) { + for (int i = 0; i < args.length; i++) { + Tester.expectEvent(args[i]); + } + Tester.event("in longer packageOne.Main.main(..)"); + Tester.checkAllEvents(); + } +} + + diff --git a/tests/incrementalju/stringliteral/oneInjar.jar b/tests/incrementalju/stringliteral/oneInjar.jar new file mode 100644 index 0000000000000000000000000000000000000000..44eaf54bdad5de737686bf8e7d67be9750ccf17a GIT binary patch literal 23726 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 WDoDe?{(T7M&jtMRatp1$cmD<5umk}B literal 0 HcmV?d00001 diff --git a/tests/incrementalju/stringliteral/src/TraceMains.java b/tests/incrementalju/stringliteral/src/TraceMains.java new file mode 100644 index 000000000..a2e7f9a39 --- /dev/null +++ b/tests/incrementalju/stringliteral/src/TraceMains.java @@ -0,0 +1,18 @@ + +import org.aspectj.testing.Tester; +import org.aspectj.lang.JoinPoint; + +public aspect TraceMains { + private static String className(JoinPoint.StaticPart jp) { + return jp.getSignature().getDeclaringType().getName(); + } + before() : execution(static void main(String[])) { + Tester.event("before main " + className(thisJoinPointStaticPart)); + } + // this event is submitted after the Tester does its check, + // so it is ignored. + after() returning: execution(static void main(String[])) { + Tester.event("after main " + className(thisJoinPointStaticPart)); + } + +} \ No newline at end of file diff --git a/tests/incrementalju/stringliteral/src/packageOne/Main.java b/tests/incrementalju/stringliteral/src/packageOne/Main.java new file mode 100644 index 000000000..d8315399f --- /dev/null +++ b/tests/incrementalju/stringliteral/src/packageOne/Main.java @@ -0,0 +1,15 @@ + +package packageOne; + +import org.aspectj.testing.Tester; + +public class Main { + public static void main(String[] args) { + for (int i = 0; i < args.length; i++) { + Tester.expectEvent(args[i]); + } + Tester.event("in packageOne.Main.main(..)"); + Tester.checkAllEvents(); + } +} + diff --git a/tests/incrementalju/stringliteral/twoInjar.jar b/tests/incrementalju/stringliteral/twoInjar.jar new file mode 100644 index 0000000000000000000000000000000000000000..061a757a270995cef7faf2a704d802db5a2ece51 GIT binary patch literal 23911 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 G#D4+e$}m#^ literal 0 HcmV?d00001 diff --git a/tests/base/test117/Driver.java b/tests/knownLimitations/test117/Driver.java similarity index 100% rename from tests/base/test117/Driver.java rename to tests/knownLimitations/test117/Driver.java diff --git a/tests/base/test117/Readme.txt b/tests/knownLimitations/test117/Readme.txt similarity index 100% rename from tests/base/test117/Readme.txt rename to tests/knownLimitations/test117/Readme.txt diff --git a/tests/base/test120/Driver.java b/tests/pureJava/test120/Driver.java similarity index 100% rename from tests/base/test120/Driver.java rename to tests/pureJava/test120/Driver.java diff --git a/tests/base/test120/Readme.txt b/tests/pureJava/test120/Readme.txt similarity index 100% rename from tests/base/test120/Readme.txt rename to tests/pureJava/test120/Readme.txt diff --git a/tests/base/test126/Driver.java b/tests/pureJava/test126/Driver.java similarity index 100% rename from tests/base/test126/Driver.java rename to tests/pureJava/test126/Driver.java diff --git a/tests/base/test126/Readme.txt b/tests/pureJava/test126/Readme.txt similarity index 100% rename from tests/base/test126/Readme.txt rename to tests/pureJava/test126/Readme.txt diff --git a/tests/base/test133/Driver.java b/tests/pureJava/test133/Driver.java similarity index 100% rename from tests/base/test133/Driver.java rename to tests/pureJava/test133/Driver.java diff --git a/tests/src/org/aspectj/systemtest/AllTests.java b/tests/src/org/aspectj/systemtest/AllTests.java new file mode 100644 index 000000000..21a2ea5bb --- /dev/null +++ b/tests/src/org/aspectj/systemtest/AllTests.java @@ -0,0 +1,55 @@ +/* + * Created on 03-Aug-2004 + * + * TODO To change the template for this generated file go to + * Window - Preferences - Java - Code Style - Code Templates + */ +package org.aspectj.systemtest; + +import org.aspectj.systemtest.ajc10x.Ajc10xTests; +import org.aspectj.systemtest.ajc11.Ajc11Tests; +import org.aspectj.systemtest.ajc120.Ajc120Tests; +import org.aspectj.systemtest.ajc121.Ajc121Tests; +import org.aspectj.systemtest.aspectpath.AspectPathTests; +import org.aspectj.systemtest.base.BaseTests; +import org.aspectj.systemtest.design.DesignTests; +import org.aspectj.systemtest.incremental.IncrementalTests; +import org.aspectj.systemtest.inpath.InPathTests; +import org.aspectj.systemtest.options.OptionsTests; +import org.aspectj.systemtest.pre10x.AjcPre10xTests; +import org.aspectj.systemtest.serialVerUID.SUIDTests; +import org.aspectj.systemtest.xlint.XLintTests; + +import junit.framework.Test; +import junit.framework.TestSuite; + +/** + * @author colyer + * + * TODO To change the template for this generated type comment go to + * Window - Preferences - Java - Code Style - Code Templates + */ +public class AllTests { + + public static Test suite() { + TestSuite suite = new TestSuite("AspectJ System Test Suite - JDK 1.3"); + //$JUnit-BEGIN$ + suite.addTest(Ajc121Tests.suite()); + suite.addTest(Ajc120Tests.suite()); + suite.addTest(Ajc11Tests.suite()); + suite.addTest(Ajc10xTests.suite()); + suite.addTest(AspectPathTests.suite()); + suite.addTest(InPathTests.suite()); + suite.addTest(BaseTests.suite()); + suite.addTest(DesignTests.suite()); + suite.addTest(IncrementalTests.suite()); + //suite.addTest(KnownLimitationsTests.class); + suite.addTest(OptionsTests.suite()); + suite.addTest(AjcPre10xTests.suite()); + //suite.addTest(PureJavaTests.class); + suite.addTest(SUIDTests.suite()); + suite.addTest(XLintTests.suite()); + //$JUnit-END$ + return suite; + } +} diff --git a/tests/src/org/aspectj/systemtest/AllTests14.java b/tests/src/org/aspectj/systemtest/AllTests14.java new file mode 100644 index 000000000..da97c7337 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/AllTests14.java @@ -0,0 +1,30 @@ +/* + * Created on 03-Aug-2004 + * + * TODO To change the template for this generated file go to + * Window - Preferences - Java - Code Style - Code Templates + */ +package org.aspectj.systemtest; + +import org.aspectj.systemtest.java14.Java14Tests; + +import junit.framework.Test; +import junit.framework.TestSuite; + +/** + * @author colyer + * + * TODO To change the template for this generated type comment go to + * Window - Preferences - Java - Code Style - Code Templates + */ +public class AllTests14 { + + public static Test suite() { + TestSuite suite = new TestSuite("AspectJ System Test Suite - JDK 1.4"); + //$JUnit-BEGIN$ + suite.addTest(AllTests.suite()); + suite.addTest(Java14Tests.suite()); + //$JUnit-END$ + return suite; + } +} diff --git a/tests/src/org/aspectj/systemtest/ajc10x/Ajc10xTests.java b/tests/src/org/aspectj/systemtest/ajc10x/Ajc10xTests.java new file mode 100644 index 000000000..cd63392c8 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc10x/Ajc10xTests.java @@ -0,0 +1,1165 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.ajc10x; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class Ajc10xTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc10xTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml"); + } + + + public void test001(){ + runTest("properly make choice between cast and parenthesis in parser"); + } + + public void test002(){ + runTest("field from implemented interface not found in advice"); + } + + public void test003(){ + runTest("make sure advice affects introduced methods and constructors"); + } + + public void test004(){ + runTest("new around construct"); + } + + public void test005(){ + runTest("aspect redefines a parameter"); + } + + public void test006(){ + runTest("introducing extends and implements"); + } + + public void test007(){ + runTest("(related) aspect on interface"); + } + + public void test008(){ + runTest("advice and package visibility"); + } + + public void test009(){ + runTest("advice and package visibility"); + } + + public void test010(){ + runTest("advice on implied empty constructor"); + } + + public void test011(){ + runTest("advice on * *(..) not mapping to initializers"); + } + + public void test012(){ + runTest("three type declarations in the scope of an advice"); + } + + public void test013(){ + runTest("introduction fails on class with an inner class that extends or implements something"); + } + + public void test014(){ + runTest("checks that methods are introduced on the topmost class implemented"); + } + + public void test015(){ + runTest("a couple different returns from around advice"); + } + + public void test016(){ + runTest("member finally advice paired with signature advice"); + } + + public void test017(){ + runTest("aspect of eachobject(instanceof(Interface))"); + } + + public void test018(){ + runTest("final member initialization broken with JDK before 1.1.8"); + } + + public void test019(){ + runTest("same package and var name clash in preprocessed code when aspectOf is used"); + } + + public void test020(){ + runTest("and PR#201 advice on static methods fails javac compile with this"); + } + + public void test021(){ + runTest("non-static advice on inner class defined inside of method body"); + } + + public void test022(){ + runTest("simple single-threaded eachcflow test (includes aspectOf)"); + } + + public void test023(){ + runTest("bad type resolution when var reassigned in same scope"); + } + + public void test024(){ + runTest("generating the right throws clause for call-site advice (and around)"); + } + + public void test025(){ + runTest("advice on calls to static methods using several syntax"); + } + + public void test026(){ + runTest(", PR#249, PR#250 advice on constructor sites"); + } + + public void test027(){ + runTest("test after throwing advice in several ways"); + } + + public void test028(){ + runTest("fancy name patterns for method names"); + } + + public void test029(){ + runTest("calls: calls(...)"); + } + + public void test030(){ + runTest("throws Exception clause is unnecessarily added to Driver.main method"); + } + + public void test031(){ + runTest("javac fails when this is referenced in the static main method"); + } + + public void test032(){ + runTest("and 276 cast error generated by ajc when type not in signature"); + } + + public void test033(){ + runTest("calls to methods to which we don't have source"); + } + + public void test034(){ + runTest("more aspect inheritance"); + } + + public void test035(){ + runTest("around and calls with both calling and called this params"); + } + + public void test036(){ + runTest("compiler crashes with eachobject and named pointcuts with parameters"); + } + + public void test037(){ + runTest("lookup rules for unqualified pointcut names"); + } + + public void test038(){ + runTest("eachcflow only instantiated if the aspect has some advice in it"); + } + + public void test039(){ + runTest("(DESIGN QUESTION) aspect of eachJVM advising its own initializer"); + } + + public void test040(){ + runTest("after returning advice on calls to constructors"); + } + + public void test041(){ + runTest("Does annotating 'new' with a type work as desired?"); + } + + public void test042(){ + runTest("Referring to inner classes as {super}.{inner} confused ajc."); + } + + public void test043(){ + runTest("Advice on advice"); + } + + public void test044(){ + runTest("Introductions on other introductions"); + } + + public void test045(){ + runTest("Putting advice on array constructors."); + } + + public void test046(){ + runTest("call points within block inner classes are doubled"); + } + + public void test047(){ + runTest("Gets and sets with other advice"); + } + + public void test048(){ + runTest("Compiler can compile correct strictfp modifiers"); + } + + public void test049(){ + runTest("basic test of callsto pointcuts"); + } + + public void test050(){ + runTest("package wildcards in packages"); + } + + public void test051(){ + runTest("around advice on calls and receptions with lots of context"); + } + + public void test052(){ + runTest("! modifier and char in pointcut (no longer an error)"); + } + + public void test053(){ + runTest("right number of aspect instances per cflow"); + } + + public void test054(){ + runTest("many this's into around advice on calls"); + } + + public void test055(){ + runTest("Ensures introduction methods can have advice placed on them"); + } + + public void test056(){ + runTest("No boolean appearing in the 'if' clause for around advice with eachJVM()"); + } + + public void test057(){ + runTest("Order of super introductions."); + } + + public void test058(){ + runTest("Ensuring backdoor methods are produced."); + } + + public void test059(){ + runTest("no duplicate advice methods in abstract aspects"); + } + + public void test060(){ + runTest("no duplicate advice methods in abstract aspects extended"); + } + + public void test061(){ + runTest("Putting after-constructor advice on the wrong types implementing the same interface."); + } + + public void test062(){ + runTest("Instantiating non-static inner classes in advice."); + } + + public void test063(){ + runTest("Referring to pointcut in of clauses"); + } + + public void test064(){ + runTest("Confused referring to instance variables and locals"); + } + + public void test065(){ + runTest("Parsing C+ expressions without parens in super introductions."); + } + + public void test066(){ + runTest("Introducing methods on classes that implements inner-interfaces with +implements."); + } + + public void test067(){ + runTest("Methods with the same name are generated when abstract aspects extend another abstract aspect."); + } + + public void test068(){ + runTest("Making sure final variables stay final."); + } + + public void test069(){ + runTest("Problem resolving meta-joinpoint names with around advice on methods called from around advice."); + } + + public void test070(){ + runTest("Make sure that names of lifted local classes are right when referenced in call-site advice"); + } + + public void test071(){ + runTest("matching for throws clause"); + } + + public void test072(){ + runTest("basic test of declare soft"); + } + + public void test073(){ + runTest("advice on calls to constructors of anonymous inners and access to context"); + } + + public void test074(){ + runTest("inner aspects can't access outer pointcuts"); + } + + public void test075(){ + runTest("implements and extends are introduced before methods and fields"); + } + + public void test076(){ + runTest("a static/inner aspect of a inner class of an aspect is pulled to the top level as static"); + } + + public void test077(){ + runTest("Crashes with privileged aspect."); + } + + public void test078(){ + runTest("join points exist in the execution of field initializers"); + } + + public void test079(){ + runTest("privileged aspects"); + } + + public void test080(){ + runTest("advice on field gets in privileged aspects"); + } + + public void test081(){ + runTest("Two anonymous classes in the same scope"); + } + + public void test082(){ + runTest("basic tests for initializer and staticinitializer PCDs"); + } + + public void test083(){ + runTest("introduction of an initializer into a class"); + } + + public void test084(){ + runTest("some method accessibility tests, particularly package-protected and inheritance"); + } + + public void test085(){ + runTest("fairly monotonous (and non-covering) tests for expanded dot patterns"); + } + + public void test086(){ + runTest("field patterns and subtyping"); + } + + public void test087(){ + runTest("Checking formal matching as in Roeder's bug in 0.7b10"); + } + + public void test088(){ + runTest("Introducing synchronized methods on interfaces."); + } + + public void test089(){ + runTest("The pointcut params (..,int..) is not recognizing (Object,int,Object)."); + } + + public void test090(){ + runTest("calls advice on array objects causes error in code generation"); + } + + public void test091(){ + runTest("join points in field initializers aren't showing up."); + } + + public void test092(){ + runTest("Handlers problem"); + } + + public void test093(){ + runTest("work nicely with inner class method look-up rules and call-site advice"); + } + + public void test094(){ + runTest("strictfp modifier allowed on advice"); + } + + public void test095(){ + runTest("No argthis was being created for calls advice."); + } + + public void test096(){ + runTest("Ensuring no advice with instanceof(..) is run on static methods."); + } + + public void test097(){ + runTest("Null pointer on gets advice showing the case causing the error"); + } + + public void test098(){ + runTest("try to make sure that dynamic JoinPoint objects aren't generated when used inside of if (false) { ... }"); + } + + public void test099(){ + runTest("within and withincode (doesn't all work due to local class name issues)"); + } + + public void test100(){ + runTest("around advice on calls within inner classes (including protected method calls)"); + } + + public void test101(){ + runTest("around advice on calls within inner classes (including protected method calls)"); + } + + public void test102(){ + runTest("Arguments to runNext should be final when needed"); + } + + public void test103(){ + runTest("Method introductions"); + } + + public void test104(){ + runTest("Putting an introduced method on each interface"); + } + + public void test105(){ + runTest("Extending interfaces"); + } + + public void test106(){ + runTest("Introducing private methods on interfaces"); + } + + public void test107(){ + runTest("Issuing errors for assigning variables thisJoinPoint -- not assigning thisJoinPoint."); + } + + public void test108(){ + runTest("Static references inside of introduced bodies get bound correctly."); + } + + public void test109(){ + runTest("cflow and object creations [of eachcflow]"); + } + + public void test110(){ + runTest("Doesn't import MightHaveAspect when compiling with more than 1 file. [eachobject]"); + } + + public void test111(){ + runTest("test binding to formals in calls to constructors (binding to null) (eachobject !!! now misnamed)"); + } + + public void test112(){ + runTest("After advice isn't being woven into after throwing advice"); + } + + public void test113(){ + runTest("Throwing an EmptyStackException."); + } + + public void test114(){ + runTest("check that MightHaveAspect interface is created correctly for an aspect in deep package"); + } + + public void test115(){ + runTest("Defines clfow$ajc0 more once. [eachcflow]"); + } + + public void test116(){ + runTest("Various calls, receptions, and callsto tests [callsto]"); + } + + public void test117(){ + runTest("Was throwing exception, now just an error. [eachobject]"); + } + + public void test118(){ + runTest("different version of aspect inheritance, particularly empty pointcuts and abstract cflows [eachcflow]"); + } + + public void test119(){ + runTest("set advice on member initing throwing exception [eachobject]"); + } + + public void test120(){ + runTest("Testing class names with same name's with difference case as package. [eachobject]"); + } + + public void test121(){ + runTest("Null pointer on gets advice with coverage [painful]"); + } + + public void test122(){ + runTest("Basic test for cflow pointcuts [eachcflow]"); + } + + public void test123(){ + runTest("Crashing when looking up the type of array members."); + } + + public void test124(){ + runTest("PostfixExprs to various synthetic things are fixed correctly [eachobject]"); + } + + public void test125(){ + runTest("Dave Binkley's problem with eachcflowroot. [eachcflow]"); + } + + public void test126(){ + runTest("advice on an inherited method"); + } + + public void test127(){ + runTest(", PR#115 checks the ordering of catch clauses"); + } + + public void test128(){ + runTest("various declared exception permutations"); + } + + public void test129(){ + runTest("ordering of advice kinds as well as cflow and dominates"); + } + + public void test130(){ + runTest("advice on default constructor for a class only referenced via reflection"); + } + + public void test131(){ + runTest("calling and called this params in calls points"); + } + + public void test132(){ + runTest("primitive parameters coercable to Object just like return values are"); + } + + public void test133(){ + runTest("join points in static/dynamic initializers aren't showing up."); + } + + public void test134(){ + runTest("Gets and sets on a number of variables (field access ???)"); + } + + public void test135(){ + runTest("Joinpoints are showing up on intermediate call sites"); + } + + public void test136(){ + runTest("Reception based on strictfp modifier"); + } + + public void test137(){ + runTest("Subclasses that do not redefine a method are not being handled correctly"); + } + + public void test138(){ + runTest("making sure that super calls are bound to the right methods"); + } + + public void test139(){ + runTest("inheritance, around advice and abstract pointcuts [eachobject] (still)"); + } + + public void test140(){ + runTest("Priviledged aspect methods are missing for privates. [eachobject]"); + } + + public void test141(){ + runTest("exceptions thrown and caught in advice, particularly try+proceed"); + } + + public void test142(){ + runTest("Not and And operators in pointcuts not working"); + } + + public void test143(){ + runTest("Member initializers should run before the current class constructor"); + } + + public void test144(){ + runTest("Coverage tests for Member initializers should run before the current class constructor and after super"); + } + + public void test145(){ + runTest("thisJoinPoint{Static} not visible in if() pcd of named pointcut"); + } + + public void test146(){ + runTest("pcd if() expression visibility at compile-time (minimal operation)"); + } + + public void test147(){ + runTest("pcd if() NPE in compiler when unwinding assignment in pcd if(expr)"); + } + + public void test148(){ + runTest("pcd if() dup methods produced when pointcut after advice etc (javac)"); + } + + public void test149(){ + runTest("pcd if() variants: [anonymous, named] x [execution, call, callTyped, get, set, initializations] x [before, after, around]"); + } + +// moved to ajcTestsFailing.xml +// public void test150(){ +// runTest("advice on advice in usejavac mode"); +// } + + public void test151(){ + runTest("initialization order with this"); + } + + public void test152(){ + runTest("!within and !this handling for callee-side call points"); + } + + public void test153(){ + runTest("private inner interfaces and bytecode visibility"); + } + + public void test154(){ + runTest("elaborated into testing of around on all join points"); + } + + public void test155(){ + runTest("type name hygiene when code comes from aspects in different packages"); + } + + public void test156(){ + runTest("cflowbelow dependencies (from Chris Dutchyn)"); + } + + public void test157(){ + runTest("Compiler incorrectly flagging *1 (non-alphabetic start to signature pattern)"); + } + + public void test158(){ + runTest("Unable to bind privately-introduced field name from introduced method in the same aspect"); + } + + public void test159(){ + runTest("anonymous inner class with aspect"); + } + + public void test160(){ + runTest("Arguments are not being passed in to calls advice"); + } + + public void test161(){ + runTest("interfaces as mixins with introduction"); + } + + public void test162(){ + runTest("functional modifiers work correctly with introduced members"); + } + + public void test163(){ + runTest("ExceptionInInitializerError accessing cflow in aspect initialization - before variants"); + } + + public void test164(){ + runTest("NoClassDefFoundError accessing cflow in aspect initialization - after variants"); + } + + public void test165(){ + runTest("InternalCompilerError in JpPlan when args alone"); + } + + public void test166(){ + runTest("compile error using pcd if() with advice on introduced methods."); + } + + public void test167(){ + runTest("compile errors boolean using cflow and unimplemented method using around advice on methods introduced by interface"); + } + + public void test168(){ + runTest("aspect as member of interface"); + } + + public void test169(){ + runTest("missing method name to synthetic invocation"); + } + + public void test170(){ + runTest("protected subclass impl of superclass method with default access and variants"); + } + + public void test171(){ + runTest("Exception planning advice"); + } + + public void test172(){ + runTest("unreproduced bug with advice - probably UTR"); + } + + public void test173(){ + runTest("introduced inner interfaces accessible inside aspect"); + } + + public void test174(){ + runTest("validate (enclosing) join point and source locations"); + } + + public void test175(){ + runTest("advice formals are just like method formals"); + } + + public void test176(){ + runTest("advice formals produce errors just like method formals"); + } + + public void test177(){ + runTest("advice throws clauses must be compatible with joinpoints they apply to"); + } + + public void test178(){ + runTest("potential method conflicts with introductions and interfaces and PR#561"); + } + + public void test179(){ + runTest("illegal method conflicts with introductions and interfaces and PR#561"); + } + + public void test180(){ + runTest("AspectOf available for different aspect types"); + } + + public void test181(){ + runTest("access to all members of class and inner class from privileged aspect"); + } + + public void test182(){ + runTest("cflow alone with around produces compiler bcg StackOverflowError"); + } + + public void test183(){ + runTest("get/set join points run for complex assignment operators (+=, etc.) (working)"); + } + + public void test184(){ + runTest("this available in introduced field initializers"); + } + + public void test185(){ + runTest("Introduced type unavailable to cast expressions in introduced methods"); + } + + public void test186(){ + runTest("Introduced type unavailable to qualified new expressions in introduced methods"); + } + + public void test187(){ + runTest("Introduced type unavailable to cast expressions in introduced field initializers"); + } + + public void test188(){ + runTest("Aspect type unavailable to qualified new expressions in body of introduced methods"); + } + + public void test189(){ + runTest("Introduced type unavailable to qualified new expressions in introduced field initializers"); + } + + public void test190(){ + runTest("variable slots and finally/catch causing verify errors"); + } + + public void test191(){ + runTest("after advice on static method with pcd if() using result"); + } + + public void test192(){ + runTest("after advice on static method with pcd if() using result through pointcut"); + } + + public void test193(){ + runTest("AbstractMethodError for introduced methods (order 1)"); + } + + public void test194(){ + runTest("AbstractMethodError for introduced methods (order 2)"); + } + + public void test195(){ + runTest("AbstractMethodError for introduced methods (order 3)"); + } + + public void test196(){ + runTest("AbstractMethodError for introduced methods (order 4)"); + } + + public void test197(){ + runTest("AbstractMethodError for introduced methods (order 5)"); + } + + public void test198(){ + runTest("declare error and abstract pointcuts"); + } + + public void test199(){ + runTest("Exercise runtime classes (optionally in 1.1 VM)"); + } + + public void test200(){ + runTest("VerifyError after around advice falls off end of tryCatch"); + } + + public void test201(){ + runTest("Named within pointcuts failing"); + } + + public void test202(){ + runTest("aspect with private abstract pointcut"); + } + + public void test203(){ + runTest("concrete aspect unable to access abstract package-private pointcut in parent for overriding"); + } + + public void test204(){ + runTest("inner, outer, and outside-package subaspects of an aspect with abstract protected-, public-, and default-access pointcuts"); + } + + public void test205(){ + runTest("inner subaspects of an aspect with private pointcut"); + } + + public void test206(){ + runTest("outer subaspects of an aspect with private pointcut"); + } + + public void test207(){ + runTest("abstract aspect used statically should not cause instantiation of advice or pointcut"); + } + + public void test208(){ + runTest("private inner interface accessible in scope when declared on outer class"); + } + + public void test209(){ + runTest("accessing protected superclass members in and outside CCC from body of method introduction"); + } + + public void test210(){ + runTest("accessing private superclass members from body of method introduction"); + } + + public void test211(){ + runTest("simple test for around and casting"); + } + + public void test212(){ + runTest("aroundInner 1 - around advice inner Thread subclass running proceed but not writing field"); + } + + public void test213(){ + runTest("aroundInner 2 - around advice inner Runnable running proceed and writing method-final proxy"); + } + + public void test214(){ + runTest("aroundInner 3 - around advice inner class running proceed and writing field"); + } + + public void test215(){ + runTest("aroundInner 4 - around advice inner Thread subclass running proceed and writing field"); + } + + public void test216(){ + runTest("aroundInner 5 - around advice inner Runnable (subinterface) running proceed and writing field introduced on subinterface"); + } + + public void test217(){ + runTest("Named local class closing over proceed invocation"); + } + + public void test218(){ + runTest("beautiful recursive computation of factorial with around is now supported"); + } + + public void test219(){ + runTest("multi-dispatch not used for named pcd references"); + } + + public void test220(){ + runTest("multi-dispatch implemented through around + args"); + } + + public void test221(){ + runTest("unrecognized aspect should not net Cloneable and Serializable warnings"); + } + + public void test222(){ + runTest("unreachable code generated by around advice on the execution of void methods"); + } + + public void test223(){ + runTest("Overriding method implementations using introduction on interfaces"); + } + + public void test224(){ + runTest("more coverage for around and concrete methods on interfaces"); + } + + public void test225(){ + runTest("invalid number and type of proceed arguments"); + } + + public void test226(){ + runTest("after returning advice order"); + } + + public void test227(){ + runTest("after returning advice param"); + } + + public void test228(){ + runTest("! and declaring types with callee-side call join points"); + } + + public void test229(){ + runTest(". Binding the wrong arguments in withincode(..)."); + } + + public void test230(){ + runTest(". Matching arguments in cflow correctly."); + } + + public void test231(){ + runTest(". Binding variables with numbers in their name with pertarget(..)'s."); + } + + public void test232(){ + runTest("second arg in formal on shared joinpoint with pcd if() causes verify error ??"); + } + + public void test233(){ + runTest("access to private members from privileged aspect"); + } + + public void test234(){ + runTest("inner classes of privileged aspects cannot see target class private members"); + } + + public void test235(){ + runTest("aspects should get package access outside the file"); + } + + public void test236(){ + runTest("subclass advice not run for join points selected by superclass cflow-based pointcuts"); + } + + public void test237(){ + runTest("more issues with abstract aspects and cflow pointcuts"); + } + + public void test238(){ + runTest("compile fails for aspect derived from percflow base aspect unless pointcut excludes base aspect and subaspects"); + } + + public void test239(){ + runTest("pertarget stack overflow getting name of anonymous (Interface) class"); + } + + public void test240(){ + runTest("pertarget stack overflow getting name of anonymous (Object) class"); + } + + public void test241(){ + runTest("pertarget runtime stack overflow (getting name of anonymous (Object) class?)"); + } + + public void test242(){ + runTest("subaspect method declaration on superaspect inner interface (names)"); + } + + public void test243(){ + runTest("subaspect method declaration on superaspect inner interface (access)"); + } + + public void test244(){ + runTest("subaspect method declaration on superaspect inner interface (types)"); + } + + public void test245(){ + runTest("around AST type XXX"); + } + + public void test246(){ + runTest("around all execution with double assignment in initializer (simple)"); + } + + public void test247(){ + runTest("around all execution with double assignment in initializer (coverage)"); + } + + public void test248(){ + runTest("changing this in around's proceed reported by Rich Price"); + } + + public void test249(){ + runTest("default package for aspect introductions is not the current package"); + } + + public void test250(){ + runTest("anon class written to wrong directory"); + } + + public void test251(){ + runTest("unqualified transitive pointcut references not resolved"); + } + + public void test252(){ + runTest("unqualified transitive pointcut references not resolved - 2"); + } + + public void test253(){ + runTest("direct use outside aspect of defined abstract pointcut"); + } + + public void test254(){ + runTest("direct use outside aspect of undefined abstract pointcut"); + } + + public void test255(){ + runTest("indirect use outside aspect of undefined abstract pointcut"); + } + + public void test256(){ + runTest("simple call join point tests for JoinPoint SourceLocation context"); + } + + public void test257(){ + runTest("!target with second advice on casted call"); + } + + public void test258(){ + runTest("name binding in around cflow"); + } + + public void test259(){ + runTest("name binding in around cflow - 2"); + } + + public void test260(){ + runTest("around name-binding in cflows using factorial"); + } + + public void test261(){ + runTest("replacing this or target in around advice"); + } + + public void test262(){ + runTest("after returning from initialization and after executing constructor"); + } + + public void test263(){ + runTest("after returning from initialization causes ExceptionInInitializer in aspect"); + } + + public void test264(){ + runTest("name binding in before cflow containing cflowbelow"); + } + + public void test265(){ + runTest("file order in type searching"); + } + + public void test266(){ + runTest("simple declare warning (NPE)"); + } + + public void test267(){ + runTest("ajc dies on cflow into field init anon class see knownbugs.txt"); + } + + public void test268(){ + runTest("Incrementing interface-introduced field"); + } + + public void test269(){ + runTest("The dynamic type, not the static one, should be used in if pcds"); + } + + public void test270(){ + runTest("bad interaction with after returning, around and void methods (from Rich Price)"); + } + + public void test271(){ + runTest("type pattern matching for inner classes (from Ken Horn)"); + } + + public void test272(){ + runTest("static initializer member name"); + } + + public void test273(){ + runTest("cflow pcd syntax error"); + } + + public void test274(){ + runTest("binding args with indeterminate prefix and suffix"); + } + + public void test275(){ + runTest("check arg types with indeterminate prefix and suffix"); + } + + public void test276(){ + runTest("testing and binding args with single indeterminate prefix and suffix"); + } + + public void test277(){ + runTest("binding handler args with indeterminate prefix and suffix"); + } + + public void test278(){ + runTest("Compiling java.lang.Object with ajc yields non-verifying bytecode"); + } + + public void test279(){ + runTest("method-local class defined in around return statement"); + } + + public void test280(){ + runTest("CE expected for assignment to arg in if pcd"); + } + + public void test281(){ + runTest("advising field get/sets when accessing via super"); + } + + public void test282(){ + runTest("accessing private members in outer types"); + } + + public void test283(){ + runTest("can't apply around advice to the execution of around advice"); + } + + public void test284(){ + runTest("incompatible advice throws clause are a compile-time error"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml b/tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml new file mode 100644 index 000000000..9e04c610e --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc10x/ajc10x-tests.xml @@ -0,0 +1,2006 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml b/tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml new file mode 100644 index 000000000..90198331d --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc10x/ajc10x.xml @@ -0,0 +1,9 @@ + +]> + + + + +&tests; + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/ajc11/Ajc11Tests.java b/tests/src/org/aspectj/systemtest/ajc11/Ajc11Tests.java new file mode 100644 index 000000000..e594d3dc5 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc11/Ajc11Tests.java @@ -0,0 +1,480 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.ajc11; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class Ajc11Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc11Tests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/ajc11/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"); + } + + 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"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/ajc11/ajc11-tests.xml b/tests/src/org/aspectj/systemtest/ajc11/ajc11-tests.xml new file mode 100644 index 000000000..95fe34a0b --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc11/ajc11-tests.xml @@ -0,0 +1,834 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/ajc11/ajc11.xml b/tests/src/org/aspectj/systemtest/ajc11/ajc11.xml new file mode 100644 index 000000000..899dfe725 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc11/ajc11.xml @@ -0,0 +1,10 @@ + +]> + + + + +&tests; + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/ajc120/Ajc120Tests.java b/tests/src/org/aspectj/systemtest/ajc120/Ajc120Tests.java new file mode 100644 index 000000000..84054333a --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc120/Ajc120Tests.java @@ -0,0 +1,244 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.ajc120; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class Ajc120Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc120Tests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/ajc120/ajc120.xml"); + } + + + public void test001(){ + runTest("NPE in concretization error path"); + } + + public void test002(){ + runTest("priviledged aspects calling methods from advice"); + } + + public void test003(){ + runTest("No error on overloaded pointcuts in class"); + } + + public void test004(){ + runTest("No error on overloaded pointcuts unless binding variables"); + } + + public void test005(){ + runTest("Declare soft softening other exception types"); + } + + public void test006(){ + runTest("static method introduction on interfaces, should not be allowed"); + } + + public void test007(){ + runTest("External pointcut refs not resolved if named pointcut used by declare"); + } + + public void test008(){ + runTest("Appropriate message for 'after() thowing(Throwable th)' syntax error"); + } + + public void test009(){ + runTest("Ensure we don't look for source on the classpath when binary not found"); + } + + public void test010(){ + runTest("inner aspect containing declare soft"); + } + + public void test011(){ + runTest("Bad parser error recovery in advice"); + } + + public void test012(){ + runTest("Bad parser error recovery in java source"); + } + + public void test013(){ + runTest("compiler issues error on inner aspects when privilieged"); + } + + public void test014(){ + runTest("After throwing advice on ctors doesn't execute for inter-type decl field inits"); + } + + public void test015(){ + runTest("Introduced abstract method on abstract class not implemented by subtype (single source file)"); + } + + public void test016(){ + runTest("Introduced abstract method on abstract class with introduced concrete method (single source file)"); + } + + public void test017(){ + runTest("Introduced abstract method on abstract class with existing concrete method (single source file)"); + } + + public void test018(){ + runTest("aspect declares interface method (no modifiers)"); + } + + public void test019(){ + runTest("aspect declares interface method (abstract)"); + } + + public void test020(){ + runTest("aspect declares interface method (public abstract)"); + } + + public void test021(){ + runTest("Use class implementing interface via aspect (not woven together)"); + } + + public void test022(){ + runTest("Use class implementing interface via aspect (weave all together)"); + } + + public void test023(){ + runTest("Use class implementing interface via aspect (only one implementer)"); + } + + public void test024(){ + runTest("Erroneous exception conversion"); + } + + public void test025(){ + runTest("before():execution(new(..)) does not throw NoAspectBoundException"); + } + + public void test026(){ + runTest("Anomalous handling of inter-type declarations to abstract base classes in aspectj 1.1"); + } + + public void test027(){ + runTest("NPE When compiling intertype declaration"); + } + + public void test028(){ + runTest("declare warning on subtype constructor"); + } + + public void test029(){ + runTest("CatchClauseSignature has broken operation"); + } + + public void test030(){ + runTest("after returning with parameter: matching rules"); + } + + public void test031(){ + runTest("binary compatibility of advice method names - expect no error"); + } + + public void test032(){ + runTest("binary compatibility of advice method names - expect error"); + } + + public void test033(){ + runTest("binary compatibility of advice method names - expect no error"); + } + + public void test034(){ + runTest("mail list VerifyError with protected access"); + } + + public void test035(){ + runTest("Polymorphic ITD fails in CVS HEAD (From ajdt 1.1.6)"); + } + + public void test036(){ + runTest("ClasscastException on concretization of if(false)"); + } + + public void test037(){ + runTest("ClasscastException on concretization of if(false)"); + } + + public void test038(){ + runTest("Introduced abstract method on interface not implemented by subtype (weave altogether)"); + } + + public void test039(){ + runTest("declare String field on interface"); + } + + public void test040(){ + runTest("declare int field on interface"); + } + + public void test041(){ + runTest("declare Object field on interface"); + } + + public void test042(){ + runTest("fail in compiling aspect with overriding method introduction with different throws clause "); + } + + public void test043(){ + runTest("super call in anonymous class created in around advice"); + } + + public void test044(){ + runTest("retitle warning to circular {advice} dependency at ..."); + } + + public void test045(){ + runTest("Introduce Unknown Type to class causes Null pointer exception"); + } + + public void test046(){ + runTest("Private members introduced via an interface are visible to the class"); + } + + public void test047(){ + runTest("declare precedence on a class should be a compile-time error"); + } + + public void test048(){ + runTest("declare precedence on a class should be a compile-time error"); + } + + public void test049(){ + runTest("NPE when binary weaving a ctor ITD"); + } + + public void test050(){ + runTest("NPE in compiler when using (an unusual) declare warning against a ctor ITD"); + } + + public void test051(){ + runTest("InterTypeMethodDeclaration.java:104"); + } + + public void test052(){ + runTest("nested uses of this() inside constructors not handled properly for initialization and preinitialization pointcuts"); + } + + public void test053(){ + runTest("wrong variable binding in || pointcuts"); + } + + public void test054(){ + runTest("error message for constructor-execution pcd"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/ajc120/ajc120-tests.xml b/tests/src/org/aspectj/systemtest/ajc120/ajc120-tests.xml new file mode 100644 index 000000000..51f70134b --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc120/ajc120-tests.xml @@ -0,0 +1,478 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/ajc120/ajc120.xml b/tests/src/org/aspectj/systemtest/ajc120/ajc120.xml new file mode 100644 index 000000000..dade07154 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc120/ajc120.xml @@ -0,0 +1,11 @@ + +]> + + + + + +&tests; + + diff --git a/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java b/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java new file mode 100644 index 000000000..019dabd75 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc121/Ajc121Tests.java @@ -0,0 +1,84 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.ajc121; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class Ajc121Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Ajc121Tests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/ajc121/ajc121.xml"); + } + + + public void test001(){ + runTest("false ambigous binding error (introduced in 1.2rc2)"); + } + + public void test002(){ + runTest("An if() pointcut inside a perthis() clauses an ABORT - null pointer exception in ajc"); + } + + public void test003(){ + runTest("An if() pointcut inside a perthis() clauses an ABORT - null pointer exception in ajc"); + } + + public void test004(){ + runTest("An if() pointcut inside a perthis() clauses an ABORT - null pointer exception in ajc"); + } + + public void test005(){ + runTest("compiler aborts with 'conflicting dominates orders' with circular declare precedences"); + } + + public void test006(){ + runTest("'can't bind type' message has $ for . in type name for declare soft"); + } + + public void test007(){ + runTest("Hiding of Instance Methods by static methods"); + } + + public void test008(){ + runTest("if(false) optimisation"); + } + + public void test009(){ + runTest("if(true) optimisation"); + } + + public void test010(){ + runTest("java.lang.NullPointerException in WeaverMessageHandler class"); + } + + public void test011(){ + runTest("ClassCastException at BcelRenderer.java:169"); + } + + public void test012(){ + runTest("Front-end bug, shouldn't allow patterns of the form foo.., should be foo..*"); + } + + public void test013() { + runTest("Nullpointer-Exception when defining a withincode() pointcut"); + } + + public void test014() { + runTest("NPE, Incorrect XLint:unmatchedSuperTypeInCall warning"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml b/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml new file mode 100644 index 000000000..7f1a72902 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc121/ajc121-tests.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/ajc121/ajc121.xml b/tests/src/org/aspectj/systemtest/ajc121/ajc121.xml new file mode 100644 index 000000000..8ad54bf32 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/ajc121/ajc121.xml @@ -0,0 +1,12 @@ + +]> + + + + + +&tests; + + + diff --git a/tests/src/org/aspectj/systemtest/aspectpath/AspectPathTests.java b/tests/src/org/aspectj/systemtest/aspectpath/AspectPathTests.java new file mode 100644 index 000000000..779bedec9 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/aspectpath/AspectPathTests.java @@ -0,0 +1,116 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.aspectpath; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class AspectPathTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(AspectPathTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/aspectpath/aspectpath.xml"); + } + + + public void test001(){ + runTest("testing new options"); + } + + public void test002(){ + runTest("aspect-declared interface members in libraries - baseline"); + } + + public void test003(){ + runTest("aspect-declared interface members in libraries - interfaceOnly.jar"); + } + + public void test004(){ + runTest("aspect-declared interface members in libraries - aspectOnly.jar"); + } + + public void test005(){ + runTest("aspect-declared interface members in libraries - aspectedInterfaceOnly.jar"); + } + + public void test006(){ + runTest("aspect-declared interface members in libraries - aspectedInterfaceOnly.jar,aspectOnly.jar"); + } + + public void test007(){ + runTest("aspect-declared interface members in libraries - aspectedInterfaceOnlyBinary.jar,aspectOnly.jar"); + } + + public void test008(){ + runTest("aspect-declared interface members in libraries - aspectedInterfaceOnly.jar,aspectpath=aspectOnly.jar"); + } + + public void test009(){ + runTest("aspect-declared interface members in libraries - aspectedInterfaceOnly.jar,aspectpath=aspectOnly.jar"); + } + + public void test010(){ + runTest("exception clause for aspect-declared interface methods - positive"); + } + + public void test011(){ + runTest("exception clause for aspect-declared interface methods - negative"); + } + + public void test012(){ + runTest("exception clause for aspect-declared class methods - positive"); + } + + public void test013(){ + runTest("exception clause for aspect-declared class methods - negative"); + } + + public void test014(){ + runTest("exception clause for aspect-declared interface methods - positive binary"); + } + + public void test015(){ + runTest("exception clause for aspect-declared interface methods - negative binary"); + } + + public void test016(){ + runTest("exception clause for aspect-declared class methods - positive binary"); + } + + public void test017(){ + runTest("exception clause for aspect-declared class methods - negative binary"); + } + + public void test018(){ + runTest("percflow aspects compiled from jars share one instance for all entry points"); + } + + public void test019(){ + runTest("(using aspectpath) percflow aspects compiled from jars share one instance for all entry points"); + } + + public void test020(){ + runTest("Introduced abstract method on abstract class not implemented by subtype"); + } + + public void test021(){ + runTest("Introduced abstract method on interface not implemented by subtype (aspectpath)"); + } + + public void test022(){ + runTest("weaving from an aspectpath jar into that same jar.."); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/aspectpath/aspectpath-tests.xml b/tests/src/org/aspectj/systemtest/aspectpath/aspectpath-tests.xml new file mode 100644 index 000000000..9be3b32d3 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/aspectpath/aspectpath-tests.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/aspectpath/aspectpath.xml b/tests/src/org/aspectj/systemtest/aspectpath/aspectpath.xml new file mode 100644 index 000000000..ba587fe9e --- /dev/null +++ b/tests/src/org/aspectj/systemtest/aspectpath/aspectpath.xml @@ -0,0 +1,12 @@ + +]> + + + + + +&tests; + + + diff --git a/tests/src/org/aspectj/systemtest/base/BaseTests.java b/tests/src/org/aspectj/systemtest/base/BaseTests.java new file mode 100644 index 000000000..37cdd7363 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/base/BaseTests.java @@ -0,0 +1,188 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.base; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class BaseTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(BaseTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/base/baseTests.xml"); + } + + + public void test001(){ + runTest("static and non-static before methods -- one file"); + } + + public void test002(){ + runTest("static and non-static before methods -- many files"); + } + + public void test003(){ + runTest("this redirection in non-static before methods"); + } + + public void test004(){ + runTest("DEPRECATED: introductions"); + } + + public void test005(){ + runTest("before constructors -- one file"); + } + + public void test006(){ + runTest("advise weaves find methods typed to builtins or non-woven classes"); + } + + public void test007(){ + runTest("make sure new weaves work inside of packages"); + } + + public void test008(){ + runTest("make sure new weaves work inside of packages (again)"); + } + + public void test009(){ + runTest("Inheritance of class and aspect vars in weaves"); + } + + public void test010(){ + runTest("Accessibility of class and aspect members from inside weaves"); + } + + public void test011(){ + runTest("Packaged aspects referring to packaged classes"); + } + + public void test012(){ + runTest("Inheritance of methods advised by aspects"); + } + + public void test013(){ + runTest("Inherited weaves on constructor"); + } + + public void test014(){ + runTest("Initializers in Aspect and Class Bodies"); + } + + public void test015(){ + runTest("Weaver Resolution of method names in method calls passed as args"); + } + + public void test016(){ + runTest("DEPRECATED: Introduce constructor with class inheritance"); + } + + public void test017(){ + runTest("empty and singular patterns on modifiers and throws"); + } + + public void test018(){ + runTest("DEPRECATED: Introduce of constructors"); + } + + public void test019(){ + runTest("Local declarations in advise bodies"); + } + + public void test020(){ + runTest("advises on introduced methods and constructors"); + } + + public void test021(){ + runTest("DEPRECATED: Method introduction into interface implemented by abstract class"); + } + + public void test022(){ + runTest("Crossing super calls in constructors"); + } + + public void test023(){ + runTest("empty modifier pattern"); + } + + public void test024(){ + runTest("Alpha conversion of argument names in designators"); + } + + public void test025(){ + runTest("advice uses its own formals to get actuals"); + } + + public void test026(){ + runTest("DEPRECATED: introduce weaves can use this"); + } + + public void test027(){ + runTest("DEPRECATED: introduce of abstract methods works"); + } + + public void test028(){ + runTest("multiple arounds successfully intercept and return own values"); + } + + public void test029(){ + runTest("proper matching of overloaded constructors"); + } + + public void test030(){ + runTest("proper handling of formals in catch advice"); + } + + public void test031(){ + runTest("proper values for thisJoinPoint attributes"); + } + + public void test032(){ + runTest("supers, supers, supers"); + } + + public void test033(){ + runTest("operations on private and protected aspect members (++, -- in partciular)"); + } + + public void test034(){ + runTest("only register things once"); + } + + public void test035(){ + runTest("inner aspects and around"); + } + + public void test036(){ + runTest("aspect inheritance and advice, introduction"); + } + + public void test037(){ + runTest("thisResultObject for primitives"); + } + + public void test038(){ + runTest("introductions calling super."); + } + + public void test039(){ + runTest("allow one argument calls even when there's a comma in the arglist"); + } + + public void test040(){ + runTest("advice on calls to static methods even works when called on super"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/base/baseTests-tests.xml b/tests/src/org/aspectj/systemtest/base/baseTests-tests.xml new file mode 100644 index 000000000..264c03fab --- /dev/null +++ b/tests/src/org/aspectj/systemtest/base/baseTests-tests.xml @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/base/baseTests.xml b/tests/src/org/aspectj/systemtest/base/baseTests.xml new file mode 100644 index 000000000..420567395 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/base/baseTests.xml @@ -0,0 +1,10 @@ + +]> + + + + +&tests; + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/design/DesignTests.java b/tests/src/org/aspectj/systemtest/design/DesignTests.java new file mode 100644 index 000000000..8a3248189 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/design/DesignTests.java @@ -0,0 +1,80 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.design; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class DesignTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(DesignTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/design/design.xml"); + } + + + public void test001(){ + runTest("initial tests for new introduction style"); + } + + public void test002(){ + runTest("overriding of introduced methods and accessibility"); + } + + public void test003(){ + runTest("within and introductions behaves correctly"); + } + + public void test004(){ + runTest("correct inheritance of multiple concrete methods"); + } + + public void test005(){ + runTest("errors in inheritance of multiple concrete methods"); + } + + public void test006(){ + runTest("declared exceptions are checked correctly on intros (errors)"); + } + + public void test007(){ + runTest("declared exceptions are checked correctly on intros"); + } + + public void test008(){ + runTest("Joinpoint is not created for foo(String) when before() advice is present."); + } + + public void test009(){ + runTest("more tests of eachobject with some difficult typing issues"); + } + + public void test010(){ + runTest("eachobject: eachobject(receptions(...)) [eachobject]"); + } + + public void test011(){ + runTest("Checking new joinpoints"); + } + + public void test012(){ + runTest("eachobject: simple test [eachobject] (still)"); + } + + public void test013(){ + runTest("scope issues with introduction (needs more work)"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/design/design.xml b/tests/src/org/aspectj/systemtest/design/design.xml new file mode 100644 index 000000000..51cc93173 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/design/design.xml @@ -0,0 +1,11 @@ + +]> + + + + + +&designTests; + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/design/designtest.xml b/tests/src/org/aspectj/systemtest/design/designtest.xml new file mode 100644 index 000000000..112d9b6c1 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/design/designtest.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/incremental/IncrementalTests.java b/tests/src/org/aspectj/systemtest/incremental/IncrementalTests.java new file mode 100644 index 000000000..fd7c1fa5e --- /dev/null +++ b/tests/src/org/aspectj/systemtest/incremental/IncrementalTests.java @@ -0,0 +1,194 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.incremental; + +import java.io.File; + +import junit.framework.Test; + +import org.aspectj.testing.XMLBasedAjcTestCase; +import org.aspectj.tools.ajc.CompilationResult; +import org.aspectj.util.FileUtil; + +public class IncrementalTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(IncrementalTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/incremental/incremental.xml"); + } + + + public void test001() throws Exception { + runTest("expect class added in initial incremental tests"); + nextIncrement(false); + copyFileAndDoIncrementalBuild("src.20/main/Main.java","src/main/Main.java"); + assertAdded("main/Target.class"); + run("main.Main"); + } + + public void test002() throws Exception { + runTest("expect class removed in initial incremental tests"); + nextIncrement(false); + assertAdded("main/Target.class"); + copyFileAndDoIncrementalBuild("src.20/main/Main.java","src/main/Main.java"); + assertDeleted("main/Target.class"); + run("main.Main"); + } + + public void test003() throws Exception { + runTest("expect class updated in initial incremental tests"); + long lastTime = nextIncrement(true); + copyFileAndDoIncrementalBuild("src.20/main/Main.java","src/main/Main.java"); + assertUpdated("main/Main.class",lastTime); + run("main.Main"); + } + + public void test004() throws Exception { + runTest("add file with class"); + nextIncrement(false); + copyFileAndDoIncrementalBuild("src.20/main/Target.java","src/main/Target.java"); + assertAdded("main/Target.class"); + long lastTime = nextIncrement(true); + copyFileAndDoIncrementalBuild("src.30/main/Main.java","src/main/Main.java"); + assertUpdated("main/Main.class",lastTime); + run("main.Main"); + } + + public void test005()throws Exception { + runTest("delete source file before incremental compile"); + nextIncrement(false); + MessageSpec messageSpec = new MessageSpec(null,newMessageList(new Message(6,"delete/Target.java",null,null))); + deleteFileAndDoIncrementalBuild("src/delete/DeleteMe.java",messageSpec); + nextIncrement(false); + copyFileAndDoIncrementalBuild("src.30/delete/Target.java","src/delete/Target.java"); + run("delete.Main"); + } + + public void test006() throws Exception { + runTest("do everything in default package (sourceroots)"); + nextIncrement(false); + copyFileAndDoIncrementalBuild("changes/Target.20.java","src/Target.java"); + run("Target"); + long lastTime = nextIncrement(true); + copyFileAndDoIncrementalBuild("changes/Main.30.java","src/Main.java"); + assertUpdated("Main.class",lastTime); + nextIncrement(false); + MessageSpec messageSpec = new MessageSpec(null,newMessageList(new Message(6,"Main.java",null,null))); + deleteFileAndDoIncrementalBuild("src/Target.java",messageSpec); + nextIncrement(false); + copyFileAndDoIncrementalBuild("changes/Main.50.java","src/Main.java"); + run("Main"); + } + + public void test007() throws Exception { + runTest("change sources in default package"); + nextIncrement(false); + copyFileAndDoIncrementalBuild("changes/Main.20.java","src/Main.java"); + run("Main"); + } + + public void test008() throws Exception { + runTest("change source"); + nextIncrement(false); + copyFileAndDoIncrementalBuild("changes/Main.20.java","src/app/Main.java"); + run("app.Main"); + } + + public void test009() throws Exception { + runTest("incrementally change only string literal, still expect advice"); + long lastTime = nextIncrement(true); + copyFileAndDoIncrementalBuild("changes/Main.20.java","src/packageOne/Main.java"); + assertUpdated("packageOne/Main.class",lastTime); + run("packageOne.Main",new String[] {"in longer packageOne.Main.main(..)", + "before main packageOne.Main"}, + null); + } + + public void test010() throws Exception { + runTest("add aspect source file and check world is rewoven"); + nextIncrement(false); + copyFileAndDoIncrementalBuild("changes/Detour.20.java","src/Detour.java"); + assertAdded("Detour.class"); + run("Main"); + } + + public void test011() throws Exception { + runTest("make sure additional classes generated during weave are deleted with src class file"); + nextIncrement(false); + assertTrue("AdviceOnIntroduced$AjcClosure1.class exists", + new File(ajc.getSandboxDirectory(),"AdviceOnIntroduced$AjcClosure1.class").exists()); + deleteFileAndDoIncrementalBuild("src/AdviceOnIntroduced.java"); + assertDeleted("AdviceOnIntroduced$AjcClosure1.class"); + } + + public void test012() throws Exception { + runTest("incremental with aspect-driven full rebuild"); + nextIncrement(false); + MessageSpec messageSpec = new MessageSpec(newMessageList(new Message(4,"Main.java",null,null)),null); + copyFileAndDoIncrementalBuild("changes/Aspect.20.java","src/Aspect.java",messageSpec); + run("Main"); + } + + private long nextIncrement(boolean doWait) { + long time = System.currentTimeMillis(); + if (doWait) { + try { + Thread.sleep(1000); + } catch (InterruptedException intEx) {} + } + return time; + } + + private void copyFileAndDoIncrementalBuild(String from, String to) throws Exception { + String dir = getCurrentTest().getDir(); + FileUtil.copyFile(new File(dir + File.separator + from), + new File(ajc.getSandboxDirectory(),to)); + CompilationResult result = ajc.doIncrementalCompile(); + assertNoMessages(result,"Expected clean compile from test '" + getCurrentTest().getTitle() + "'"); + } + + private void copyFileAndDoIncrementalBuild(String from, String to, MessageSpec expectedResults) throws Exception { + String dir = getCurrentTest().getDir(); + FileUtil.copyFile(new File(dir + File.separator + from), + new File(ajc.getSandboxDirectory(),to)); + CompilationResult result = ajc.doIncrementalCompile(); + assertMessages(result,"Test '" + getCurrentTest().getTitle() + "' did not produce expected messages",expectedResults); + } + + + private void deleteFileAndDoIncrementalBuild(String file, MessageSpec expectedResult) throws Exception { + new File(ajc.getSandboxDirectory(),file).delete(); + CompilationResult result = ajc.doIncrementalCompile(); + assertMessages(result,"Test '" + getCurrentTest().getTitle() + "' did not produce expected messages",expectedResult); + } + + private void deleteFileAndDoIncrementalBuild(String file) throws Exception { + deleteFileAndDoIncrementalBuild(file,MessageSpec.EMPTY_MESSAGE_SET); + } + + private void assertAdded(String file) { + assertTrue("File " + file + " should have been added", + new File(ajc.getSandboxDirectory(),file).exists()); + } + + private void assertDeleted(String file) { + assertFalse("File " + file + " should have been deleted", + new File(ajc.getSandboxDirectory(),file).exists()); + } + + private void assertUpdated(String file, long sinceTime) { + File f = new File(ajc.getSandboxDirectory(),file); + assertTrue("File " + file + " should have been updated",f.lastModified() > sinceTime); + } +} + diff --git a/tests/src/org/aspectj/systemtest/incremental/incremental-junit-tests.xml b/tests/src/org/aspectj/systemtest/incremental/incremental-junit-tests.xml new file mode 100644 index 000000000..f2f72c9f0 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/incremental/incremental-junit-tests.xml @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/incremental/incremental-tests.xml b/tests/src/org/aspectj/systemtest/incremental/incremental-tests.xml new file mode 100644 index 000000000..24b7a234a --- /dev/null +++ b/tests/src/org/aspectj/systemtest/incremental/incremental-tests.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/incremental/incremental.xml b/tests/src/org/aspectj/systemtest/incremental/incremental.xml new file mode 100644 index 000000000..39d6a6823 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/incremental/incremental.xml @@ -0,0 +1,10 @@ + +]> + + + + +&tests; + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/inpath/InPathTests.java b/tests/src/org/aspectj/systemtest/inpath/InPathTests.java new file mode 100644 index 000000000..6bd3bf749 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/inpath/InPathTests.java @@ -0,0 +1,96 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.inpath; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class InPathTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(InPathTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/inpath/inpath.xml"); + } + + + public void test001(){ + runTest("source for options -injars"); + } + + public void test002(){ + runTest("options -injars"); + } + + public void test003(){ + runTest("options -injars checking declare parents interactions"); + } + + public void test004(){ + runTest("The compiler crashes when using aspect libraries created without using -noweave"); + } + + public void test005(){ + runTest("declare warnings on main"); + } + + public void test006(){ + runTest("declare warnings on binary javac 1.4 classes"); + } + + public void test007(){ + runTest("declare warnings on binary ajc 1.1 classes"); + } + + public void test008(){ + runTest("Weaving rt.jar results in stack overflow"); + } + + public void test009(){ + runTest("Weaving failure when using injars (no jars)"); + } + + public void test010(){ + runTest("Weaving failure when using injars (on aspectpath)"); + } + + public void test011(){ + runTest("Weaving failure when using injars (on classpath)"); + } + + public void test012(){ + runTest("Weaving failure when using injars (actual injars)"); + } + + public void test013(){ + runTest("Introduced abstract method on interface not implemented by subtype (injars)"); + } + + public void test014(){ + runTest("error Type mismatch: cannot convert from java.lang.String to java.lang.String"); + } + + public void test015(){ + runTest("declare error binary-weaving NPE"); + } + + public void test016(){ + runTest("declare error binary-weaving NPE"); + } + + public void test017(){ + runTest("Regression from 1.1: NPE in CompilationResult"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/inpath/inpath-tests.xml b/tests/src/org/aspectj/systemtest/inpath/inpath-tests.xml new file mode 100644 index 000000000..18d78cf28 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/inpath/inpath-tests.xml @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/inpath/inpath.xml b/tests/src/org/aspectj/systemtest/inpath/inpath.xml new file mode 100644 index 000000000..2c0eac4c7 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/inpath/inpath.xml @@ -0,0 +1,11 @@ + +]> + + + + + +&tests; + + diff --git a/tests/src/org/aspectj/systemtest/java14/Java14Tests.java b/tests/src/org/aspectj/systemtest/java14/Java14Tests.java new file mode 100644 index 000000000..8bedab1ec --- /dev/null +++ b/tests/src/org/aspectj/systemtest/java14/Java14Tests.java @@ -0,0 +1,115 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.java14; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class Java14Tests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(Java14Tests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/java14/java14.xml"); + } + + + public void test001(){ + runTest("assert flow"); + } + + public void test002(){ + runTest("assert flow - 2"); + } + + public void test003(){ + runTest("assert typing"); + } + +// bug in eclipse compiler, moved to ajcTestsFailing.xml +// public void test004(){ +// runTest("assert coverage tests [requires 1.4]"); +// } + +// bug in eclipse compiler, moved to ajcTestsFailing.xml +// public void test005(){ +// runTest("assert coverage tests in one package [requires 1.4]"); +// } + + public void test006(){ + runTest("compiling asserts in methods"); + } + + public void test007(){ + runTest("asserts"); + } + + public void test008(){ + runTest("asserts in aspect and declared methods [requires 1.4]"); + } + + public void test009(){ + runTest("Does the matrix coverage thing for the new method signatures"); + } + + public void test010(){ + runTest("correct types of parameters at call-sites"); + } + + public void test011(){ + runTest("target type matching with messy interface hierarchies"); + } + + public void test012(){ + runTest("assert tests in introduction [requires 1.4]"); + } + + public void test013(){ + runTest("various forms of package name pattern matching work"); + } + + public void test014(){ + runTest("assert statement in advice coverage [requires 1.4]"); + } + + public void test015(){ + runTest("assert statement in advice [requires 1.4]"); + } + + public void test016(){ + runTest("assert and pertarget crashes compiler"); + } + + public void test017(){ + runTest("testing that assert works like .class"); + } + + public void test018(){ + runTest("JoinPoint Optimization when targetting 1.4"); + } + + public void test019(){ + runTest("XLint warning for call PCD's using subtype of defining type (-1.4 -Xlint:ignore)"); + } + + public void test020(){ + runTest("XLint warning for call PCD's using subtype of defining type (-1.4)"); + } + + public void test021(){ + runTest("Class Literals as non final fields (also assert, and this$0)"); + } + + +} + diff --git a/tests/src/org/aspectj/systemtest/java14/java14-tests.xml b/tests/src/org/aspectj/systemtest/java14/java14-tests.xml new file mode 100644 index 000000000..364c28e4f --- /dev/null +++ b/tests/src/org/aspectj/systemtest/java14/java14-tests.xml @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/java14/java14.xml b/tests/src/org/aspectj/systemtest/java14/java14.xml new file mode 100644 index 000000000..c25b999cf --- /dev/null +++ b/tests/src/org/aspectj/systemtest/java14/java14.xml @@ -0,0 +1,11 @@ + +]> + + + + + +&tests; + + diff --git a/tests/src/org/aspectj/systemtest/knownlimitations/KnownLimitationsTests.java b/tests/src/org/aspectj/systemtest/knownlimitations/KnownLimitationsTests.java new file mode 100644 index 000000000..481827125 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/knownlimitations/KnownLimitationsTests.java @@ -0,0 +1,144 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.knownlimitations; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class KnownLimitationsTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(KnownLimitationsTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/knownlimitations/knownlimitations.xml"); + } + + + public void test001(){ + runTest("DEPRECATED: introduce of variables"); + } + + public void test002(){ + runTest("checking the contra-variant errors for typing of proceed"); + } + + public void test003(){ + runTest("introduction of static methods and fields on classes and interfaces"); + } + + public void test004(){ + runTest("advice on catch clauses"); + } + + public void test005(){ + runTest("holding onto proceed calls in a closure-like way"); + } + + public void test006(){ + runTest("PR#458 Compiler was incorrectly flagging error in advice on initialization and static initialization"); + } + + public void test007(){ + runTest("Introduced type unavailable to instanceof expressions in introduced methods"); + } + + public void test008(){ + runTest("enclosing join point not exported properly in pre-initialization join point"); + } + + public void test009(){ + runTest("cyclic pointcut definitions"); + } + + public void test010(){ + runTest("package typepattern with no packages (in default package)"); + } + + public void test011(){ + runTest("flag errors when binding args with indeterminate prefix and suffix"); + } + + public void test012(){ + runTest("around and return types + inlining optimizations"); + } + + public void test013(){ + runTest("source locations within expressions (hard case of constructor start)"); + } + + public void test014(){ + runTest("declaring method on superclass and subclass"); + } + + public void test015(){ + runTest("illegal name binding in around cflow"); + } + + public void test016(){ + runTest("incrementally change string size and wire in injar classes"); + } + + public void test017(){ + runTest("before():execution(new(..)) does not throw NoAspectBoundException"); + } + + public void test018(){ + runTest("declare error on handler/method execution with no code on binary ajc 1.1 classes"); + } + + public void test019(){ + runTest("declare error on handler/method execution with no code on binary javac 1.4 classes"); + } + + public void test020(){ + runTest("CLE: -help usage"); + } + + public void test021(){ + runTest("declare warnings on main - constructor execution"); + } + + public void test022(){ + runTest("declare warnings on binary javac 1.4 main - constructor execution"); + } + + public void test023(){ + runTest("declare warnings on binary ajc 1.1 main - constructor execution"); + } + + public void test024(){ + runTest("advice on handler join points should not throw unpermitted checked exceptions"); + } + + public void test025(){ + runTest("-nowarn suppresses XLint warnings"); + } + + public void test026(){ + runTest("warn:none suppresses XLint warnings"); + } + + public void test027(){ + runTest("-nowarn suppresses declare warnings"); + } + + public void test028(){ + runTest("-warn:none suppresses declare warnings"); + } + + public void test029(){ + runTest("insertion of lots of advice code can make branch offset for if too large"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/knownlimitations/knownLimitations-tests.xml b/tests/src/org/aspectj/systemtest/knownlimitations/knownLimitations-tests.xml new file mode 100644 index 000000000..d420885de --- /dev/null +++ b/tests/src/org/aspectj/systemtest/knownlimitations/knownLimitations-tests.xml @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/knownlimitations/knownLimitations.xml b/tests/src/org/aspectj/systemtest/knownlimitations/knownLimitations.xml new file mode 100644 index 000000000..25d99f6e4 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/knownlimitations/knownLimitations.xml @@ -0,0 +1,11 @@ + +]> + + + + + +&tests; + + diff --git a/tests/src/org/aspectj/systemtest/options/OptionsTests.java b/tests/src/org/aspectj/systemtest/options/OptionsTests.java new file mode 100644 index 000000000..746c51011 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/options/OptionsTests.java @@ -0,0 +1,44 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.options; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class OptionsTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(OptionsTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/options/options.xml"); + } + + + public void test001(){ + runTest("options -warn:deprecation"); + } + + public void test002(){ + runTest("options -warn:deprecation not enabled"); + } + + public void test003(){ + runTest("setting -warn:constructorName works"); + } + + public void test004(){ + runTest("-deprecation not working?"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/options/options-tests.xml b/tests/src/org/aspectj/systemtest/options/options-tests.xml new file mode 100644 index 000000000..d109cd2d0 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/options/options-tests.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/options/options.xml b/tests/src/org/aspectj/systemtest/options/options.xml new file mode 100644 index 000000000..d877da040 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/options/options.xml @@ -0,0 +1,10 @@ + +]> + + + + +&tests; + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/pre10x/AjcPre10xTests.java b/tests/src/org/aspectj/systemtest/pre10x/AjcPre10xTests.java new file mode 100644 index 000000000..264b4f55e --- /dev/null +++ b/tests/src/org/aspectj/systemtest/pre10x/AjcPre10xTests.java @@ -0,0 +1,316 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.pre10x; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class AjcPre10xTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(AjcPre10xTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/pre10x/pre10x.xml"); + } + + + public void test001(){ + runTest("Using 'aspect' as identifier is legal TODO"); + } + + public void test002(){ + runTest("Using 'pointcut' as identifier is legal TODO"); + } + + public void test003(){ + runTest("CF expected when enclosing class superclass used as this qualifier in inner class"); + } + + public void test004(){ + runTest("enclosing class may be used as this qualifier in inner class"); + } + + public void test005(){ + runTest("reasonable error for crosscut reference with no formals specified"); + } + + public void test006(){ + runTest("reasonable error for introduction on type whose source isn't found"); + } + + public void test007(){ + runTest("handle errors in crosscut designators, insist that they end with a semicolon"); + } + + public void test008(){ + runTest("try to return from a before, after, after throwing and after returning"); + } + + public void test009(){ + runTest("the designator has a wildcard for method name but no return type specified"); + } + + public void test010(){ + runTest("the designator for the introduction has no type after the | charcter"); + } + + public void test011(){ + runTest("crosscut signature does not match"); + } + + public void test012(){ + runTest("proper exit conditions when errors fall through to javac"); + } + + public void test013(){ + runTest("mismatched parens on advice (wasn't binding Tester)"); + } + + public void test014(){ + runTest("Non-static advice silently ignored"); + } + + public void test015(){ + runTest("extra closing brace"); + } + + public void test016(){ + runTest("decent errors for around return type not matching target point"); + } + + public void test017(){ + runTest("eachobject: can't call new on an aspect of"); + } + + public void test018(){ + runTest("eachobject: only zero-argument constructors allowed in an aspect"); + } + + public void test019(){ + runTest("eachobject: can't extend a concrete aspect"); + } + + public void test020(){ + runTest("instanceof used without a class"); + } + + public void test021(){ + runTest("wildcard used for returns clause"); + } + + public void test022(){ + runTest("no return statement in around advice"); + } + + public void test023(){ + runTest("inner aspects must be static (no longer matches PR#286)"); + } + + public void test024(){ + runTest("Casting class declarations as interfaces"); + } + + public void test025(){ + runTest("omits a variable name and crashes with a null pointer"); + } + + public void test026(){ + runTest("Not generating an error for using new as a method name"); + } + + public void test027(){ + runTest("ClassCastException on the int literal"); + } + + public void test028(){ + runTest("Wrong strictfp keyword usage in interface function prototype [TODO: move to errors]"); + } + + public void test029(){ + runTest("Wrong strictfp keyword usage in field declaration [TODO: move to errors]"); + } + + public void test030(){ + runTest("Wrong strictfp keyword usage in constructor declaration [TODO: move to errors]"); + } + + public void test031(){ + runTest("Incorrect static casts to primitively foldable arguments should not crash the compiler."); + } + + public void test032(){ + runTest("Dominates with commas should signal an error."); + } + + public void test033(){ + runTest("stack overflow with recursive crosscut specifier"); + } + + public void test034(){ + runTest("Throwing a NullPointerException when formals can't be bound in named pointcut"); + } + + public void test035(){ + runTest("disallow defining more than one pointcut with the same name"); + } + + public void test036(){ + runTest("pre 0.7 introduction form outside aspect body causes an EmptyStackException"); + } + + public void test037(){ + runTest("a class can't extend an aspect"); + } + + public void test038(){ + runTest("a before() clause at the class-level causes an EmptyStackException"); + } + + public void test039(){ + runTest("an after() clause at the class-level causes an EmptyStackException"); + } + + public void test040(){ + runTest("an around() clause at the class-level causes an EmptyStackException"); + } + + public void test041(){ + runTest("Doesn't detect cyclic inheritance of aspects."); + } + + public void test042(){ + runTest("Binds the pointcut formals to member variables instead of pointcut formals."); + } + + public void test043(){ + runTest("ambiguous formal in formals pattern"); + } + + public void test044(){ + runTest("good error for field name instead of type name"); + } + + public void test045(){ + runTest("errors in aspect inheritance - 1"); + } + + public void test046(){ + runTest("errors in aspect inheritance - 2"); + } + + public void test047(){ + runTest("errors in aspect inheritance - 3"); + } + + public void test048(){ + runTest("errors in aspect inheritance - 4"); + } + + public void test049(){ + runTest("circular dominates leading to irresolvable advice precedence"); + } + + public void test050(){ + runTest("Should issue an error for using 'class' instead of 'aspect'"); + } + + public void test051(){ + runTest("Should signal an error when we need an exposed value but don't provide it"); + } + + public void test052(){ + runTest("StackOverFlowException with circular +implements's."); + } + + public void test053(){ + runTest("Introducing protected methods is causing a crash"); + } + + public void test054(){ + runTest("Introducing protected fields is causing a crash"); + } + + public void test055(){ + runTest("two classes with the same fully-qualified names [eachjvm]"); + } + + public void test056(){ + runTest("Undefined pointcuts were throwing exceptions in 07b11 [callsto]"); + } + + public void test057(){ + runTest("advice on abstract pointcuts"); + } + + public void test058(){ + runTest("Whoops, I forgot to put a class in the field access PCD."); + } + + public void test059(){ + runTest("the arounds return something but there is no returns statement"); + } + + public void test060(){ + runTest("multiple conflicting introductions"); + } + + public void test061(){ + runTest("referencing non-static pointcuts in outer aspects"); + } + + public void test062(){ + runTest("javac correct compiler error if there is no return in around returning result"); + } + + public void test063(){ + runTest("should give an error for introducing two members with the same name"); + } + + public void test064(){ + runTest("wimpy test for undeclared and uncaught exceptions"); + } + + public void test065(){ + runTest("Given non-matching TypePattern, CE flags use of non-introduced method rather than failure to introduce"); + } + + public void test066(){ + runTest("Compiler should suggest using aspect when advice, pointcuts, or introduction is in a class"); + } + + public void test067(){ + runTest("declare error working with pointcut and-not (amp,amp,bang)"); + } + + public void test068(){ + runTest("aspect as member of interface (private and protected)"); + } + + public void test069(){ + runTest("introduced inner interfaces - compile should fail to bind interface name outside of Aspect or if implementing method is not public"); + } + + public void test070(){ + runTest("aspects may not implement Serializable or Cloneable"); + } + + public void test071(){ + runTest("explicit constructor calls can throw exceptions"); + } + + public void test072(){ + runTest("bad proceed args good error messages"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/pre10x/pre10x-tests.xml b/tests/src/org/aspectj/systemtest/pre10x/pre10x-tests.xml new file mode 100644 index 000000000..90a1de463 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/pre10x/pre10x-tests.xml @@ -0,0 +1,629 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/pre10x/pre10x.xml b/tests/src/org/aspectj/systemtest/pre10x/pre10x.xml new file mode 100644 index 000000000..cfaa7480d --- /dev/null +++ b/tests/src/org/aspectj/systemtest/pre10x/pre10x.xml @@ -0,0 +1,10 @@ + +]> + + + + +&tests; + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/purejava/PureJavaTests.java b/tests/src/org/aspectj/systemtest/purejava/PureJavaTests.java new file mode 100644 index 000000000..d692464f5 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/purejava/PureJavaTests.java @@ -0,0 +1,992 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.purejava; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class PureJavaTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(PureJavaTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/pureJava/pureJava.xml"); + } + + + public void test001(){ + runTest("unicodes and literals"); + } + + public void test002(){ + runTest("For Statement"); + } + + public void test003(){ + runTest("correct super call lookup for method().name()"); + } + + public void test004(){ + runTest("combined logic expression (handling coericions vs. parens)"); + } + + public void test005(){ + runTest("comment after class closes (with no new line at end)"); + } + + public void test006(){ + runTest("multi-dimensional array initializers"); + } + + public void test007(){ + runTest("probelm with the generated names of exceptions"); + } + + public void test008(){ + runTest("checks if the class field can be used on all of the primitive types"); + } + + public void test009(){ + runTest("Doesn't parse an array-returning method that throws an exception"); + } + + public void test010(){ + runTest("check that nested constructions of local classes work"); + } + + public void test011(){ + runTest("Make sure anonymous classes can have non-nullary constructors"); + } + + public void test012(){ + runTest("Full names are dropped from inner interfaces"); + } + + public void test013(){ + runTest("Making sure full names stay on static inner classes"); + } + + public void test014(){ + runTest("Not binding constructor when using more than one compilation"); + } + + public void test015(){ + runTest("return;;; is not really legal"); + } + + public void test016(){ + runTest("ajc treating Throwable as checked, issuing error if not found"); + } + + public void test017(){ + runTest("package protected classes becoming public"); + } + + public void test018(){ + runTest("IOException on windows if nul used as identifier"); + } + + public void test019(){ + runTest("NullPointerException (not compiler error) when extending non-static inner class"); + } + + public void test020(){ + runTest("compiler flags final static variable as indefinite in member assignment."); + } + + public void test021(){ + runTest("confirm no IOException on windows if nul used as identifier"); + } + + public void test022(){ + runTest("final constructor parameter causes incorrect compiler error"); + } + + public void test023(){ + runTest("Error expected for field of type void"); + } + + public void test024(){ + runTest("Error expected for constructor in interfaces"); + } + + public void test025(){ + runTest("class name for identifier as String should provoke error"); + } + + public void test026(){ + runTest("cyclic interface inheritance not detected if no classes implement the interfaces"); + } + + public void test027(){ + runTest("cyclic class inheritance"); + } + + public void test028(){ + runTest("type and package name conflicts are resolved happily (1a)"); + } + + public void test029(){ + runTest("(fails in USEJAVAC) type and package name conflicts are resolved happily (1b)"); + } + + public void test030(){ + runTest("type and package name conflicts caught as errors (1)"); + } + + public void test031(){ + runTest("flow analysis where final variable set in another constructor"); + } + + public void test032(){ + runTest("Can construct inner classes using qualified expressions"); + } + + public void test033(){ + runTest("subclass unable to access protected static methods using type-qualified references"); + } + + public void test034(){ + runTest("Undefined inner class constructor"); + } + + public void test035(){ + runTest("classes that are package prefixes are illegal"); + } + + public void test036(){ + runTest("valid type expressions for introduced type testing"); + } + + public void test037(){ + runTest("PR591 compiler error expected when directly calling unimplemented abstract method using super"); + } + + public void test038(){ + runTest("suggested by Jacks 15.28-qualified-namestr tests"); + } + + public void test039(){ + runTest("suggested by jacks 3.7-15 all comments must be closed"); + } + + public void test040(){ + runTest("package class access not enforced outside of package"); + } + + public void test041(){ + runTest("expecting CE for ambiguous reference"); + } + + public void test042(){ + runTest("try without catch or finally"); + } + + public void test043(){ + runTest("invalid floating-point constant"); + } + + public void test044(){ + runTest("concrete aspect unable to access abstract package-private method in parent for overriding"); + } + + public void test045(){ + runTest("super reference used to disambiguate names of different but compatible types"); + } + + public void test046(){ + runTest("anonymous explicit inner constructors"); + } + + public void test047(){ + runTest("Overruning the lineStarts buffer, DO NOT EDIT THIS FILE!!!!"); + } + + public void test048(){ + runTest("no CE for unambiguous type reference"); + } + + public void test049(){ + runTest("CE for ambiguous type reference (imports)"); + } + + public void test050(){ + runTest("CE for ambiguous type reference (two type declarations)"); + } + + public void test051(){ + runTest("CE for ambiguous type reference (two inner types)"); + } + + public void test052(){ + runTest("final assignment in loop"); + } + + public void test053(){ + runTest("private super access in inners"); + } + + public void test054(){ + runTest("nested interface does not require new qualifier (8)"); + } + + public void test055(){ + runTest("nested interface does not require new qualifier (9)"); + } + + public void test056(){ + runTest("nested interface does not require new qualifier (10)"); + } + + public void test057(){ + runTest("nested interface does not require new qualifier (14)"); + } + + public void test058(){ + runTest("nested interface does not require new qualifier (15)"); + } + + public void test059(){ + runTest("nested interface does not require new qualifier (16)"); + } + + public void test060(){ + runTest("check that constructor name's match the enclosing type"); + } + + public void test061(){ + runTest("errors for not applicable or accessible methods"); + } + + public void test062(){ + runTest("import statement within class body crashes compiler"); + } + + public void test063(){ + runTest("Accessing instance fields and instance methods statically."); + } + + public void test064(){ + runTest("Crashes when a cast is within another cast"); + } + + public void test065(){ + runTest("Crashes when a cast of the form )int) appears"); + } + + public void test066(){ + runTest("Crashes when the closing brace is reversed"); + } + + public void test067(){ + runTest("Crashes when a method name is missing in a call -- e.g. 'System.out.();'"); + } + + public void test068(){ + runTest("Crashes when a bad r-value appears."); + } + + public void test069(){ + runTest("Two underscores as a variables causes a crash"); + } + + public void test070(){ + runTest("Crashes when assigning to a final static in an intializer and declaration"); + } + + public void test071(){ + runTest("Crashes when two dots appear instead of one"); + } + + public void test072(){ + runTest("Crashes when there're stray dots"); + } + + public void test073(){ + runTest("Stray characters cause a crash"); + } + + public void test074(){ + runTest("Colon instead of a semi-colon causes a crash"); + } + + public void test075(){ + runTest("type error in initializer caught by ajc, not javac"); + } + + public void test076(){ + runTest("Circular inheritance with classes causes a stack overflow."); + } + + public void test077(){ + runTest("Missing ;"); + } + + public void test078(){ + runTest("cast expressions should not allow casts between ifaces and array types"); + } + + public void test079(){ + runTest("parsing errors for various bad forms of NewArrayExprs."); + } + + public void test080(){ + runTest("good error for bad field and inner class references"); + } + + public void test081(){ + runTest("Implementing a non-interface used to crash the compiler."); + } + + public void test082(){ + runTest("error of no return statement detected not by ajc but by javac (line 4)"); + } + + public void test083(){ + runTest("class and interface extension"); + } + + public void test084(){ + runTest("types in throws clauses"); + } + + public void test085(){ + runTest("bad switch syntax"); + } + + public void test086(){ + runTest("Referencing various things from static contexts"); + } + + public void test087(){ + runTest("Some expressions are illegal expression statements"); + } + + public void test088(){ + runTest("illegal forward reference"); + } + + public void test089(){ + runTest("protected accessibility"); + } + + public void test090(){ + runTest("parse-time illegal modifiers"); + } + + public void test091(){ + runTest("check-time illegal modifiers"); + } + + public void test092(){ + runTest("illegal synchronized stmts"); + } + + public void test093(){ + runTest("modifiers on interface members"); + } + + public void test094(){ + runTest("good errors (and not too many) for missing members"); + } + + public void test095(){ + runTest("expecting compile failures with subclass narrowing scope of superclass methods or accessing private superclass variables"); + } + + public void test096(){ + runTest("inner classes may not have static non-constant members"); + } + + public void test097(){ + runTest("flow analysis with local types"); + } + + public void test098(){ + runTest("PR584 Can construct inner classes using qualified expressions"); + } + + public void test099(){ + runTest("incrementing objects, arrays - 2"); + } + + public void test100(){ + runTest("incrementing objects, arrays CE"); + } + + public void test101(){ + runTest("incrementing objects, arrays - 3"); + } + + public void test102(){ + runTest("incrementing objects, arrays"); + } + + public void test103(){ + runTest("no circularity errors simply because of inners (1)"); + } + + public void test104(){ + runTest("no circularity errors simply because of inners (2)"); + } + + public void test105(){ + runTest("should have circular inheritance errors (1)"); + } + + public void test106(){ + runTest("should have circular inheritance errors (2)"); + } + + public void test107(){ + runTest("interface using preceding subinterface in its definition"); + } + + public void test108(){ + runTest("Parent interface using public inner interface of child in same file"); + } + + public void test109(){ + runTest("a type is not allowed to extend or implement its own innner type"); + } + + public void test110(){ + runTest("try requires block JLS 14.19"); + } + + public void test111(){ + runTest("loop expressions not declarations"); + } + + public void test112(){ + runTest("no error when public class is in file of a different name"); + } + + public void test113(){ + runTest("local variables must be final to be accessed from inner class"); + } + + public void test114(){ + runTest("final local variables may be accessed from inner class"); + } + + public void test115(){ + runTest("missing package identifier"); + } + + public void test116(){ + runTest("CE for ambiguous type reference (two files in package)"); + } + + public void test117(){ + runTest("initializer can throw so long as all constructors declare so"); + } + + public void test118(){ + runTest("interfaces may not contain initializers (bug found by jacks)"); + } + + public void test119(){ + runTest("initializers must be able to complete normally (found by jacks)"); + } + + public void test120(){ + runTest("more tests of super alone"); + } + + public void test121(){ + runTest("subclass access to enclosing super class private members"); + } + + public void test122(){ + runTest("various tests of switch bounds"); + } + + public void test123(){ + runTest("VerifyError if nested sync returning result"); + } + + public void test124(){ + runTest("assert flow"); + } + + public void test125(){ + runTest("assert flow - 2"); + } + + public void test126(){ + runTest("assert typing"); + } + + public void test127(){ + runTest("assert coverage tests [requires 1.4]"); + } + + public void test128(){ + runTest("assert coverage tests in one package [requires 1.4]"); + } + + public void test129(){ + runTest("compiling asserts in methods"); + } + + public void test130(){ + runTest("import of a class in the default package"); + } + + public void test131(){ + runTest("Referencing static interfaces with import statements"); + } + + public void test132(){ + runTest("Referencing static interfaces with import statements stars"); + } + + public void test133(){ + runTest("Referencing static interfaces with import statements stars 2"); + } + + public void test134(){ + runTest("Referencing static interfaces with import statements stars 3"); + } + + public void test135(){ + runTest("Referencing interfaces with import statements"); + } + + public void test136(){ + runTest("Referencing interfaces with import statements stars"); + } + + public void test137(){ + runTest("Referencing interfaces with import statements stars 2"); + } + + public void test138(){ + runTest("Referencing interfaces with import statements stars 3"); + } + + public void test139(){ + runTest("import any inner from interface implementor"); + } + + public void test140(){ + runTest("equals method on quoted strings"); + } + + public void test141(){ + runTest("anonymous inner class"); + } + + public void test142(){ + runTest("parsing of parenthesized 'this' (in returns)"); + } + + public void test143(){ + runTest("Strings are folded and interned correctly"); + } + + public void test144(){ + runTest("Cast binds tighter than equality tests"); + } + + public void test145(){ + runTest("Boundary base values can be parsed"); + } + + public void test146(){ + runTest("State is passed correctly across nested annonymous inners"); + } + + public void test147(){ + runTest("?: expressions should typecheck in interesting ways"); + } + + public void test148(){ + runTest("cast expressions should allow casts to/from interfaces at compile-time."); + } + + public void test149(){ + runTest("various anonymous inner classes plus super types tests"); + } + + public void test150(){ + runTest("Various comment syntaxes should be handled."); + } + + public void test151(){ + runTest("Abstract inner classes across package boundaries"); + } + + public void test152(){ + runTest("inner classes accessing outers and some more inner class names"); + } + + public void test153(){ + runTest("remember to cast folded values down to the proper types."); + } + + public void test154(){ + runTest("inner classes can be built using protected constructors in super"); + } + + public void test155(){ + runTest("The current AspectJ compiler cannot parse qualified superclass constructor invocations"); + } + + public void test156(){ + runTest("More thourough test of static members using full names"); + } + + public void test157(){ + runTest("More thourough test of static members using imports"); + } + + public void test158(){ + runTest("Looking in class Java for java.lang.String WITH separate compilation"); + } + + public void test159(){ + runTest("Looking in class Java for java.lang.String WITHOUT separate compilation"); + } + + public void test160(){ + runTest("Looking in class Java for java.lang.String WITH separate compilation with packages"); + } + + public void test161(){ + runTest("Looking in class Java for java.lang.String WITHOUT separate compilation with packages"); + } + + public void test162(){ + runTest("Testing ternary operations."); + } + + public void test163(){ + runTest("Lifting locals in switch statements."); + } + + public void test164(){ + runTest("Getting confused when looking up method signatures"); + } + + public void test165(){ + runTest("Not recognizing the chars '\0', '\1', '\2', '\3', '\4', '\5', '\6', '\7'"); + } + + public void test166(){ + runTest("Test chars '\0', '\1', '\2', '\3', '\4', '\5', '\6', '\7' with a case statement"); + } + + public void test167(){ + runTest("Checking character values with all the unicode chars."); + } + + public void test168(){ + runTest("Trouble finding methods with the same name and different parameter types"); + } + + public void test169(){ + runTest("Binding non-public static inner classes of interfaces in other packages"); + } + + public void test170(){ + runTest("Not recognizing the octal chars '\0', '\1', '\2', '\3', '\4', '\5', '\6', '\7'"); + } + + public void test171(){ + runTest("Members with the same name as their package cause confusion with fully-qualified names."); + } + + public void test172(){ + runTest("Fully-qual'ed names with same start as variable names"); + } + + public void test173(){ + runTest("Fully qualifying inner classes within annonymous classes causes problems."); + } + + public void test174(){ + runTest("Calls to methods in outer annonymous classes are being qual's incorrectly with 'this'"); + } + + public void test175(){ + runTest("Reading inner classes from source and bytecode (1) -- was failing"); + } + + public void test176(){ + runTest("Reading inner classes from source and bytecode (2)"); + } + + public void test177(){ + runTest("Reading inner classes from source and bytecode (3)"); + } + + public void test178(){ + runTest("Not lifting types correctly with bytes and shorts with ternary ops"); + } + + public void test179(){ + runTest("Not looking up methods inside of anonymous declarations correctly."); + } + + public void test180(){ + runTest("Resolving extended classes with array parameters"); + } + + public void test181(){ + runTest("Assignments as second arguments in ternary operators."); + } + + public void test182(){ + runTest("Conflicting inner classes with interfaces."); + } + + public void test183(){ + runTest("confusions of casts and parens"); + } + + public void test184(){ + runTest("default constructors seen by inner classes subtyping outers"); + } + + public void test185(){ + runTest("folding fields set to anonymous instances containing self-references"); + } + + public void test186(){ + runTest("finally at the end of a method that needs to return"); + } + + public void test187(){ + runTest("overriding methods from object in interfaces and multiple-inheritance"); + } + + public void test188(){ + runTest("private fields in an outer class accessed by an inner which also extends the outer"); + } + + public void test189(){ + runTest("breaking out of a labeled block inside of an if"); + } + + public void test190(){ + runTest("abstractifying a method and getting it back through super"); + } + + public void test191(){ + runTest("Packages and static classes with the same name produce compile errors."); + } + + public void test192(){ + runTest("Inner types must generate classfiles with only Public/Default access flags."); + } + + public void test193(){ + runTest("Default constructors have same access as their enclosing type"); + } + + public void test194(){ + runTest("Returning primitive values matching method return type (minimal)"); + } + + public void test195(){ + runTest("Flow analysis and if(true)"); + } + + public void test196(){ + runTest("packages and generated inner types (for I.class)"); + } + + public void test197(){ + runTest("A.this exprs match by exact type matching"); + } + + public void test198(){ + runTest("Implicit this for new inner instance must be avaliable"); + } + + public void test199(){ + runTest("Inners can reference protected fields of their outer's super."); + } + + public void test200(){ + runTest("Primitives that special case for a constant arm should work"); + } + + public void test201(){ + runTest("Parenthesized true and false don't parse"); + } + + public void test202(){ + runTest("Field sets to public fields of private fields of enclosing types"); + } + + public void test203(){ + runTest("Constant values should be stored with the correct type of their fields"); + } + + public void test204(){ + runTest("Local variables in initializers should not be treated as blank final fields"); + } + + public void test205(){ + runTest("Binops aren't allowed as update stmts in for loops"); + } + + public void test206(){ + runTest("Can't avoid doing division in case of div by zero"); + } + + public void test207(){ + runTest("Testing frames w/greater than FF locals and 7F incs (i.e., WIDE instruction)"); + } + + public void test208(){ + runTest("correct numeric literals"); + } + + public void test209(){ + runTest("invalid numeric literals"); + } + + public void test210(){ + runTest("inner types can't have the same simple name as an enclosing type"); + } + + public void test211(){ + runTest("test the unops and binops with various values"); + } + + public void test212(){ + runTest("test + and += for strings and variously typed values"); + } + + public void test213(){ + runTest("test try/catch/finally statements"); + } + + public void test214(){ + runTest("local types can be bound in the signatures of other local types"); + } + + public void test215(){ + runTest("type and package name conflicts are resolved happily (2)"); + } + + public void test216(){ + runTest("try statements work sorta like scoped items for exception flow control"); + } + + public void test217(){ + runTest("qualified this must work exactly, not based on subtypes"); + } + + public void test218(){ + runTest("nested finally blocks have interesting frame location problems"); + } + + public void test219(){ + runTest("nested synchronized blocks have interesting frame location problems"); + } + + public void test220(){ + runTest("anonymous inner classes with inner types"); + } + + public void test221(){ + runTest("qualified super call expr"); + } + + public void test222(){ + runTest("interfaces with non-explicitly static inner classes"); + } + + public void test223(){ + runTest("Operands work correctly"); + } + + public void test224(){ + runTest("simple tests of throws and for stmt typing"); + } + + public void test225(){ + runTest("test for not folding circular constants"); + } + + public void test226(){ + runTest("continue targets must be continuable"); + } + + public void test227(){ + runTest("qualified this to non-inner should be caught"); + } + + public void test228(){ + runTest("Cannot bind a name."); + } + + public void test229(){ + runTest("interface declaration not permitted in local method scope"); + } + + public void test230(){ + runTest("Locals inside other locals, ordering of processing [eh]"); + } + + public void test231(){ + runTest("asserts"); + } + + public void test232(){ + runTest("non-constant static final fields marked as final in .class"); + } + + public void test233(){ + runTest("handle multiple nested inner classes"); + } + + public void test234(){ + runTest("advice on a static method"); + } + + public void test235(){ + runTest("inner constructor syntax causes compile error"); + } + + public void test236(){ + runTest("widening of method parameters to match javac"); + } + + public void test237(){ + runTest("parenthesized string literals matching primitive type names"); + } + + public void test238(){ + runTest("simple type coercions tests"); + } + + public void test239(){ + runTest("order of type declarations shouldn't matter"); + } + + public void test240(){ + runTest("Scanner non recognizing strictfp."); + } + + public void test241(){ + runTest("Crashes when a lot of zeros are in front of a double variable [!!! purejava]"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/purejava/pureJava-tests.xml b/tests/src/org/aspectj/systemtest/purejava/pureJava-tests.xml new file mode 100644 index 000000000..9864ffe79 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/purejava/pureJava-tests.xml @@ -0,0 +1,1894 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/purejava/pureJava.xml b/tests/src/org/aspectj/systemtest/purejava/pureJava.xml new file mode 100644 index 000000000..1eb4b9f60 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/purejava/pureJava.xml @@ -0,0 +1,10 @@ + +]> + + + + +&tests; + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/serialVerUID/SUIDTests.java b/tests/src/org/aspectj/systemtest/serialVerUID/SUIDTests.java new file mode 100644 index 000000000..8f5241287 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/serialVerUID/SUIDTests.java @@ -0,0 +1,96 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.serialVerUID; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class SUIDTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(SUIDTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID.xml"); + } + + + public void test001(){ + runTest("SUID: Before execution advice"); + } + + public void test002(){ + runTest("SUID: Around execution advice"); + } + + public void test003(){ + runTest("SUID: Around closure execution advice (-Xlint:ignore)"); + } + + public void test004(){ + runTest("SUID: Around closure execution advice"); + } + + public void test005(){ + runTest("SUID: thisJoinPoint"); + } + + public void test006(){ + runTest("SUID: thisJoinPoint with clinit method"); + } + + public void test007(){ + runTest("SUID: After returning staticinitialization advice"); + } + + public void test008(){ + runTest("SUID: After returning staticinitialization advice with serialVersionUID field"); + } + + public void test009(){ + runTest("SUID: ITD field"); + } + + public void test010(){ + runTest("SUID: ITD method"); + } + + public void test011(){ + runTest("SUID: Declare extends"); + } + + public void test012(){ + runTest("SUID: Declare implements (compile)"); + } + + public void test013(){ + runTest("SUID: Declare implements non-Serializable (compile)"); + } + + public void test014(){ + runTest("SUID: Declare implements Serializable (compile)"); + } + + public void test015(){ + runTest("SUID: Declare implements (weave)"); + } + + public void test016(){ + runTest("SUID: Priviliged aspect"); + } + + public void test017(){ + runTest("SUID: Perthis aspect"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID-tests.xml b/tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID-tests.xml new file mode 100644 index 000000000..f121ac3f1 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID-tests.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID.xml b/tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID.xml new file mode 100644 index 000000000..20bfa889d --- /dev/null +++ b/tests/src/org/aspectj/systemtest/serialVerUID/serialVerUID.xml @@ -0,0 +1,10 @@ + +]> + + + + +&tests; + + diff --git a/tests/src/org/aspectj/systemtest/xlint/XLintTests.java b/tests/src/org/aspectj/systemtest/xlint/XLintTests.java new file mode 100644 index 000000000..d3c1c54aa --- /dev/null +++ b/tests/src/org/aspectj/systemtest/xlint/XLintTests.java @@ -0,0 +1,104 @@ +/* ******************************************************************* + * Copyright (c) 2004 IBM Corporation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Common Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * ******************************************************************/ +package org.aspectj.systemtest.xlint; + +import java.io.File; +import junit.framework.Test; +import org.aspectj.testing.XMLBasedAjcTestCase; + +public class XLintTests extends org.aspectj.testing.XMLBasedAjcTestCase { + + public static Test suite() { + return XMLBasedAjcTestCase.loadSuite(XLintTests.class); + } + + protected File getSpecFile() { + return new File("../tests/src/org/aspectj/systemtest/xlint/xlint.xml"); + } + + + public void test001(){ + runTest("options -Xlint args()"); + } + + public void test002(){ + runTest("options declare field on bad type"); + } + + public void test003(){ + runTest("options declare method on bad type"); + } + + public void test004(){ + runTest("options -Xlint declare parent"); + } + + public void test005(){ + runTest("options -Xlint target()"); + } + + public void test006(){ + runTest("options -Xlint this()"); + } + + public void test007(){ + runTest("options negative -Xlint args()"); + } + + public void test008(){ + runTest("options negative -Xlint declare parent"); + } + + public void test009(){ + runTest("options negative -Xlint target()"); + } + + public void test010(){ + runTest("options negative -Xlint this()"); + } + + public void test011(){ + runTest("unmatched type name in a declare parents should result in a warning in -Xlint mode"); + } + + public void test012(){ + runTest("privileged access to code outside the control of the compiler"); + } + + public void test013(){ + runTest("Unexpected Xlint:unresolvableMember warning with withincode"); + } + + public void test014(){ + runTest("valid XLintWarningTest file, default level of warning"); + } + + public void test015(){ + runTest("XLint:ignore suppresses XLint warnings"); + } + + public void test016(){ + runTest("XLint:error promotes XLint warnings to error"); + } + + public void test017(){ + runTest("alias getCause for getWrappedThrowable in SoftException"); + } + + public void test018(){ + runTest("XLint warning for call PCD's using subtype of defining type"); + } + + public void test019(){ + runTest("XLint warning for call PCD's using subtype of defining type (-1.3 -Xlint:ignore)"); + } + +} + diff --git a/tests/src/org/aspectj/systemtest/xlint/xlint-tests.xml b/tests/src/org/aspectj/systemtest/xlint/xlint-tests.xml new file mode 100644 index 000000000..150aa984a --- /dev/null +++ b/tests/src/org/aspectj/systemtest/xlint/xlint-tests.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/xlint/xlint.xml b/tests/src/org/aspectj/systemtest/xlint/xlint.xml new file mode 100644 index 000000000..efe2a0014 --- /dev/null +++ b/tests/src/org/aspectj/systemtest/xlint/xlint.xml @@ -0,0 +1,10 @@ + +]> + + + + +&tests; + + \ No newline at end of file -- 2.39.5