<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="java5-testsrc"/>
<classpathentry sourcepath="JRE_SRC" kind="var" path="JRE_LIB"/>
<classpathentry kind="src" path="/bridge"/>
<classpathentry kind="src" path="/weaver"/>
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Matthew Webster - initial implementation
+ *******************************************************************************/
+import junit.framework.*;
+import junit.framework.Test;
+
+public class Eajc515ModuleTests extends TestCase {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(Eajc515ModuleTests.class.getName());
+ suite.addTest(org.aspectj.tools.ajc.Ajc5Tests.suite());
+ return suite;
+ }
+
+ public Eajc515ModuleTests(String name) { super(name); }
+
+}
--- /dev/null
+/********************************************************************
+ * Copyright (c) 2006 Contributors. All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution and is available at
+ * http://eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: IBM Corporation - initial API and implementation
+ * Helen Hawkins - initital version
+ * Matthew Webster - moved tests
+ *******************************************************************/
+package org.aspectj.tools.ajc;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.aspectj.org.eclipse.jdt.core.dom.AST;
+import org.aspectj.org.eclipse.jdt.core.dom.AjAST;
+import org.aspectj.org.eclipse.jdt.core.dom.AjTypeDeclaration;
+import org.aspectj.org.eclipse.jdt.core.dom.AspectDeclaration;
+import org.aspectj.org.eclipse.jdt.core.dom.ChildListPropertyDescriptor;
+import org.aspectj.org.eclipse.jdt.core.dom.ChildPropertyDescriptor;
+import org.aspectj.org.eclipse.jdt.core.dom.DeclareParentsDeclaration;
+import org.aspectj.org.eclipse.jdt.core.dom.DefaultTypePattern;
+import org.aspectj.org.eclipse.jdt.core.dom.PerTypeWithin;
+import org.aspectj.org.eclipse.jdt.core.dom.SimplePropertyDescriptor;
+import org.aspectj.org.eclipse.jdt.core.dom.TypePattern;
+
+
+public class AjAST5Test extends AjASTTestCase {
+
+ public void testInternalAspectDeclaration() {
+ AjAST ajast = createAjAST();
+ AspectDeclaration d = ajast.newAspectDeclaration();
+ List props = AspectDeclaration.propertyDescriptors(AST.JLS3);
+ for (Iterator iter = props.iterator(); iter.hasNext();) {
+ Object o = iter.next();
+ if (o instanceof ChildPropertyDescriptor) {
+ ChildPropertyDescriptor element = (ChildPropertyDescriptor)o;
+ if (element.getId().equals("perClause")) {
+ assertNull("AspectDeclaration's " + element.getId() + " property" +
+ "should be null since we haven't set it yet",
+ d.getStructuralProperty(element));
+ }
+ } else if (o instanceof SimplePropertyDescriptor) {
+ SimplePropertyDescriptor element = (SimplePropertyDescriptor)o;
+ assertNotNull("AspectDeclaration's " + element.getId() + " property" +
+ "should not be null since it is a boolean",
+ d.getStructuralProperty(element));
+ }
+ }
+ for (Iterator iter = props.iterator(); iter.hasNext();) {
+ Object o = iter.next();
+ if (o instanceof ChildPropertyDescriptor) {
+ ChildPropertyDescriptor element = (ChildPropertyDescriptor) o;
+ if (element.getId().equals("perClause")) {
+ PerTypeWithin ptw = ajast.newPerTypeWithin();
+ d.setStructuralProperty(element,ptw);
+ assertEquals("AspectDeclaration's perClause property should" +
+ " now be a perTypeWithin",ptw,d.getStructuralProperty(element));
+ } else if (element.getId().equals("javadoc")) {
+ // do nothing since makes no sense to have javadoc
+ }
+ } else if (o instanceof SimplePropertyDescriptor) {
+ SimplePropertyDescriptor element = (SimplePropertyDescriptor)o;
+ if (element.getId().equals("privileged")) {
+ Boolean b = new Boolean(true);
+ d.setStructuralProperty(element,b);
+ assertEquals("AspectDeclaration's isPrivileged property should" +
+ " now be a boolean",b,d.getStructuralProperty(element));
+ }
+ }
+ }
+ }
+
+ public void testInternalAjTypeDeclaration() {
+ AjAST ajast = createAjAST();
+ AjTypeDeclaration d = ajast.newAjTypeDeclaration();
+ List props = AjTypeDeclaration.propertyDescriptors(AST.JLS3);
+ for (Iterator iter = props.iterator(); iter.hasNext();) {
+ Object o = iter.next();
+ if (o instanceof SimplePropertyDescriptor) {
+ SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
+ if (element.getId().equals("aspect")) {
+ assertNotNull("AjTypeDeclaration's " + element.getId() + " property" +
+ " should not be null since it is a boolean",
+ d.getStructuralProperty(element));
+ }
+ }
+ }
+ for (Iterator iter = props.iterator(); iter.hasNext();) {
+ Object o = iter.next();
+ if (o instanceof SimplePropertyDescriptor) {
+ SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
+ if (element.getId().equals("aspect")) {
+ Boolean b = new Boolean(true);
+ d.setStructuralProperty(element,b);
+ assertEquals("AjTypeDeclaration's aspect property should" +
+ " now be a SignaturePattern",b,d.getStructuralProperty(element));
+ }
+ }
+ }
+ }
+
+ public void testInternalDeclareParentsDeclaration() {
+ AjAST ajast = createAjAST();
+ DeclareParentsDeclaration d = ajast.newDeclareParentsDeclaration();
+ List props = DeclareParentsDeclaration.propertyDescriptors(AST.JLS3);
+ for (Iterator iter = props.iterator(); iter.hasNext();) {
+ Object o = iter.next();
+ if (o instanceof ChildPropertyDescriptor) {
+ ChildPropertyDescriptor element = (ChildPropertyDescriptor)o;
+ assertNull("DeclareParentsDeclaration's " + element.getId() + " property" +
+ "should be null since we haven't set it yet",
+ d.getStructuralProperty(element));
+ } else if (o instanceof ChildListPropertyDescriptor) {
+ ChildListPropertyDescriptor element = (ChildListPropertyDescriptor)o;
+ assertNotNull("DeclareParentsDeclaration's " + element.getId() + " property" +
+ "should not be null since it is a list",
+ d.getStructuralProperty(element));
+ assertEquals("should only be able to put TypePattern's into the list",
+ TypePattern.class,element.getElementType());
+ } else if (o instanceof SimplePropertyDescriptor) {
+ SimplePropertyDescriptor element = (SimplePropertyDescriptor)o;
+ assertNotNull("DeclareParentsDeclaration's " + element.getId() + " property" +
+ "should not be null since it is a boolean",
+ d.getStructuralProperty(element));
+ } else {
+ fail("unknown PropertyDescriptor associated with DeclareParentsDeclaration: " + o);
+ }
+ }
+ for (Iterator iter = props.iterator(); iter.hasNext();) {
+ Object o = iter.next();
+ if (o instanceof ChildPropertyDescriptor) {
+ ChildPropertyDescriptor element = (ChildPropertyDescriptor) o;
+ if (element.getId().equals("childTypePattern")) {
+ DefaultTypePattern dtp = ajast.newDefaultTypePattern();
+ d.setStructuralProperty(element,dtp);
+ assertEquals("DeclareParentsDeclaration's typePattern property should" +
+ " now be a DefaultTypePattern",dtp,d.getStructuralProperty(element));
+ } else if (element.getId().equals("javadoc")) {
+ // do nothing since makes no sense to have javadoc
+ } else {
+ fail("unknown property for DeclareParentsDeclaration");
+ }
+ } else if (o instanceof SimplePropertyDescriptor) {
+ SimplePropertyDescriptor element = (SimplePropertyDescriptor)o;
+ if (element.getId().equals("isExtends")) {
+ Boolean b = new Boolean(true);
+ d.setStructuralProperty(element,b);
+ assertEquals("DeclareParentsDeclaration's isExtends property should" +
+ " now be a boolean",b,d.getStructuralProperty(element));
+ }
+ }
+ }
+ }
+
+}
--- /dev/null
+/* *******************************************************************
+ * Copyright (c) 2005 Contributors.
+ * All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution and is available at
+ * http://eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Matthew Webster initial implementation
+ * ******************************************************************/
+package org.aspectj.tools.ajc;
+
+import org.aspectj.testing.util.TestUtil;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class Ajc5Tests extends TestCase {
+ public static String aspectjrtClasspath() {
+ return TestUtil.aspectjrtPath().getPath();
+ }
+ public static Test suite() {
+ TestSuite suite = new TestSuite(Ajc5Tests.class.getName());
+ suite.addTestSuite(AjAST5Test.class);
+ return suite;
+ }
+
+}
// default package
+import org.aspectj.testing.util.TestUtil;
+
import junit.framework.*;
-import junit.framework.Test;
public class EajcModuleTests extends TestCase {
suite.addTest(org.aspectj.ajdt.internal.compiler.batch.AjdtBatchTests.suite());
suite.addTest(org.aspectj.ajdt.internal.core.builder.AjdtBuilderTests.suite());
suite.addTest(org.aspectj.tools.ajc.AjcTests.suite());
+
+ /* FIXME maw move these Java 5 dependent tests to a separate project */
+ if (TestUtil.is15VMOrGreater()) {
+ TestUtil.loadTestsReflectively(suite, "Eajc515ModuleTests", true);
+ } else {
+ suite.addTest(TestUtil.testNamed("Eajc515ModuleTests require 1.5"));
+ }
return suite;
}
*******************************************************************/
package org.aspectj.tools.ajc;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
-import junit.framework.TestCase;
-
import org.aspectj.org.eclipse.jdt.core.dom.AST;
import org.aspectj.org.eclipse.jdt.core.dom.ASTNode;
-import org.aspectj.org.eclipse.jdt.core.dom.ASTParser;
import org.aspectj.org.eclipse.jdt.core.dom.AfterAdviceDeclaration;
import org.aspectj.org.eclipse.jdt.core.dom.AfterReturningAdviceDeclaration;
import org.aspectj.org.eclipse.jdt.core.dom.AfterThrowingAdviceDeclaration;
import org.aspectj.org.eclipse.jdt.core.dom.CflowPointcut;
import org.aspectj.org.eclipse.jdt.core.dom.ChildListPropertyDescriptor;
import org.aspectj.org.eclipse.jdt.core.dom.ChildPropertyDescriptor;
-import org.aspectj.org.eclipse.jdt.core.dom.CompilationUnit;
import org.aspectj.org.eclipse.jdt.core.dom.DeclareAtConstructorDeclaration;
import org.aspectj.org.eclipse.jdt.core.dom.DeclareAtFieldDeclaration;
import org.aspectj.org.eclipse.jdt.core.dom.DeclareAtMethodDeclaration;
* implementation of the accept0() method which is tested
* in ASTVisitorTest.
*/
-public class AjASTTest extends TestCase {
+public class AjASTTest extends AjASTTestCase {
// -------------- DefaultPointcut tests ---------------
copy.isPrivileged());
}
- public void testInternalAspectDeclaration() {
- AjAST ajast = createAjAST();
- AspectDeclaration d = ajast.newAspectDeclaration();
- List props = AspectDeclaration.propertyDescriptors(AST.JLS3);
- for (Iterator iter = props.iterator(); iter.hasNext();) {
- Object o = iter.next();
- if (o instanceof ChildPropertyDescriptor) {
- ChildPropertyDescriptor element = (ChildPropertyDescriptor)o;
- if (element.getId().equals("perClause")) {
- assertNull("AspectDeclaration's " + element.getId() + " property" +
- "should be null since we haven't set it yet",
- d.getStructuralProperty(element));
- }
- } else if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor)o;
- assertNotNull("AspectDeclaration's " + element.getId() + " property" +
- "should not be null since it is a boolean",
- d.getStructuralProperty(element));
- }
- }
- for (Iterator iter = props.iterator(); iter.hasNext();) {
- Object o = iter.next();
- if (o instanceof ChildPropertyDescriptor) {
- ChildPropertyDescriptor element = (ChildPropertyDescriptor) o;
- if (element.getId().equals("perClause")) {
- PerTypeWithin ptw = ajast.newPerTypeWithin();
- d.setStructuralProperty(element,ptw);
- assertEquals("AspectDeclaration's perClause property should" +
- " now be a perTypeWithin",ptw,d.getStructuralProperty(element));
- } else if (element.getId().equals("javadoc")) {
- // do nothing since makes no sense to have javadoc
- }
- } else if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor)o;
- if (element.getId().equals("privileged")) {
- Boolean b = new Boolean(true);
- d.setStructuralProperty(element,b);
- assertEquals("AspectDeclaration's isPrivileged property should" +
- " now be a boolean",b,d.getStructuralProperty(element));
- }
- }
- }
- }
-
/**
* AsepctDeclarations's have a perClause property - test the getting
assertTrue("the AjTypeDeclaration clone should be an aspect",
copy.isAspect());
}
-
- public void testInternalAjTypeDeclaration() {
- AjAST ajast = createAjAST();
- AjTypeDeclaration d = ajast.newAjTypeDeclaration();
- List props = AjTypeDeclaration.propertyDescriptors(AST.JLS3);
- for (Iterator iter = props.iterator(); iter.hasNext();) {
- Object o = iter.next();
- if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
- if (element.getId().equals("aspect")) {
- assertNotNull("AjTypeDeclaration's " + element.getId() + " property" +
- " should not be null since it is a boolean",
- d.getStructuralProperty(element));
- }
- }
- }
- for (Iterator iter = props.iterator(); iter.hasNext();) {
- Object o = iter.next();
- if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor) o;
- if (element.getId().equals("aspect")) {
- Boolean b = new Boolean(true);
- d.setStructuralProperty(element,b);
- assertEquals("AjTypeDeclaration's aspect property should" +
- " now be a SignaturePattern",b,d.getStructuralProperty(element));
- }
- }
- }
- }
// test for bug 125809 - make sure the property descriptors
// associated with the AspectDeclaration aren't consequently
copy.isExtends());
}
- public void testInternalDeclareParentsDeclaration() {
- AjAST ajast = createAjAST();
- DeclareParentsDeclaration d = ajast.newDeclareParentsDeclaration();
- List props = DeclareParentsDeclaration.propertyDescriptors(AST.JLS3);
- for (Iterator iter = props.iterator(); iter.hasNext();) {
- Object o = iter.next();
- if (o instanceof ChildPropertyDescriptor) {
- ChildPropertyDescriptor element = (ChildPropertyDescriptor)o;
- assertNull("DeclareParentsDeclaration's " + element.getId() + " property" +
- "should be null since we haven't set it yet",
- d.getStructuralProperty(element));
- } else if (o instanceof ChildListPropertyDescriptor) {
- ChildListPropertyDescriptor element = (ChildListPropertyDescriptor)o;
- assertNotNull("DeclareParentsDeclaration's " + element.getId() + " property" +
- "should not be null since it is a list",
- d.getStructuralProperty(element));
- assertEquals("should only be able to put TypePattern's into the list",
- TypePattern.class,element.getElementType());
- } else if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor)o;
- assertNotNull("DeclareParentsDeclaration's " + element.getId() + " property" +
- "should not be null since it is a boolean",
- d.getStructuralProperty(element));
- } else {
- fail("unknown PropertyDescriptor associated with DeclareParentsDeclaration: " + o);
- }
- }
- for (Iterator iter = props.iterator(); iter.hasNext();) {
- Object o = iter.next();
- if (o instanceof ChildPropertyDescriptor) {
- ChildPropertyDescriptor element = (ChildPropertyDescriptor) o;
- if (element.getId().equals("childTypePattern")) {
- DefaultTypePattern dtp = ajast.newDefaultTypePattern();
- d.setStructuralProperty(element,dtp);
- assertEquals("DeclareParentsDeclaration's typePattern property should" +
- " now be a DefaultTypePattern",dtp,d.getStructuralProperty(element));
- } else if (element.getId().equals("javadoc")) {
- // do nothing since makes no sense to have javadoc
- } else {
- fail("unknown property for DeclareParentsDeclaration");
- }
- } else if (o instanceof SimplePropertyDescriptor) {
- SimplePropertyDescriptor element = (SimplePropertyDescriptor)o;
- if (element.getId().equals("isExtends")) {
- Boolean b = new Boolean(true);
- d.setStructuralProperty(element,b);
- assertEquals("DeclareParentsDeclaration's isExtends property should" +
- " now be a boolean",b,d.getStructuralProperty(element));
- }
- }
- }
- }
-
// -------------- DeclarePrecedenceDeclaration tests ---------------
public void testNewDeclarePrecedenceDeclaration() {
checkJLS3("aspect A{}aspect B{declare precedence: B,A;}",
19,23);
}
-
-
-
- // --------- Helper methods ----------
-
- private AjAST createAjAST() {
- return createAjAST(AST.JLS3);
- }
-
- private AjAST createAjAST(int astlevel) {
- if (astlevel != AST.JLS2 && astlevel != AST.JLS3) {
- fail("need to pass AST.JLS2 or AST.JLS3 as an argument");
- }
- String source = "";
- ASTParser parser = ASTParser.newParser(astlevel);
- parser.setSource(source.toCharArray());
- parser.setCompilerOptions(new HashMap());
- CompilationUnit cu = (CompilationUnit) parser.createAST(null);
- AST ast = cu.getAST();
- assertTrue("the ast should be an instance of AjAST",ast instanceof AjAST);
- return (AjAST)ast;
- }
-
- private void checkJLS3(String source, int start, int length) {
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setCompilerOptions(new HashMap());
- parser.setSource(source.toCharArray());
- CompilationUnit cu2 = (CompilationUnit) parser.createAST(null);
- SourceRangeVisitor visitor = new SourceRangeVisitor();
- cu2.accept(visitor);
- int s = visitor.getStart();
- int l = visitor.getLength();
- assertTrue("Expected start position: "+ start + ", Actual:" + s,
- start == s);
- assertTrue("Expected length: "+ length + ", Actual:" + l,
- length == l);
- }
}
class SourceRangeVisitor extends AjASTVisitor {
--- /dev/null
+/********************************************************************
+ * Copyright (c) 2006 Contributors. All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution and is available at
+ * http://eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: Helen Hawkins - initial implementation
+ * Matthew Webster - initial implementation
+ *******************************************************************/
+package org.aspectj.tools.ajc;
+
+import java.util.HashMap;
+
+import junit.framework.TestCase;
+
+import org.aspectj.org.eclipse.jdt.core.dom.AST;
+import org.aspectj.org.eclipse.jdt.core.dom.ASTParser;
+import org.aspectj.org.eclipse.jdt.core.dom.AjAST;
+import org.aspectj.org.eclipse.jdt.core.dom.CompilationUnit;
+
+public abstract class AjASTTestCase extends TestCase {
+
+ protected AjAST createAjAST() {
+ return createAjAST(AST.JLS3);
+ }
+
+ protected AjAST createAjAST(int astlevel) {
+ if (astlevel != AST.JLS2 && astlevel != AST.JLS3) {
+ fail("need to pass AST.JLS2 or AST.JLS3 as an argument");
+ }
+ String source = "";
+ ASTParser parser = ASTParser.newParser(astlevel);
+ parser.setSource(source.toCharArray());
+ parser.setCompilerOptions(new HashMap());
+ CompilationUnit cu = (CompilationUnit) parser.createAST(null);
+ AST ast = cu.getAST();
+ assertTrue("the ast should be an instance of AjAST",ast instanceof AjAST);
+ return (AjAST)ast;
+ }
+
+ protected void checkJLS3(String source, int start, int length) {
+ ASTParser parser = ASTParser.newParser(AST.JLS3);
+ parser.setCompilerOptions(new HashMap());
+ parser.setSource(source.toCharArray());
+ CompilationUnit cu2 = (CompilationUnit) parser.createAST(null);
+ SourceRangeVisitor visitor = new SourceRangeVisitor();
+ cu2.accept(visitor);
+ int s = visitor.getStart();
+ int l = visitor.getLength();
+ assertTrue("Expected start position: "+ start + ", Actual:" + s,
+ start == s);
+ assertTrue("Expected length: "+ length + ", Actual:" + l,
+ length == l);
+ }
+
+}