diff options
author | aclement <aclement> | 2008-09-17 18:36:12 +0000 |
---|---|---|
committer | aclement <aclement> | 2008-09-17 18:36:12 +0000 |
commit | 8ed07c9e61d00d788e7d05d6c90bbeb3d378dcff (patch) | |
tree | 277edc2048a8453eba8d41af3b88d6122d7f4c1a | |
parent | 8e14f28e1ee8658507c2fa7caf2f458a1adac436 (diff) | |
download | aspectj-8ed07c9e61d00d788e7d05d6c90bbeb3d378dcff.tar.gz aspectj-8ed07c9e61d00d788e7d05d6c90bbeb3d378dcff.zip |
jdt like handle fixes: anonymous inner classes
5 files changed, 468 insertions, 724 deletions
diff --git a/tests/model/expected/pr77269_1.txt b/tests/model/expected/pr77269_1.txt index a5ef46b3c..71c826f64 100644 --- a/tests/model/expected/pr77269_1.txt +++ b/tests/model/expected/pr77269_1.txt @@ -7,15 +7,15 @@ testMethod() [method] TEST_SANDBOX\pack\pr77269.aj:4: new Runnable() {..} [class] TEST_SANDBOX\pack\pr77269.aj:5: run() [method] TEST_SANDBOX\pack\pr77269.aj:6: - 1$C [class] TEST_SANDBOX\pack\pr77269.aj:9: + C [class] TEST_SANDBOX\pack\pr77269.aj:9: m() [method] TEST_SANDBOX\pack\pr77269.aj:10: A [aspect] TEST_SANDBOX\pack\pr77269.aj:17: p() [pointcut] TEST_SANDBOX\pack\pr77269.aj:19: before(): p.. [advice] TEST_SANDBOX\pack\pr77269.aj:21: === END OF MODEL REPORT ========= === RELATIONSHIPS REPORT ========= After a batch build -(targets=1) <pack*pr77269.aj}A&before (advises) <pack*pr77269.aj[Test~testMethod[new Runnable~run (targets=1) <pack*pr77269.aj[Test~testMethod[new Runnable~run (advised by) <pack*pr77269.aj}A&before +(targets=1) <pack*pr77269.aj}A&before (advises) <pack*pr77269.aj[Test~testMethod[new Runnable~run === END OF RELATIONSHIPS REPORT == === Properties of the model and relationships map ===== method=3 diff --git a/tests/model/expected/pr77269_2.txt b/tests/model/expected/pr77269_2.txt index 99bf61cd7..87cc37b69 100644 --- a/tests/model/expected/pr77269_2.txt +++ b/tests/model/expected/pr77269_2.txt @@ -6,15 +6,15 @@ testMethod() [method] TEST_SANDBOX\pr77269b.aj:3: new Runnable() {..} [class] TEST_SANDBOX\pr77269b.aj:4: run() [method] TEST_SANDBOX\pr77269b.aj:5: - 1$C [class] TEST_SANDBOX\pr77269b.aj:8: + C [class] TEST_SANDBOX\pr77269b.aj:8: m() [method] TEST_SANDBOX\pr77269b.aj:9: A [aspect] TEST_SANDBOX\pr77269b.aj:16: p() [pointcut] TEST_SANDBOX\pr77269b.aj:18: before(): p.. [advice] TEST_SANDBOX\pr77269b.aj:20: === END OF MODEL REPORT ========= === RELATIONSHIPS REPORT ========= After a batch build -(targets=1) *pr77269b.aj[Test~testMethod[1$C~m (advised by) *pr77269b.aj}A&before -(targets=1) *pr77269b.aj}A&before (advises) *pr77269b.aj[Test~testMethod[1$C~m +(targets=1) *pr77269b.aj}A&before (advises) *pr77269b.aj[Test~testMethod[C~m +(targets=1) *pr77269b.aj[Test~testMethod[C~m (advised by) *pr77269b.aj}A&before === END OF RELATIONSHIPS REPORT == === Properties of the model and relationships map ===== method=3 diff --git a/tests/multiIncremental/AdviceHandles/base/src/Handles.aj b/tests/multiIncremental/AdviceHandles/base/src/Handles.aj index ffb9aef42..2dfa89908 100644 --- a/tests/multiIncremental/AdviceHandles/base/src/Handles.aj +++ b/tests/multiIncremental/AdviceHandles/base/src/Handles.aj @@ -1,45 +1,60 @@ package spacewar; -//=Spacewar Example/src<spacewar*Handles.aj}Handles +//=AdviceHandles/src<spacewar*Handles.aj}Handles public aspect Handles { - // =Spacewar Example/src<spacewar*Handles.aj}Handles&before + // =AdviceHandles/src<spacewar*Handles.aj}Handles&before before() : execution(* *..*()) { } - // =Spacewar Example/src<spacewar*Handles.aj}Handles&before!2 + // =AdviceHandles/src<spacewar*Handles.aj}Handles&before!2 before() : execution(* *..*()) { } - // =Spacewar Example/src<spacewar*Handles.aj}Handles&before&I + // =AdviceHandles/src<spacewar*Handles.aj}Handles&before&I before(int x) : execution(* *..*(int)) && args(x) { } - // =Spacewar Example/src<spacewar*Handles.aj}Handles&before&I!2 + // =AdviceHandles/src<spacewar*Handles.aj}Handles&before&I!2 before(int x) : execution(* *..*(int)) && args(x) { } - // =Spacewar Example/src<spacewar*Handles.aj}Handles&after + // =AdviceHandles/src<spacewar*Handles.aj}Handles&after after() : execution(* *..*()) { } - // =Spacewar Example/src<spacewar*Handles.aj}Handles&afterReturning + // =AdviceHandles/src<spacewar*Handles.aj}Handles&afterReturning after() returning() : execution(* *..*()) { } - // =Spacewar Example/src<spacewar*Handles.aj}Handles&afterThrowing + // =AdviceHandles/src<spacewar*Handles.aj}Handles&afterThrowing after() throwing(): execution(* *..*()) { } - // =Spacewar Example/src<spacewar*Handles.aj}Handles&afterThrowing&I + // =AdviceHandles/src<spacewar*Handles.aj}Handles&afterThrowing&I after(int x) throwing(): execution(* *..*(int)) && args(x) { } + int x() { + // =AdviceHandles/src<spacewar*Handles.aj}Handles~x[NamedClass + class NamedClass { + void doIt() { + } + } + return 0; + } + + interface I {} + public void foo() { + new I() {}; + new I() {}; + } + } diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java index 6bf7a87f9..11c069743 100644 --- a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java +++ b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java @@ -33,35 +33,27 @@ import org.aspectj.asm.IRelationshipMap; import org.aspectj.asm.internal.JDTLikeHandleProvider; import org.aspectj.asm.internal.Relationship; import org.aspectj.bridge.IMessage; -import org.aspectj.bridge.SourceLocation; import org.aspectj.tools.ajc.Ajc; import org.aspectj.util.FileUtil; /** - * The superclass knows all about talking through Ajde to the compiler. The - * superclass isn't in charge of knowing how to simulate overlays for - * incremental builds, that is in here. As is the ability to generate valid - * build configs based on a directory structure. To support this we just need - * access to a sandbox directory - this sandbox is managed by the superclass (it - * only assumes all builds occur in <sandboxDir>/<projectName>/ ) + * The superclass knows all about talking through Ajde to the compiler. The superclass isn't in charge of knowing how to simulate + * overlays for incremental builds, that is in here. As is the ability to generate valid build configs based on a directory + * structure. To support this we just need access to a sandbox directory - this sandbox is managed by the superclass (it only + * assumes all builds occur in <sandboxDir>/<projectName>/ ) * - * The idea is you can initialize multiple projects in the sandbox and they can - * all be built independently, hopefully exploiting incremental compilation. - * Between builds you can alter the contents of a project using the alter() - * method that overlays some set of new files onto the current set (adding new - * files/changing existing ones) - you can then drive a new build and check it - * behaves as expected. + * The idea is you can initialize multiple projects in the sandbox and they can all be built independently, hopefully exploiting + * incremental compilation. Between builds you can alter the contents of a project using the alter() method that overlays some set + * of new files onto the current set (adding new files/changing existing ones) - you can then drive a new build and check it behaves + * as expected. */ -public class MultiProjectIncrementalTests extends - AbstractMultiProjectIncrementalAjdeInteractionTestbed { +public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementalAjdeInteractionTestbed { /* - * A.aj package pack; public aspect A { pointcut p() : call( C.method - * before() : p() { // line 7 } } + * A.aj package pack; public aspect A { pointcut p() : call( C.method before() : p() { // line 7 } } * - * C.java package pack; public class C { public void method1() { method2(); - * // line 6 } public void method2() { } public void method3() { method2(); - * // line 13 } + * C.java package pack; public class C { public void method1() { method2(); // line 6 } public void method2() { } public void + * method3() { method2(); // line 13 } * * } */ @@ -70,80 +62,56 @@ public class MultiProjectIncrementalTests extends // see pr148027 AsmHierarchyBuilder.shouldAddUsesPointcut=false; initialiseProject("P4"); build("P4"); - Ajc - .dumpAJDEStructureModel("after full build where advice is applying"); + Ajc.dumpAJDEStructureModel("after full build where advice is applying"); // should be 4 relationship entries // In inc1 the first advised line is 'commented out' alter("P4", "inc1"); build("P4"); checkWasntFullBuild(); - Ajc - .dumpAJDEStructureModel("after inc build where first advised line is gone"); + Ajc.dumpAJDEStructureModel("after inc build where first advised line is gone"); // should now be 2 relationship entries // This will be the line 6 entry in C.java - IProgramElement codeElement = findCode(checkForNode("pack", "C", - true)); + IProgramElement codeElement = findCode(checkForNode("pack", "C", true)); // This will be the line 7 entry in A.java IProgramElement advice = findAdvice(checkForNode("pack", "A", true)); - IRelationshipMap asmRelMap = AsmManager.getDefault() - .getRelationshipMap(); - assertEquals( - "There should be two relationships in the relationship map", - 2, asmRelMap.getEntries().size()); + IRelationshipMap asmRelMap = AsmManager.getDefault().getRelationshipMap(); + assertEquals("There should be two relationships in the relationship map", 2, asmRelMap.getEntries().size()); - for (Iterator iter = asmRelMap.getEntries().iterator(); iter - .hasNext();) { + for (Iterator iter = asmRelMap.getEntries().iterator(); iter.hasNext();) { String sourceOfRelationship = (String) iter.next(); - IProgramElement ipe = AsmManager.getDefault().getHierarchy() - .findElementForHandle(sourceOfRelationship); - assertNotNull("expected to find IProgramElement with handle " - + sourceOfRelationship + " but didn't", ipe); + IProgramElement ipe = AsmManager.getDefault().getHierarchy().findElementForHandle(sourceOfRelationship); + assertNotNull("expected to find IProgramElement with handle " + sourceOfRelationship + " but didn't", ipe); if (ipe.getKind().equals(IProgramElement.Kind.ADVICE)) { - assertEquals("expected source of relationship to be " - + advice.toString() + " but found " - + ipe.toString(), advice, ipe); + assertEquals("expected source of relationship to be " + advice.toString() + " but found " + ipe.toString(), + advice, ipe); } else if (ipe.getKind().equals(IProgramElement.Kind.CODE)) { - assertEquals("expected source of relationship to be " - + codeElement.toString() + " but found " - + ipe.toString(), codeElement, ipe); + assertEquals( + "expected source of relationship to be " + codeElement.toString() + " but found " + ipe.toString(), + codeElement, ipe); } else { - fail("found unexpected relationship source " + ipe - + " with kind " + ipe.getKind() - + " when looking up handle: " - + sourceOfRelationship); + fail("found unexpected relationship source " + ipe + " with kind " + ipe.getKind() + + " when looking up handle: " + sourceOfRelationship); } List relationships = asmRelMap.get(ipe); - assertNotNull("expected " + ipe.getName() + " to have some " - + "relationships", relationships); - for (Iterator iterator = relationships.iterator(); iterator - .hasNext();) { + assertNotNull("expected " + ipe.getName() + " to have some " + "relationships", relationships); + for (Iterator iterator = relationships.iterator(); iterator.hasNext();) { Relationship rel = (Relationship) iterator.next(); List targets = rel.getTargets(); - for (Iterator iterator2 = targets.iterator(); iterator2 - .hasNext();) { + for (Iterator iterator2 = targets.iterator(); iterator2.hasNext();) { String t = (String) iterator2.next(); - IProgramElement link = AsmManager.getDefault() - .getHierarchy().findElementForHandle(t); + IProgramElement link = AsmManager.getDefault().getHierarchy().findElementForHandle(t); if (ipe.getKind().equals(IProgramElement.Kind.ADVICE)) { - assertEquals( - "expected target of relationship to be " - + codeElement.toString() - + " but found " + link.toString(), - codeElement, link); - } else if (ipe.getKind().equals( - IProgramElement.Kind.CODE)) { - assertEquals( - "expected target of relationship to be " - + advice.toString() + " but found " - + link.toString(), advice, link); + assertEquals("expected target of relationship to be " + codeElement.toString() + " but found " + + link.toString(), codeElement, link); + } else if (ipe.getKind().equals(IProgramElement.Kind.CODE)) { + assertEquals("expected target of relationship to be " + advice.toString() + " but found " + + link.toString(), advice, link); } else { - fail("found unexpected relationship source " - + ipe.getName() + " with kind " - + ipe.getKind()); + fail("found unexpected relationship source " + ipe.getName() + " with kind " + ipe.getKind()); } } } @@ -160,21 +128,18 @@ public class MultiProjectIncrementalTests extends build("Annos"); checkWasFullBuild(); checkCompileWeaveCount("Annos", 4, 4); - assertEquals("Should be 3 relationships ", 3, AsmManager.getDefault() - .getRelationshipMap().getEntries().size()); + assertEquals("Should be 3 relationships ", 3, AsmManager.getDefault().getRelationshipMap().getEntries().size()); alter("Annos", "inc1"); // Comment out the annotation on Parent build("Annos"); checkWasntFullBuild(); - assertEquals("Should be no relationships ", 0, AsmManager.getDefault() - .getRelationshipMap().getEntries().size()); + assertEquals("Should be no relationships ", 0, AsmManager.getDefault().getRelationshipMap().getEntries().size()); checkCompileWeaveCount("Annos", 3, 3); alter("Annos", "inc2"); // Add the annotation back onto Parent build("Annos"); checkWasntFullBuild(); - assertEquals("Should be 3 relationships ", 3, AsmManager.getDefault() - .getRelationshipMap().getEntries().size()); + assertEquals("Should be 3 relationships ", 3, AsmManager.getDefault().getRelationshipMap().getEntries().size()); checkCompileWeaveCount("Annos", 3, 3); } @@ -186,61 +151,70 @@ public class MultiProjectIncrementalTests extends dumptree(AsmManager.getDefault().getHierarchy().getRoot(), 0); // incomplete } - + public void testAdviceHandlesAreJDTCompatible() { String p = "AdviceHandles"; initialiseProject(p); addSourceFolderForSourceFile(p, getProjectRelativePath(p, "src/Handles.aj"), "src"); build(p); IProgramElement root = AsmManager.getDefault().getHierarchy().getRoot(); - IProgramElement typeDecl = findElementAtLine(root,4); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles",typeDecl.getHandleIdentifier()); - - IProgramElement advice1 = findElementAtLine(root,7); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&before",advice1.getHandleIdentifier()); + IProgramElement typeDecl = findElementAtLine(root, 4); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles", typeDecl.getHandleIdentifier()); + + IProgramElement advice1 = findElementAtLine(root, 7); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&before", advice1.getHandleIdentifier()); + + IProgramElement advice2 = findElementAtLine(root, 11); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&before!2", advice2.getHandleIdentifier()); + + IProgramElement advice3 = findElementAtLine(root, 15); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&before&I", advice3.getHandleIdentifier()); - IProgramElement advice2 = findElementAtLine(root,11); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&before!2",advice2.getHandleIdentifier()); - - IProgramElement advice3 = findElementAtLine(root,15); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&before&I",advice3.getHandleIdentifier()); - - IProgramElement advice4 = findElementAtLine(root,20); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&before&I!2",advice4.getHandleIdentifier()); + IProgramElement advice4 = findElementAtLine(root, 20); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&before&I!2", advice4.getHandleIdentifier()); - IProgramElement advice5 = findElementAtLine(root,25); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&after",advice5.getHandleIdentifier()); + IProgramElement advice5 = findElementAtLine(root, 25); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&after", advice5.getHandleIdentifier()); - IProgramElement advice6 = findElementAtLine(root,30); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&afterReturning",advice6.getHandleIdentifier()); + IProgramElement advice6 = findElementAtLine(root, 30); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&afterReturning", advice6.getHandleIdentifier()); - IProgramElement advice7 = findElementAtLine(root,35); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&afterThrowing",advice7.getHandleIdentifier()); + IProgramElement advice7 = findElementAtLine(root, 35); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&afterThrowing", advice7.getHandleIdentifier()); - IProgramElement advice8 = findElementAtLine(root,40); - assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&afterThrowing&I",advice8.getHandleIdentifier()); + IProgramElement advice8 = findElementAtLine(root, 40); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles&afterThrowing&I", advice8.getHandleIdentifier()); + + IProgramElement namedInnerClass = findElementAtLine(root, 46); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles~x[NamedClass", namedInnerClass.getHandleIdentifier()); + + IProgramElement anonInner1 = findElementAtLine(root, 55); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles~foo[new I", anonInner1.getHandleIdentifier()); + + IProgramElement anonInner2 = findElementAtLine(root, 56); + assertEquals("=AdviceHandles/src<spacewar*Handles.aj}Handles~foo[new I!2", anonInner2.getHandleIdentifier()); } - + private IProgramElement findElementAtLine(IProgramElement whereToLook, int line) { if (whereToLook == null) { return null; } - if (whereToLook.getSourceLocation()!=null && whereToLook.getSourceLocation().getLine()==line) { + if (whereToLook.getSourceLocation() != null && whereToLook.getSourceLocation().getLine() == line) { return whereToLook; } List kids = whereToLook.getChildren(); for (Iterator iterator = kids.iterator(); iterator.hasNext();) { IProgramElement object = (IProgramElement) iterator.next(); - if (object.getSourceLocation()!=null && object.getSourceLocation().getLine()==line) { + if (object.getSourceLocation() != null && object.getSourceLocation().getLine() == line) { return object; } - IProgramElement gotSomething = findElementAtLine(object,line); - if (gotSomething!=null) { + IProgramElement gotSomething = findElementAtLine(object, line); + if (gotSomething != null) { return gotSomething; } } - return null; + return null; } public void testModelWithMultipleSourceFolders() { @@ -249,21 +223,15 @@ public class MultiProjectIncrementalTests extends // File sourceFolderTwo = getProjectRelativePath("MultiSource", "src2"); // File sourceFolderThree = getProjectRelativePath("MultiSource", // "src3"); - addSourceFolderForSourceFile("MultiSource", getProjectRelativePath( - "MultiSource", "src1/CodeOne.java"), "src1"); - addSourceFolderForSourceFile("MultiSource", getProjectRelativePath( - "MultiSource", "src2/CodeTwo.java"), "src2"); - addSourceFolderForSourceFile("MultiSource", getProjectRelativePath( - "MultiSource", "src3/pkg/CodeThree.java"), "src3"); + addSourceFolderForSourceFile("MultiSource", getProjectRelativePath("MultiSource", "src1/CodeOne.java"), "src1"); + addSourceFolderForSourceFile("MultiSource", getProjectRelativePath("MultiSource", "src2/CodeTwo.java"), "src2"); + addSourceFolderForSourceFile("MultiSource", getProjectRelativePath("MultiSource", "src3/pkg/CodeThree.java"), "src3"); build("MultiSource"); - IProgramElement srcOne = AsmManager.getDefault().getHierarchy() - .findElementForHandle("=MultiSource/src1"); - IProgramElement CodeOneClass = AsmManager.getDefault().getHierarchy() - .findElementForHandle("=MultiSource/src1{CodeOne.java[CodeOne"); - IProgramElement srcTwoPackage = AsmManager.getDefault().getHierarchy() - .findElementForHandle("=MultiSource/src2<pkg"); - IProgramElement srcThreePackage = AsmManager.getDefault() - .getHierarchy().findElementForHandle("=MultiSource/src3<pkg"); + IProgramElement srcOne = AsmManager.getDefault().getHierarchy().findElementForHandle("=MultiSource/src1"); + IProgramElement CodeOneClass = AsmManager.getDefault().getHierarchy().findElementForHandle( + "=MultiSource/src1{CodeOne.java[CodeOne"); + IProgramElement srcTwoPackage = AsmManager.getDefault().getHierarchy().findElementForHandle("=MultiSource/src2<pkg"); + IProgramElement srcThreePackage = AsmManager.getDefault().getHierarchy().findElementForHandle("=MultiSource/src3<pkg"); assertNotNull(srcOne); assertNotNull(CodeOneClass); assertNotNull(srcTwoPackage); @@ -283,9 +251,7 @@ public class MultiProjectIncrementalTests extends if (node.getSourceLocation() != null) loc = node.getSourceLocation().toString(); } - System.out.println(node + " [" - + (node == null ? "null" : node.getKind().toString()) + "] " - + loc); + System.out.println(node + " [" + (node == null ? "null" : node.getKind().toString()) + "] " + loc); if (node != null) { for (int i = 0; i < indent; i++) System.out.print(" "); @@ -326,30 +292,20 @@ public class MultiProjectIncrementalTests extends } /** - * Build a project containing a resource - then mark the resource - * readOnly(), then do an inc-compile, it will report an error about write - * access to the resource in the output folder being denied + * Build a project containing a resource - then mark the resource readOnly(), then do an inc-compile, it will report an error + * about write access to the resource in the output folder being denied */ /* - * public void testProblemCopyingResources_pr138171() { - * initialiseProject("PR138171"); + * public void testProblemCopyingResources_pr138171() { initialiseProject("PR138171"); * - * File f=getProjectRelativePath("PR138171","res.txt"); Map m = new - * HashMap(); m.put("res.txt",f); - * AjdeInteractionTestbed.MyProjectPropertiesAdapter - * .getInstance().setSourcePathResources(m); build("PR138171"); File f2 = - * getProjectOutputRelativePath("PR138171","res.txt"); boolean successful = - * f2.setReadOnly(); + * File f=getProjectRelativePath("PR138171","res.txt"); Map m = new HashMap(); m.put("res.txt",f); + * AjdeInteractionTestbed.MyProjectPropertiesAdapter .getInstance().setSourcePathResources(m); build("PR138171"); File f2 = + * getProjectOutputRelativePath("PR138171","res.txt"); boolean successful = f2.setReadOnly(); * - * alter("PR138171","inc1"); - * AjdeInteractionTestbed.MyProjectPropertiesAdapter - * .getInstance().setSourcePathResources(m); build("PR138171"); List msgs = - * MyTaskListManager.getErrorMessages(); - * assertTrue("there should be one message but there are " - * +(msgs==null?0:msgs.size())+":\n"+msgs,msgs!=null && msgs.size()==1); - * IMessage msg = (IMessage)msgs.get(0); String exp = - * "unable to copy resource to output folder: 'res.txt'"; - * assertTrue("Expected message to include this text [" + * alter("PR138171","inc1"); AjdeInteractionTestbed.MyProjectPropertiesAdapter .getInstance().setSourcePathResources(m); + * build("PR138171"); List msgs = MyTaskListManager.getErrorMessages(); assertTrue("there should be one message but there are " + * +(msgs==null?0:msgs.size())+":\n"+msgs,msgs!=null && msgs.size()==1); IMessage msg = (IMessage)msgs.get(0); String exp = + * "unable to copy resource to output folder: 'res.txt'"; assertTrue("Expected message to include this text [" * +exp+"] but it does not: "+msg,msg.toString().indexOf(exp)!=-1); } */ @@ -384,11 +340,8 @@ public class MultiProjectIncrementalTests extends // I don't think this test will have timing issues as the times should // be *RADICALLY* different // On my config, first build time is 2093ms and the second is 30ms - assertTrue( - "Should not take longer for the trivial incremental build! first=" - + timeTakenForFullBuildAndWeave + "ms second=" - + timeTakenForSimpleIncBuild + "ms", - timeTakenForSimpleIncBuild < timeTakenForFullBuildAndWeave); + assertTrue("Should not take longer for the trivial incremental build! first=" + timeTakenForFullBuildAndWeave + + "ms second=" + timeTakenForSimpleIncBuild + "ms", timeTakenForSimpleIncBuild < timeTakenForFullBuildAndWeave); } public void testBuildingTwoProjectsInTurns() { @@ -409,39 +362,33 @@ public class MultiProjectIncrementalTests extends build("pr240360"); checkWasFullBuild(); checkCompileWeaveCount("pr240360", 5, 4); - assertTrue( - "There should be an error:\n" + getErrorMessages("pr240360"), - !getErrorMessages("pr240360").isEmpty()); + assertTrue("There should be an error:\n" + getErrorMessages("pr240360"), !getErrorMessages("pr240360").isEmpty()); Set s = AsmManager.getDefault().getRelationshipMap().getEntries(); int relmapLength = s.size(); // Delete the erroneous type - String f = getWorkingDir().getAbsolutePath() + File.separatorChar - + "pr240360" + File.separatorChar + "src" + File.separatorChar - + "test" + File.separatorChar + "Error.java"; + String f = getWorkingDir().getAbsolutePath() + File.separatorChar + "pr240360" + File.separatorChar + "src" + + File.separatorChar + "test" + File.separatorChar + "Error.java"; (new File(f)).delete(); build("pr240360"); checkWasntFullBuild(); checkCompileWeaveCount("pr240360", 0, 0); - assertEquals(relmapLength, AsmManager.getDefault().getRelationshipMap() - .getEntries().size()); + assertEquals(relmapLength, AsmManager.getDefault().getRelationshipMap().getEntries().size()); // Readd the erroneous type alter("pr240360", "inc1"); build("pr240360"); checkWasntFullBuild(); checkCompileWeaveCount("pr240360", 1, 0); - assertEquals(relmapLength, AsmManager.getDefault().getRelationshipMap() - .getEntries().size()); + assertEquals(relmapLength, AsmManager.getDefault().getRelationshipMap().getEntries().size()); // Change the advice alter("pr240360", "inc2"); build("pr240360"); checkWasFullBuild(); checkCompileWeaveCount("pr240360", 6, 4); - assertEquals(relmapLength, AsmManager.getDefault().getRelationshipMap() - .getEntries().size()); + assertEquals(relmapLength, AsmManager.getDefault().getRelationshipMap().getEntries().size()); } @@ -451,9 +398,7 @@ public class MultiProjectIncrementalTests extends build("pr102733_1"); checkWasFullBuild(); checkCompileWeaveCount("pr102733_1", 1, 0); - assertTrue("There should be an error:\n" - + getErrorMessages("pr102733_1"), !getErrorMessages( - "pr102733_1").isEmpty()); + assertTrue("There should be an error:\n" + getErrorMessages("pr102733_1"), !getErrorMessages("pr102733_1").isEmpty()); build("pr102733_1"); // incremental checkCompileWeaveCount("pr102733_1", 0, 0); checkWasntFullBuild(); @@ -461,16 +406,12 @@ public class MultiProjectIncrementalTests extends build("pr102733_1"); checkWasntFullBuild(); checkCompileWeaveCount("pr102733_1", 1, 1); - assertTrue("There should be no errors:\n" - + getErrorMessages("pr102733_1"), - getErrorMessages("pr102733_1").isEmpty()); + assertTrue("There should be no errors:\n" + getErrorMessages("pr102733_1"), getErrorMessages("pr102733_1").isEmpty()); alter("pr102733_1", "inc2"); // break it again build("pr102733_1"); checkWasntFullBuild(); checkCompileWeaveCount("pr102733_1", 1, 0); - assertTrue("There should be an error:\n" - + getErrorMessages("pr102733_1"), !getErrorMessages( - "pr102733_1").isEmpty()); + assertTrue("There should be an error:\n" + getErrorMessages("pr102733_1"), !getErrorMessages("pr102733_1").isEmpty()); } // public void testDeclareAtType_pr149293() { @@ -485,17 +426,14 @@ public class MultiProjectIncrementalTests extends // } /* - * public void testRefactoring_pr148285() { - * configureBuildStructureModel(true); initialiseProject("PR148285"); - * build("PR148285"); System.err.println("xxx"); alter("PR148285","inc1"); - * build("PR148285"); } + * public void testRefactoring_pr148285() { configureBuildStructureModel(true); initialiseProject("PR148285"); + * build("PR148285"); System.err.println("xxx"); alter("PR148285","inc1"); build("PR148285"); } */ /** - * In order for this next test to run, I had to move the weaver/world pair - * we keep in the AjBuildManager instance down into the state object - this - * makes perfect sense - otherwise when reusing the state for another - * project we'd not be switching to the right weaver/world for that project. + * In order for this next test to run, I had to move the weaver/world pair we keep in the AjBuildManager instance down into the + * state object - this makes perfect sense - otherwise when reusing the state for another project we'd not be switching to the + * right weaver/world for that project. */ public void testBuildingTwoProjectsMakingSmallChanges() { @@ -521,15 +459,13 @@ public class MultiProjectIncrementalTests extends build("PR134371"); alter("PR134371", "inc1"); build("PR134371"); - assertTrue("There should be no exceptions handled:\n" - + getErrorMessages("PR134371"), getErrorMessages("PR134371") + assertTrue("There should be no exceptions handled:\n" + getErrorMessages("PR134371"), getErrorMessages("PR134371") .isEmpty()); } /** - * Setup up two simple projects and build them in turn - check the structure - * model is right after each build + * Setup up two simple projects and build them in turn - check the structure model is right after each build */ public void testBuildingTwoProjectsAndVerifyingModel() { initialiseProject("P1"); @@ -568,11 +504,9 @@ public class MultiProjectIncrementalTests extends } /** - * Complex. Here we are testing that a state object records structural - * changes since the last full build correctly. We build a simple project - * from scratch - this will be a full build and so the structural changes - * since last build count should be 0. We then alter a class, adding a new - * method and check structural changes is 1. + * Complex. Here we are testing that a state object records structural changes since the last full build correctly. We build a + * simple project from scratch - this will be a full build and so the structural changes since last build count should be 0. We + * then alter a class, adding a new method and check structural changes is 1. */ public void testStateManagement1() { @@ -580,34 +514,26 @@ public class MultiProjectIncrementalTests extends initialiseProject("P1"); build("P1"); // full build - AjState ajs = IncrementalStateManager - .findStateManagingOutputLocation(binDirectoryForP1); + AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(binDirectoryForP1); assertTrue("There should be a state object for project P1", ajs != null); - assertTrue( - "Should be no structural changes as it was a full build but found: " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), - ajs.getNumberOfStructuralChangesSinceLastFullBuild() == 0); + assertTrue("Should be no structural changes as it was a full build but found: " + + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs.getNumberOfStructuralChangesSinceLastFullBuild() == 0); alter("P1", "inc3"); // adds a method to the class C.java build("P1"); checkWasntFullBuild(); - ajs = IncrementalStateManager.findStateManagingOutputLocation(new File( - getFile("P1", "bin"))); + ajs = IncrementalStateManager.findStateManagingOutputLocation(new File(getFile("P1", "bin"))); assertTrue("There should be state for project P1", ajs != null); checkWasntFullBuild(); - assertTrue( - "Should be one structural changes as it was a full build but found: " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), - ajs.getNumberOfStructuralChangesSinceLastFullBuild() == 1); + assertTrue("Should be one structural changes as it was a full build but found: " + + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs.getNumberOfStructuralChangesSinceLastFullBuild() == 1); } /** - * Complex. Here we are testing that a state object records structural - * changes since the last full build correctly. We build a simple project - * from scratch - this will be a full build and so the structural changes - * since last build count should be 0. We then alter a class, changing body - * of a method, not the structure and check struc changes is still 0. + * Complex. Here we are testing that a state object records structural changes since the last full build correctly. We build a + * simple project from scratch - this will be a full build and so the structural changes since last build count should be 0. We + * then alter a class, changing body of a method, not the structure and check struc changes is still 0. */ public void testStateManagement2() { File binDirectoryForP1 = new File(getFile("P1", "bin")); @@ -617,128 +543,101 @@ public class MultiProjectIncrementalTests extends // applied without making // it a structural change build("P1"); // full build - AjState ajs = IncrementalStateManager - .findStateManagingOutputLocation(binDirectoryForP1); + AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(binDirectoryForP1); assertTrue("There should be state for project P1", ajs != null); - assertTrue("Should be no struc changes as its a full build: " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs + assertTrue("Should be no struc changes as its a full build: " + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs .getNumberOfStructuralChangesSinceLastFullBuild() == 0); alter("P1", "inc4"); // changes body of main() method but does *not* // change the structure of C.java build("P1"); checkWasntFullBuild(); - ajs = IncrementalStateManager.findStateManagingOutputLocation(new File( - getFile("P1", "bin"))); + ajs = IncrementalStateManager.findStateManagingOutputLocation(new File(getFile("P1", "bin"))); assertTrue("There should be state for project P1", ajs != null); checkWasntFullBuild(); - assertTrue("Shouldn't be any structural changes but there were " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs - .getNumberOfStructuralChangesSinceLastFullBuild() == 0); + assertTrue("Shouldn't be any structural changes but there were " + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), + ajs.getNumberOfStructuralChangesSinceLastFullBuild() == 0); } /** - * The C.java file modified in this test has an inner class - this means the - * inner class has a this$0 field and <init>(C) ctor to watch out for when - * checking for structural changes + * The C.java file modified in this test has an inner class - this means the inner class has a this$0 field and <init>(C) ctor + * to watch out for when checking for structural changes * */ public void testStateManagement3() { - File binDirForInterproject1 = new File(getFile("interprojectdeps1", - "bin")); + File binDirForInterproject1 = new File(getFile("interprojectdeps1", "bin")); initialiseProject("interprojectdeps1"); build("interprojectdeps1"); // full build - AjState ajs = IncrementalStateManager - .findStateManagingOutputLocation(binDirForInterproject1); + AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(binDirForInterproject1); assertTrue("There should be state for project P1", ajs != null); - assertTrue("Should be no struc changes as its a full build: " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs + assertTrue("Should be no struc changes as its a full build: " + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs .getNumberOfStructuralChangesSinceLastFullBuild() == 0); alter("interprojectdeps1", "inc1"); // adds a space to C.java build("interprojectdeps1"); checkWasntFullBuild(); - ajs = IncrementalStateManager.findStateManagingOutputLocation(new File( - getFile("interprojectdeps1", "bin"))); - assertTrue("There should be state for project interprojectdeps1", - ajs != null); + ajs = IncrementalStateManager.findStateManagingOutputLocation(new File(getFile("interprojectdeps1", "bin"))); + assertTrue("There should be state for project interprojectdeps1", ajs != null); checkWasntFullBuild(); - assertTrue("Shouldn't be any structural changes but there were " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs - .getNumberOfStructuralChangesSinceLastFullBuild() == 0); + assertTrue("Shouldn't be any structural changes but there were " + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), + ajs.getNumberOfStructuralChangesSinceLastFullBuild() == 0); } /** - * The C.java file modified in this test has an inner class - which has two - * ctors - this checks how they are mangled with an instance of C. + * The C.java file modified in this test has an inner class - which has two ctors - this checks how they are mangled with an + * instance of C. * */ public void testStateManagement4() { - File binDirForInterproject2 = new File(getFile("interprojectdeps2", - "bin")); + File binDirForInterproject2 = new File(getFile("interprojectdeps2", "bin")); initialiseProject("interprojectdeps2"); build("interprojectdeps2"); // full build - AjState ajs = IncrementalStateManager - .findStateManagingOutputLocation(binDirForInterproject2); - assertTrue("There should be state for project interprojectdeps2", - ajs != null); - assertTrue("Should be no struc changes as its a full build: " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs + AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(binDirForInterproject2); + assertTrue("There should be state for project interprojectdeps2", ajs != null); + assertTrue("Should be no struc changes as its a full build: " + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs .getNumberOfStructuralChangesSinceLastFullBuild() == 0); alter("interprojectdeps2", "inc1"); // minor change to C.java build("interprojectdeps2"); checkWasntFullBuild(); - ajs = IncrementalStateManager.findStateManagingOutputLocation(new File( - getFile("interprojectdeps2", "bin"))); - assertTrue("There should be state for project interprojectdeps1", - ajs != null); + ajs = IncrementalStateManager.findStateManagingOutputLocation(new File(getFile("interprojectdeps2", "bin"))); + assertTrue("There should be state for project interprojectdeps1", ajs != null); checkWasntFullBuild(); - assertTrue("Shouldn't be any structural changes but there were " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs - .getNumberOfStructuralChangesSinceLastFullBuild() == 0); + assertTrue("Shouldn't be any structural changes but there were " + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), + ajs.getNumberOfStructuralChangesSinceLastFullBuild() == 0); } /** - * The C.java file modified in this test has an inner class - it has two - * ctors but also a reference to C.this in it - which will give rise to an - * accessor being created in C + * The C.java file modified in this test has an inner class - it has two ctors but also a reference to C.this in it - which will + * give rise to an accessor being created in C * */ public void testStateManagement5() { - File binDirForInterproject3 = new File(getFile("interprojectdeps3", - "bin")); + File binDirForInterproject3 = new File(getFile("interprojectdeps3", "bin")); initialiseProject("interprojectdeps3"); build("interprojectdeps3"); // full build - AjState ajs = IncrementalStateManager - .findStateManagingOutputLocation(binDirForInterproject3); - assertTrue("There should be state for project interprojectdeps3", - ajs != null); - assertTrue("Should be no struc changes as its a full build: " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs + AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(binDirForInterproject3); + assertTrue("There should be state for project interprojectdeps3", ajs != null); + assertTrue("Should be no struc changes as its a full build: " + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs .getNumberOfStructuralChangesSinceLastFullBuild() == 0); alter("interprojectdeps3", "inc1"); // minor change to C.java build("interprojectdeps3"); checkWasntFullBuild(); - ajs = IncrementalStateManager.findStateManagingOutputLocation(new File( - getFile("interprojectdeps3", "bin"))); - assertTrue("There should be state for project interprojectdeps1", - ajs != null); + ajs = IncrementalStateManager.findStateManagingOutputLocation(new File(getFile("interprojectdeps3", "bin"))); + assertTrue("There should be state for project interprojectdeps1", ajs != null); checkWasntFullBuild(); - assertTrue("Shouldn't be any structural changes but there were " - + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), ajs - .getNumberOfStructuralChangesSinceLastFullBuild() == 0); + assertTrue("Shouldn't be any structural changes but there were " + ajs.getNumberOfStructuralChangesSinceLastFullBuild(), + ajs.getNumberOfStructuralChangesSinceLastFullBuild() == 0); } /** - * Now the most complex test. Create a dependancy between two projects. - * Building one may affect whether the other does an incremental or full - * build. The structural information recorded in the state object should be - * getting used to control whether a full build is necessary... + * Now the most complex test. Create a dependancy between two projects. Building one may affect whether the other does an + * incremental or full build. The structural information recorded in the state object should be getting used to control whether + * a full build is necessary... */ public void testBuildingDependantProjects() { initialiseProject("P1"); @@ -778,24 +677,19 @@ public class MultiProjectIncrementalTests extends alter("PR125405", "inc1"); build("PR125405"); // "only abstract aspects can have type parameters" - checkForError("PR125405", - "only abstract aspects can have type parameters"); + checkForError("PR125405", "only abstract aspects can have type parameters"); alter("PR125405", "inc2"); build("PR125405"); checkCompileWeaveCount("PR125405", 1, 1); - assertTrue("Should be no errors, but got " - + getErrorMessages("PR125405"), getErrorMessages("PR125405") - .size() == 0); + assertTrue("Should be no errors, but got " + getErrorMessages("PR125405"), getErrorMessages("PR125405").size() == 0); } public void testPr128618() { initialiseProject("PR128618_1"); initialiseProject("PR128618_2"); configureNewProjectDependency("PR128618_2", "PR128618_1"); - assertTrue("there should be no warning messages before we start", - getWarningMessages("PR128618_1").isEmpty()); - assertTrue("there should be no warning messages before we start", - getWarningMessages("PR128618_2").isEmpty()); + assertTrue("there should be no warning messages before we start", getWarningMessages("PR128618_1").isEmpty()); + assertTrue("there should be no warning messages before we start", getWarningMessages("PR128618_2").isEmpty()); build("PR128618_1"); build("PR128618_2"); @@ -803,21 +697,18 @@ public class MultiProjectIncrementalTests extends // there should be one warning against "PR128618_2" List warnings = getWarningMessages("PR128618_2"); - assertTrue("Should be one warning, but there are #" + warnings.size(), - warnings.size() == 1); + assertTrue("Should be one warning, but there are #" + warnings.size(), warnings.size() == 1); IMessage msg = (IMessage) (getWarningMessages("PR128618_2").get(0)); - assertEquals("warning should be against the FFDC.aj resource", - "FFDC.aj", msg.getSourceLocation().getSourceFile().getName()); + assertEquals("warning should be against the FFDC.aj resource", "FFDC.aj", msg.getSourceLocation().getSourceFile().getName()); alter("PR128618_2", "inc1"); build("PR128618_2"); checkWasntFullBuild(); IMessage msg2 = (IMessage) (getWarningMessages("PR128618_2").get(0)); - assertEquals("warning should be against the FFDC.aj resource", - "FFDC.aj", msg2.getSourceLocation().getSourceFile().getName()); - assertFalse("a new warning message should have been generated", msg - .equals(msg2)); + assertEquals("warning should be against the FFDC.aj resource", "FFDC.aj", msg2.getSourceLocation().getSourceFile() + .getName()); + assertFalse("a new warning message should have been generated", msg.equals(msg2)); } public void testPr92837() { @@ -935,52 +826,38 @@ public class MultiProjectIncrementalTests extends build("PR157054"); checkWasFullBuild(); List weaveMessages = getWeavingMessages("PR157054"); - assertTrue("Should be two weaving messages but there are " - + weaveMessages.size(), weaveMessages.size() == 2); + assertTrue("Should be two weaving messages but there are " + weaveMessages.size(), weaveMessages.size() == 2); alter("PR157054", "inc1"); build("PR157054"); weaveMessages = getWeavingMessages("PR157054"); - assertTrue("Should be three weaving messages but there are " - + weaveMessages.size(), weaveMessages.size() == 3); + assertTrue("Should be three weaving messages but there are " + weaveMessages.size(), weaveMessages.size() == 3); checkWasntFullBuild(); fullBuild("PR157054"); weaveMessages = getWeavingMessages("PR157054"); - assertTrue("Should be three weaving messages but there are " - + weaveMessages.size(), weaveMessages.size() == 3); + assertTrue("Should be three weaving messages but there are " + weaveMessages.size(), weaveMessages.size() == 3); } /** - * Checks we aren't leaking mungers across compiles (accumulating multiple - * instances of the same one that all do the same thing). On the first - * compile the munger is added late on - so at the time we set the count it - * is still zero. On the subsequent compiles we know about this extra one. + * Checks we aren't leaking mungers across compiles (accumulating multiple instances of the same one that all do the same + * thing). On the first compile the munger is added late on - so at the time we set the count it is still zero. On the + * subsequent compiles we know about this extra one. */ public void testPr141956_IncrementallyCompilingAtAj() { initialiseProject("PR141956"); build("PR141956"); - assertTrue("Should be zero but reports " - + EclipseFactory.debug_mungerCount, - EclipseFactory.debug_mungerCount == 0); + assertTrue("Should be zero but reports " + EclipseFactory.debug_mungerCount, EclipseFactory.debug_mungerCount == 0); alter("PR141956", "inc1"); build("PR141956"); - assertTrue("Should be two but reports " - + EclipseFactory.debug_mungerCount, - EclipseFactory.debug_mungerCount == 2); + assertTrue("Should be two but reports " + EclipseFactory.debug_mungerCount, EclipseFactory.debug_mungerCount == 2); alter("PR141956", "inc1"); build("PR141956"); - assertTrue("Should be two but reports " - + EclipseFactory.debug_mungerCount, - EclipseFactory.debug_mungerCount == 2); + assertTrue("Should be two but reports " + EclipseFactory.debug_mungerCount, EclipseFactory.debug_mungerCount == 2); alter("PR141956", "inc1"); build("PR141956"); - assertTrue("Should be two but reports " - + EclipseFactory.debug_mungerCount, - EclipseFactory.debug_mungerCount == 2); + assertTrue("Should be two but reports " + EclipseFactory.debug_mungerCount, EclipseFactory.debug_mungerCount == 2); alter("PR141956", "inc1"); build("PR141956"); - assertTrue("Should be two but reports " - + EclipseFactory.debug_mungerCount, - EclipseFactory.debug_mungerCount == 2); + assertTrue("Should be two but reports " + EclipseFactory.debug_mungerCount, EclipseFactory.debug_mungerCount == 2); } // public void testPr124399() { @@ -1007,49 +884,40 @@ public class MultiProjectIncrementalTests extends } /* - * public void testPr111779() { super.VERBOSE=true; - * initialiseProject("PR111779"); build("PR111779"); - * alter("PR111779","inc1"); build("PR111779"); } + * public void testPr111779() { super.VERBOSE=true; initialiseProject("PR111779"); build("PR111779"); alter("PR111779","inc1"); + * build("PR111779"); } */ public void testPr93310_1() { initialiseProject("PR93310_1"); build("PR93310_1"); checkWasFullBuild(); - String fileC2 = getWorkingDir().getAbsolutePath() + File.separatorChar - + "PR93310_1" + File.separatorChar + "src" + File.separatorChar - + "pack" + File.separatorChar + "C2.java"; + String fileC2 = getWorkingDir().getAbsolutePath() + File.separatorChar + "PR93310_1" + File.separatorChar + "src" + + File.separatorChar + "pack" + File.separatorChar + "C2.java"; (new File(fileC2)).delete(); alter("PR93310_1", "inc1"); build("PR93310_1"); checkWasFullBuild(); int l = AjdeInteractionTestbed.MyStateListener.detectedDeletions.size(); - assertTrue("Expected one deleted file to be noticed, but detected: " - + l, l == 1); - String name = (String) AjdeInteractionTestbed.MyStateListener.detectedDeletions - .get(0); - assertTrue("Should end with C2.java but is " + name, name - .endsWith("C2.java")); + assertTrue("Expected one deleted file to be noticed, but detected: " + l, l == 1); + String name = (String) AjdeInteractionTestbed.MyStateListener.detectedDeletions.get(0); + assertTrue("Should end with C2.java but is " + name, name.endsWith("C2.java")); } public void testPr93310_2() { initialiseProject("PR93310_2"); build("PR93310_2"); checkWasFullBuild(); - String fileC2 = getWorkingDir().getAbsolutePath() + File.separatorChar - + "PR93310_2" + File.separatorChar + "src" + File.separatorChar - + "pack" + File.separatorChar + "C2.java"; + String fileC2 = getWorkingDir().getAbsolutePath() + File.separatorChar + "PR93310_2" + File.separatorChar + "src" + + File.separatorChar + "pack" + File.separatorChar + "C2.java"; (new File(fileC2)).delete(); alter("PR93310_2", "inc1"); build("PR93310_2"); checkWasFullBuild(); int l = AjdeInteractionTestbed.MyStateListener.detectedDeletions.size(); - assertTrue("Expected one deleted file to be noticed, but detected: " - + l, l == 1); - String name = (String) AjdeInteractionTestbed.MyStateListener.detectedDeletions - .get(0); - assertTrue("Should end with C2.java but is " + name, name - .endsWith("C2.java")); + assertTrue("Expected one deleted file to be noticed, but detected: " + l, l == 1); + String name = (String) AjdeInteractionTestbed.MyStateListener.detectedDeletions.get(0); + assertTrue("Should end with C2.java but is " + name, name.endsWith("C2.java")); } // Stage1: Compile two files, pack.A and pack.A1 - A1 sets a protected field @@ -1059,21 +927,17 @@ public class MultiProjectIncrementalTests extends public void testPr113531() { initialiseProject("PR113531"); build("PR113531"); - assertTrue("build should have compiled ok", - getErrorMessages("PR113531").isEmpty()); + assertTrue("build should have compiled ok", getErrorMessages("PR113531").isEmpty()); alter("PR113531", "inc1"); build("PR113531"); - assertEquals("error message should be 'foo cannot be resolved' ", - "foo cannot be resolved", ((IMessage) getErrorMessages( - "PR113531").get(0)).getMessage()); + assertEquals("error message should be 'foo cannot be resolved' ", "foo cannot be resolved", ((IMessage) getErrorMessages( + "PR113531").get(0)).getMessage()); alter("PR113531", "inc2"); build("PR113531"); - assertTrue("There should be no exceptions handled:\n" - + getCompilerErrorMessages("PR113531"), - getCompilerErrorMessages("PR113531").isEmpty()); - assertEquals("error message should be 'foo cannot be resolved' ", - "foo cannot be resolved", ((IMessage) getErrorMessages( - "PR113531").get(0)).getMessage()); + assertTrue("There should be no exceptions handled:\n" + getCompilerErrorMessages("PR113531"), getCompilerErrorMessages( + "PR113531").isEmpty()); + assertEquals("error message should be 'foo cannot be resolved' ", "foo cannot be resolved", ((IMessage) getErrorMessages( + "PR113531").get(0)).getMessage()); } // Stage 1: Compile the 4 files, pack.A2 extends pack.A1 (aspects) where @@ -1086,23 +950,20 @@ public class MultiProjectIncrementalTests extends public void testPr119882() { initialiseProject("PR119882"); build("PR119882"); - assertTrue("build should have compiled ok", - getErrorMessages("PR119882").isEmpty()); + assertTrue("build should have compiled ok", getErrorMessages("PR119882").isEmpty()); alter("PR119882", "inc1"); build("PR119882"); // fullBuild("PR119882"); List errors = getErrorMessages("PR119882"); - assertTrue("Should be at least one error, but got none", - errors.size() == 1); - assertEquals("error message should be 'i cannot be resolved' ", - "i cannot be resolved", ((IMessage) errors.get(0)).getMessage()); + assertTrue("Should be at least one error, but got none", errors.size() == 1); + assertEquals("error message should be 'i cannot be resolved' ", "i cannot be resolved", ((IMessage) errors.get(0)) + .getMessage()); alter("PR119882", "inc2"); build("PR119882"); - assertTrue("There should be no exceptions handled:\n" - + getCompilerErrorMessages("PR119882"), - getCompilerErrorMessages("PR119882").isEmpty()); - assertEquals("error message should be 'i cannot be resolved' ", - "i cannot be resolved", ((IMessage) errors.get(0)).getMessage()); + assertTrue("There should be no exceptions handled:\n" + getCompilerErrorMessages("PR119882"), getCompilerErrorMessages( + "PR119882").isEmpty()); + assertEquals("error message should be 'i cannot be resolved' ", "i cannot be resolved", ((IMessage) errors.get(0)) + .getMessage()); } @@ -1110,9 +971,8 @@ public class MultiProjectIncrementalTests extends initialiseProject("PR112736"); build("PR112736"); checkWasFullBuild(); - String fileC2 = getWorkingDir().getAbsolutePath() + File.separatorChar - + "PR112736" + File.separatorChar + "src" + File.separatorChar - + "pack" + File.separatorChar + "A.java"; + String fileC2 = getWorkingDir().getAbsolutePath() + File.separatorChar + "PR112736" + File.separatorChar + "src" + + File.separatorChar + "pack" + File.separatorChar + "A.java"; (new File(fileC2)).delete(); alter("PR112736", "inc1"); build("PR112736"); @@ -1120,8 +980,7 @@ public class MultiProjectIncrementalTests extends } /** - * We have problems with multiple rewrites of a pointcut across incremental - * builds. + * We have problems with multiple rewrites of a pointcut across incremental builds. */ public void testPr113257() { initialiseProject("PR113257"); @@ -1148,14 +1007,12 @@ public class MultiProjectIncrementalTests extends configureNonStandardCompileOptions("PR152257", "-XnoInline"); build("PR152257"); List errors = getErrorMessages("PR152257"); - assertTrue("Should be no warnings, but there are #" + errors.size(), - errors.size() == 0); + assertTrue("Should be no warnings, but there are #" + errors.size(), errors.size() == 0); checkWasFullBuild(); alter("PR152257", "inc1"); build("PR152257"); errors = getErrorMessages("PR152257"); - assertTrue("Should be no warnings, but there are #" + errors.size(), - errors.size() == 0); + assertTrue("Should be no warnings, but there are #" + errors.size(), errors.size() == 0); checkWasntFullBuild(); } @@ -1165,9 +1022,7 @@ public class MultiProjectIncrementalTests extends configureShowWeaveInfoMessages("pr128655", true); build("pr128655"); List firstBuildMessages = getWeavingMessages("pr128655"); - assertTrue( - "Should be at least one message about the dec @type, but there were none", - firstBuildMessages.size() > 0); + assertTrue("Should be at least one message about the dec @type, but there were none", firstBuildMessages.size() > 0); alter("pr128655", "inc1"); build("pr128655"); checkWasntFullBuild(); // back to the source @@ -1179,8 +1034,7 @@ public class MultiProjectIncrementalTests extends if (!m1.toString().equals(m2.toString())) { System.err.println("Message during first build was: " + m1); System.err.println("Message during second build was: " + m1); - fail("The two messages should be the same, but are not: \n" - + m1 + "!=" + m2); + fail("The two messages should be the same, but are not: \n" + m1 + "!=" + m2); } } } @@ -1192,9 +1046,7 @@ public class MultiProjectIncrementalTests extends configureShowWeaveInfoMessages("pr128655_2", true); build("pr128655_2"); List firstBuildMessages = getWeavingMessages("pr128655_2"); - assertTrue( - "Should be at least one message about the dec @type, but there were none", - firstBuildMessages.size() > 0); + assertTrue("Should be at least one message about the dec @type, but there were none", firstBuildMessages.size() > 0); alter("pr128655_2", "inc1"); build("pr128655_2"); checkWasntFullBuild(); // back to the source @@ -1206,8 +1058,7 @@ public class MultiProjectIncrementalTests extends if (!m1.toString().equals(m2.toString())) { System.err.println("Message during first build was: " + m1); System.err.println("Message during second build was: " + m1); - fail("The two messages should be the same, but are not: \n" - + m1 + "!=" + m2); + fail("The two messages should be the same, but are not: \n" + m1 + "!=" + m2); } } } @@ -1218,13 +1069,11 @@ public class MultiProjectIncrementalTests extends build("PR129613"); alter("PR129613", "inc1"); build("PR129613"); - assertTrue("There should be no exceptions handled:\n" - + getCompilerErrorMessages("PR129613"), - getCompilerErrorMessages("PR129613").isEmpty()); - assertEquals( - "warning message should be 'no match for this type name: File [Xlint:invalidAbsoluteTypeName]' ", - "no match for this type name: File [Xlint:invalidAbsoluteTypeName]", - ((IMessage) getWarningMessages("PR129613").get(0)).getMessage()); + assertTrue("There should be no exceptions handled:\n" + getCompilerErrorMessages("PR129613"), getCompilerErrorMessages( + "PR129613").isEmpty()); + assertEquals("warning message should be 'no match for this type name: File [Xlint:invalidAbsoluteTypeName]' ", + "no match for this type name: File [Xlint:invalidAbsoluteTypeName]", ((IMessage) getWarningMessages("PR129613") + .get(0)).getMessage()); } // test for comment #0 - adding a comment to a class file shouldn't @@ -1302,60 +1151,44 @@ public class MultiProjectIncrementalTests extends if (object.indexOf(typeNameSubstring) != -1) found = true; } - assertTrue("Did not find '" + typeNameSubstring - + "' in list of compiled files", found); + assertTrue("Did not find '" + typeNameSubstring + "' in list of compiled files", found); } // Case001: renaming a private field in a type /* - * public void testPrReducingDependentBuilds_001_221427() { - * AjdeInteractionTestbed.VERBOSE=true; - * IncrementalStateManager.debugIncrementalStates=true; - * initialiseProject("P221427_1"); initialiseProject("P221427_2"); + * public void testPrReducingDependentBuilds_001_221427() { AjdeInteractionTestbed.VERBOSE=true; + * IncrementalStateManager.debugIncrementalStates=true; initialiseProject("P221427_1"); initialiseProject("P221427_2"); * configureNewProjectDependency("P221427_2","P221427_1"); * - * build("P221427_1"); build("P221427_2"); alter("P221427_1","inc1"); // - * rename private class in super project MyStateListener.reset(); - * build("P221427_1"); build("P221427_2"); + * build("P221427_1"); build("P221427_2"); alter("P221427_1","inc1"); // rename private class in super project + * MyStateListener.reset(); build("P221427_1"); build("P221427_2"); * - * AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(new - * File(getFile("P221427_1","bin"))); + * AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(new File(getFile("P221427_1","bin"))); * assertTrue("There should be state for project P221427_1",ajs!=null); - * //System.out.println(MyStateListener.getInstance().getDecisions()); - * checkWasntFullBuild(); - * assertTrue("Should be one structural change but there were "+ - * ajs.getNumberOfStructuralChangesSinceLastFullBuild(), + * //System.out.println(MyStateListener.getInstance().getDecisions()); checkWasntFullBuild(); + * assertTrue("Should be one structural change but there were "+ ajs.getNumberOfStructuralChangesSinceLastFullBuild(), * ajs.getNumberOfStructuralChangesSinceLastFullBuild()==1); * * } * - * // Case002: changing a class to final that is extended in a dependent - * project public void testPrReducingDependentBuilds_002_221427() { - * AjdeInteractionTestbed.VERBOSE=true; - * IncrementalStateManager.debugIncrementalStates=true; - * initialiseProject("P221427_3"); initialiseProject("P221427_4"); + * // Case002: changing a class to final that is extended in a dependent project public void + * testPrReducingDependentBuilds_002_221427() { AjdeInteractionTestbed.VERBOSE=true; + * IncrementalStateManager.debugIncrementalStates=true; initialiseProject("P221427_3"); initialiseProject("P221427_4"); * configureNewProjectDependency("P221427_4","P221427_3"); * - * build("P221427_3"); build("P221427_4"); // build OK, type in super - * project is non-final alter("P221427_3","inc1"); // change class - * declaration in super-project to final MyStateListener.reset(); - * build("P221427_3"); build("P221427_4"); // build FAIL, type in super - * project is now final + * build("P221427_3"); build("P221427_4"); // build OK, type in super project is non-final alter("P221427_3","inc1"); // change + * class declaration in super-project to final MyStateListener.reset(); build("P221427_3"); build("P221427_4"); // build FAIL, + * type in super project is now final * - * AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(new - * File(getFile("P221427_3","bin"))); + * AjState ajs = IncrementalStateManager.findStateManagingOutputLocation(new File(getFile("P221427_3","bin"))); * assertTrue("There should be state for project P221427_3",ajs!=null); * System.out.println(MyStateListener.getInstance().getDecisions()); * - * List errors = getErrorMessages("P221427_4"); if (errors.size()!=1) { if - * (errors.size()==0) - * fail("Expected error about not being able to extend final class"); for - * (Iterator iterator = errors.iterator(); iterator.hasNext();) { Object - * object = (Object) iterator.next(); System.out.println(object); } - * fail("Expected 1 error but got "+errors.size()); } // - * assertTrue("Shouldn't be one structural change but there were "+ // - * ajs.getNumberOfStructuralChangesSinceLastFullBuild(), // - * ajs.getNumberOfStructuralChangesSinceLastFullBuild()==1); + * List errors = getErrorMessages("P221427_4"); if (errors.size()!=1) { if (errors.size()==0) + * fail("Expected error about not being able to extend final class"); for (Iterator iterator = errors.iterator(); + * iterator.hasNext();) { Object object = (Object) iterator.next(); System.out.println(object); } + * fail("Expected 1 error but got "+errors.size()); } // assertTrue("Shouldn't be one structural change but there were "+ // + * ajs.getNumberOfStructuralChangesSinceLastFullBuild(), // ajs.getNumberOfStructuralChangesSinceLastFullBuild()==1); * * } */ @@ -1399,8 +1232,7 @@ public class MultiProjectIncrementalTests extends initialiseProject("PR133117"); configureNonStandardCompileOptions("PR133117", "-Xlint:warning"); build("PR133117"); - assertTrue("There should only be one xlint warning message reported:\n" - + getWarningMessages("PR133117"), + assertTrue("There should only be one xlint warning message reported:\n" + getWarningMessages("PR133117"), getWarningMessages("PR133117").size() == 1); alter("PR133117", "inc1"); build("PR133117"); @@ -1412,9 +1244,8 @@ public class MultiProjectIncrementalTests extends noGuardWarnings.add(element); } } - assertTrue( - "There should only be two Xlint:noGuardForLazyTjp warning message reported:\n" - + noGuardWarnings, noGuardWarnings.size() == 2); + assertTrue("There should only be two Xlint:noGuardForLazyTjp warning message reported:\n" + noGuardWarnings, + noGuardWarnings.size() == 2); } public void testPr131505() { @@ -1422,8 +1253,7 @@ public class MultiProjectIncrementalTests extends configureNonStandardCompileOptions("PR131505", "-outxml"); build("PR131505"); checkWasFullBuild(); - String outputDir = getWorkingDir().getAbsolutePath() - + File.separatorChar + "PR131505" + File.separatorChar + "bin"; + String outputDir = getWorkingDir().getAbsolutePath() + File.separatorChar + "PR131505" + File.separatorChar + "bin"; // aop.xml file shouldn't contain any aspects checkXMLAspectCount("PR131505", "", 0, outputDir); // add a new aspect A which should be included in the aop.xml file @@ -1449,9 +1279,7 @@ public class MultiProjectIncrementalTests extends checkXMLAspectCount("PR131505", "A1", 1, outputDir); checkXMLAspectCount("PR131505", "A", 1, outputDir); // delete aspect A1 which meanss that aop.xml file should only contain A - File a1 = new File(getWorkingDir().getAbsolutePath() - + File.separatorChar + "PR131505" + File.separatorChar - + "A1.aj"); + File a1 = new File(getWorkingDir().getAbsolutePath() + File.separatorChar + "PR131505" + File.separatorChar + "A1.aj"); a1.delete(); build("PR131505"); checkWasFullBuild(); @@ -1473,9 +1301,7 @@ public class MultiProjectIncrementalTests extends build("PR136585"); alter("PR136585", "inc1"); build("PR136585"); - assertTrue("There should be no errors reported:\n" - + getErrorMessages("PR136585"), getErrorMessages("PR136585") - .isEmpty()); + assertTrue("There should be no errors reported:\n" + getErrorMessages("PR136585"), getErrorMessages("PR136585").isEmpty()); } public void testPr133532() { @@ -1485,9 +1311,7 @@ public class MultiProjectIncrementalTests extends build("PR133532"); alter("PR133532", "inc2"); build("PR133532"); - assertTrue("There should be no errors reported:\n" - + getErrorMessages("PR133532"), getErrorMessages("PR133532") - .isEmpty()); + assertTrue("There should be no errors reported:\n" + getErrorMessages("PR133532"), getErrorMessages("PR133532").isEmpty()); } public void testPr133532_2() { @@ -1495,14 +1319,11 @@ public class MultiProjectIncrementalTests extends build("pr133532_2"); alter("pr133532_2", "inc2"); build("pr133532_2"); - assertTrue("There should be no errors reported:\n" - + getErrorMessages("pr133532_2"), - getErrorMessages("pr133532_2").isEmpty()); - String decisions = AjdeInteractionTestbed.MyStateListener - .getDecisions(); + assertTrue("There should be no errors reported:\n" + getErrorMessages("pr133532_2"), getErrorMessages("pr133532_2") + .isEmpty()); + String decisions = AjdeInteractionTestbed.MyStateListener.getDecisions(); String expect = "Need to recompile 'A.aj'"; - assertTrue("Couldn't find build decision: '" + expect - + "' in the list of decisions made:\n" + decisions, decisions + assertTrue("Couldn't find build decision: '" + expect + "' in the list of decisions made:\n" + decisions, decisions .indexOf(expect) != -1); } @@ -1511,18 +1332,15 @@ public class MultiProjectIncrementalTests extends build("PR133532_3"); alter("PR133532_3", "inc1"); build("PR133532_3"); - assertTrue("There should be no errors reported:\n" - + getErrorMessages("PR133532_3"), - getErrorMessages("PR133532_3").isEmpty()); + assertTrue("There should be no errors reported:\n" + getErrorMessages("PR133532_3"), getErrorMessages("PR133532_3") + .isEmpty()); } public void testPr134541() { initialiseProject("PR134541"); build("PR134541"); - assertEquals( - "[Xlint:adviceDidNotMatch] should be associated with line 5", - 5, ((IMessage) getWarningMessages("PR134541").get(0)) - .getSourceLocation().getLine()); + assertEquals("[Xlint:adviceDidNotMatch] should be associated with line 5", 5, ((IMessage) getWarningMessages("PR134541") + .get(0)).getSourceLocation().getLine()); alter("PR134541", "inc1"); build("PR134541"); if (AsmManager.getDefault().getHandleProvider().dependsOnLocation()) @@ -1531,15 +1349,12 @@ public class MultiProjectIncrementalTests extends else checkWasntFullBuild(); // the line number has changed... but nothing // structural about the code - assertEquals( - "[Xlint:adviceDidNotMatch] should now be associated with line 7", - 7, ((IMessage) getWarningMessages("PR134541").get(0)) - .getSourceLocation().getLine()); + assertEquals("[Xlint:adviceDidNotMatch] should now be associated with line 7", 7, + ((IMessage) getWarningMessages("PR134541").get(0)).getSourceLocation().getLine()); } public void testJDTLikeHandleProviderWithLstFile_pr141730() { - IElementHandleProvider handleProvider = AsmManager.getDefault() - .getHandleProvider(); + IElementHandleProvider handleProvider = AsmManager.getDefault().getHandleProvider(); AsmManager.getDefault().setHandleProvider(new JDTLikeHandleProvider()); try { // The JDTLike-handles should start with the name @@ -1549,60 +1364,49 @@ public class MultiProjectIncrementalTests extends IHierarchy top = AsmManager.getDefault().getHierarchy(); IProgramElement pe = top.findElementForType("pkg", "A"); String expectedHandle = "=JDTLikeHandleProvider<pkg*A.aj}A"; - assertEquals("expected handle to be " + expectedHandle - + ", but found " + pe.getHandleIdentifier(), - expectedHandle, pe.getHandleIdentifier()); + assertEquals("expected handle to be " + expectedHandle + ", but found " + pe.getHandleIdentifier(), expectedHandle, pe + .getHandleIdentifier()); } finally { AsmManager.getDefault().setHandleProvider(handleProvider); } } public void testMovingAdviceDoesntChangeHandles_pr141730() { - IElementHandleProvider handleProvider = AsmManager.getDefault() - .getHandleProvider(); + IElementHandleProvider handleProvider = AsmManager.getDefault().getHandleProvider(); AsmManager.getDefault().setHandleProvider(new JDTLikeHandleProvider()); try { initialiseProject("JDTLikeHandleProvider"); build("JDTLikeHandleProvider"); checkWasFullBuild(); IHierarchy top = AsmManager.getDefault().getHierarchy(); - IProgramElement pe = top.findElementForLabel(top.getRoot(), - IProgramElement.Kind.ADVICE, + IProgramElement pe = top.findElementForLabel(top.getRoot(), IProgramElement.Kind.ADVICE, "before(): <anonymous pointcut>"); // add a line which shouldn't change the handle alter("JDTLikeHandleProvider", "inc1"); build("JDTLikeHandleProvider"); checkWasntFullBuild(); IHierarchy top2 = AsmManager.getDefault().getHierarchy(); - IProgramElement pe2 = top.findElementForLabel(top2.getRoot(), - IProgramElement.Kind.ADVICE, + IProgramElement pe2 = top.findElementForLabel(top2.getRoot(), IProgramElement.Kind.ADVICE, "before(): <anonymous pointcut>"); - assertEquals("expected advice to be on line " - + pe.getSourceLocation().getLine() + 1 + " but was on " - + pe2.getSourceLocation().getLine(), pe.getSourceLocation() - .getLine() + 1, pe2.getSourceLocation().getLine()); - assertEquals("expected advice to have handle " - + pe.getHandleIdentifier() + " but found handle " - + pe2.getHandleIdentifier(), pe.getHandleIdentifier(), pe2 - .getHandleIdentifier()); + assertEquals("expected advice to be on line " + pe.getSourceLocation().getLine() + 1 + " but was on " + + pe2.getSourceLocation().getLine(), pe.getSourceLocation().getLine() + 1, pe2.getSourceLocation().getLine()); + assertEquals("expected advice to have handle " + pe.getHandleIdentifier() + " but found handle " + + pe2.getHandleIdentifier(), pe.getHandleIdentifier(), pe2.getHandleIdentifier()); } finally { AsmManager.getDefault().setHandleProvider(handleProvider); } } public void testSwappingAdviceAndHandles_pr141730() { - IElementHandleProvider handleProvider = AsmManager.getDefault() - .getHandleProvider(); + IElementHandleProvider handleProvider = AsmManager.getDefault().getHandleProvider(); AsmManager.getDefault().setHandleProvider(new JDTLikeHandleProvider()); try { initialiseProject("JDTLikeHandleProvider"); build("JDTLikeHandleProvider"); IHierarchy top = AsmManager.getDefault().getHierarchy(); - IProgramElement call = top.findElementForLabel(top.getRoot(), - IProgramElement.Kind.ADVICE, "after(): callPCD.."); - IProgramElement exec = top.findElementForLabel(top.getRoot(), - IProgramElement.Kind.ADVICE, "after(): execPCD.."); + IProgramElement call = top.findElementForLabel(top.getRoot(), IProgramElement.Kind.ADVICE, "after(): callPCD.."); + IProgramElement exec = top.findElementForLabel(top.getRoot(), IProgramElement.Kind.ADVICE, "after(): execPCD.."); // swap the two after advice statements over. This forces // a full build which means 'after(): callPCD..' will now // be the second after advice in the file and have the same @@ -1612,34 +1416,22 @@ public class MultiProjectIncrementalTests extends checkWasFullBuild(); IHierarchy top2 = AsmManager.getDefault().getHierarchy(); - IProgramElement newCall = top2.findElementForLabel(top2.getRoot(), - IProgramElement.Kind.ADVICE, "after(): callPCD.."); - IProgramElement newExec = top2.findElementForLabel(top2.getRoot(), - IProgramElement.Kind.ADVICE, "after(): execPCD.."); - - assertEquals( - "after swapping places, expected 'after(): callPCD..' " - + "to be on line " - + newExec.getSourceLocation().getLine() - + " but was on line " - + call.getSourceLocation().getLine(), newExec - .getSourceLocation().getLine(), call - .getSourceLocation().getLine()); - assertEquals( - "after swapping places, expected 'after(): callPCD..' " - + "to have handle " + exec.getHandleIdentifier() - + " (because was full build) but had " - + newCall.getHandleIdentifier(), exec - .getHandleIdentifier(), newCall - .getHandleIdentifier()); + IProgramElement newCall = top2.findElementForLabel(top2.getRoot(), IProgramElement.Kind.ADVICE, "after(): callPCD.."); + IProgramElement newExec = top2.findElementForLabel(top2.getRoot(), IProgramElement.Kind.ADVICE, "after(): execPCD.."); + + assertEquals("after swapping places, expected 'after(): callPCD..' " + "to be on line " + + newExec.getSourceLocation().getLine() + " but was on line " + call.getSourceLocation().getLine(), newExec + .getSourceLocation().getLine(), call.getSourceLocation().getLine()); + assertEquals("after swapping places, expected 'after(): callPCD..' " + "to have handle " + exec.getHandleIdentifier() + + " (because was full build) but had " + newCall.getHandleIdentifier(), exec.getHandleIdentifier(), newCall + .getHandleIdentifier()); } finally { AsmManager.getDefault().setHandleProvider(handleProvider); } } public void testInitializerCountForJDTLikeHandleProvider_pr141730() { - IElementHandleProvider handleProvider = AsmManager.getDefault() - .getHandleProvider(); + IElementHandleProvider handleProvider = AsmManager.getDefault().getHandleProvider(); AsmManager.getDefault().setHandleProvider(new JDTLikeHandleProvider()); try { initialiseProject("JDTLikeHandleProvider"); @@ -1647,22 +1439,18 @@ public class MultiProjectIncrementalTests extends String expected = "=JDTLikeHandleProvider<pkg*A.aj[C|1"; IHierarchy top = AsmManager.getDefault().getHierarchy(); - IProgramElement init = top.findElementForLabel(top.getRoot(), - IProgramElement.Kind.INITIALIZER, "..."); - assertEquals("expected initializers handle to be " + expected + "," - + " but found " + init.getHandleIdentifier(true), expected, - init.getHandleIdentifier(true)); + IProgramElement init = top.findElementForLabel(top.getRoot(), IProgramElement.Kind.INITIALIZER, "..."); + assertEquals("expected initializers handle to be " + expected + "," + " but found " + init.getHandleIdentifier(true), + expected, init.getHandleIdentifier(true)); alter("JDTLikeHandleProvider", "inc2"); build("JDTLikeHandleProvider"); checkWasFullBuild(); IHierarchy top2 = AsmManager.getDefault().getHierarchy(); - IProgramElement init2 = top2.findElementForLabel(top2.getRoot(), - IProgramElement.Kind.INITIALIZER, "..."); - assertEquals("expected initializers handle to still be " + expected - + "," + " but found " + init2.getHandleIdentifier(true), - expected, init2.getHandleIdentifier(true)); + IProgramElement init2 = top2.findElementForLabel(top2.getRoot(), IProgramElement.Kind.INITIALIZER, "..."); + assertEquals("expected initializers handle to still be " + expected + "," + " but found " + + init2.getHandleIdentifier(true), expected, init2.getHandleIdentifier(true)); } finally { AsmManager.getDefault().setHandleProvider(handleProvider); @@ -1677,8 +1465,7 @@ public class MultiProjectIncrementalTests extends // Step1. Build the code, simple advice from aspect A onto class C initialiseProject("PR134471"); - configureNonStandardCompileOptions("PR134471", - "-showWeaveInfo -emacssym"); + configureNonStandardCompileOptions("PR134471", "-showWeaveInfo -emacssym"); configureShowWeaveInfoMessages("PR134471", true); build("PR134471"); @@ -1689,11 +1476,9 @@ public class MultiProjectIncrementalTests extends // Step3. Check the advice applying at the first 'code' join point // in pkg.C is from aspect pkg.A, line 7 - IProgramElement programElement = getFirstRelatedElement(findCode(checkForNode( - "pkg", "C", true))); + IProgramElement programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true))); int line = programElement.getSourceLocation().getLine(); - assertTrue("advice should be at line 7 - but is at line " + line, - line == 7); + assertTrue("advice should be at line 7 - but is at line " + line, line == 7); // Step4. Simulate the aspect being saved but with no change at all // in it @@ -1707,11 +1492,9 @@ public class MultiProjectIncrementalTests extends // Step6. Check the advice applying at the first 'code' join point // in pkg.C is from aspect pkg.A, line 7 - programElement = getFirstRelatedElement(findCode(checkForNode( - "pkg", "C", true))); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true))); line = programElement.getSourceLocation().getLine(); - assertTrue("advice should be at line 7 - but is at line " + line, - line == 7); + assertTrue("advice should be at line 7 - but is at line " + line, line == 7); } finally { // see pr148027 AsmHierarchyBuilder.shouldAddUsesPointcut=true; } @@ -1723,17 +1506,14 @@ public class MultiProjectIncrementalTests extends // Step1. build the project initialiseProject("PR134471_2"); - configureNonStandardCompileOptions("PR134471_2", - "-showWeaveInfo -emacssym"); + configureNonStandardCompileOptions("PR134471_2", "-showWeaveInfo -emacssym"); configureShowWeaveInfoMessages("PR134471_2", true); build("PR134471_2"); // Step2. confirm advice is from correct location - IProgramElement programElement = getFirstRelatedElement(findCode(checkForNode( - "pkg", "C", true))); + IProgramElement programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true))); int line = programElement.getSourceLocation().getLine(); - assertTrue("advice should be at line 7 - but is at line " + line, - line == 7); + assertTrue("advice should be at line 7 - but is at line " + line, line == 7); // Step3. No structural change to the aspect but the advice has moved // down a few lines... (change in source location) @@ -1751,11 +1531,9 @@ public class MultiProjectIncrementalTests extends // to until the handles are independent of location // Step4. Check we have correctly realised the advice moved to line 11 - programElement = getFirstRelatedElement(findCode(checkForNode("pkg", - "C", true))); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true))); line = programElement.getSourceLocation().getLine(); - assertTrue("advice should be at line 11 - but is at line " + line, - line == 11); + assertTrue("advice should be at line 11 - but is at line " + line, line == 11); } public void testAddingAndRemovingDecwWithStructureModel() { @@ -1763,14 +1541,12 @@ public class MultiProjectIncrementalTests extends build("P3"); alter("P3", "inc1"); build("P3"); - assertTrue("There should be no exceptions handled:\n" - + getCompilerErrorMessages("P3"), - getCompilerErrorMessages("P3").isEmpty()); + assertTrue("There should be no exceptions handled:\n" + getCompilerErrorMessages("P3"), getCompilerErrorMessages("P3") + .isEmpty()); alter("P3", "inc2"); build("P3"); - assertTrue("There should be no exceptions handled:\n" - + getCompilerErrorMessages("P3"), - getCompilerErrorMessages("P3").isEmpty()); + assertTrue("There should be no exceptions handled:\n" + getCompilerErrorMessages("P3"), getCompilerErrorMessages("P3") + .isEmpty()); } // same as first test with an extra stage that asks for C to be recompiled, @@ -1780,17 +1556,14 @@ public class MultiProjectIncrementalTests extends // see pr148027 AsmHierarchyBuilder.shouldAddUsesPointcut=false; // Step1. build the project initialiseProject("PR134471"); - configureNonStandardCompileOptions("PR134471", - "-showWeaveInfo -emacssym"); + configureNonStandardCompileOptions("PR134471", "-showWeaveInfo -emacssym"); configureShowWeaveInfoMessages("PR134471", true); build("PR134471"); // Step2. confirm advice is from correct location - IProgramElement programElement = getFirstRelatedElement(findCode(checkForNode( - "pkg", "C", true))); + IProgramElement programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true))); int line = programElement.getSourceLocation().getLine(); - assertTrue("advice should be at line 7 - but is at line " + line, - line == 7); + assertTrue("advice should be at line 7 - but is at line " + line, line == 7); // Step3. No change to the aspect at all alter("PR134471", "inc1"); @@ -1808,11 +1581,9 @@ public class MultiProjectIncrementalTests extends checkWasntFullBuild(); // Step6. confirm advice is from correct location - programElement = getFirstRelatedElement(findCode(checkForNode( - "pkg", "C", true))); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true))); line = programElement.getSourceLocation().getLine(); - assertTrue("advice should be at line 7 - but is at line " + line, - line == 7); + assertTrue("advice should be at line 7 - but is at line " + line, line == 7); } finally { // see pr148027 AsmHierarchyBuilder.shouldAddUsesPointcut=true; } @@ -1824,27 +1595,22 @@ public class MultiProjectIncrementalTests extends // Step1. build the project initialiseProject("PR134471_3"); - configureNonStandardCompileOptions("PR134471_3", - "-showWeaveInfo -emacssym"); + configureNonStandardCompileOptions("PR134471_3", "-showWeaveInfo -emacssym"); configureShowWeaveInfoMessages("PR134471_3", true); build("PR134471_3"); checkWasFullBuild(); // Step2. confirm declare warning is from correct location, decw matches // line 7 in pkg.C - IProgramElement programElement = getFirstRelatedElement(findCode( - checkForNode("pkg", "C", true), 7)); + IProgramElement programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 7)); int line = programElement.getSourceLocation().getLine(); - assertTrue("declare warning should be at line 10 - but is at line " - + line, line == 10); + assertTrue("declare warning should be at line 10 - but is at line " + line, line == 10); // Step3. confirm advice is from correct location, advice matches line 6 // in pkg.C - programElement = getFirstRelatedElement(findCode(checkForNode("pkg", - "C", true), 6)); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 6)); line = programElement.getSourceLocation().getLine(); - assertTrue("advice should be at line 7 - but is at line " + line, - line == 7); + assertTrue("advice should be at line 7 - but is at line " + line, line == 7); // Step4. Move declare warning in the aspect alter("PR134471_3", "inc1"); @@ -1860,11 +1626,9 @@ public class MultiProjectIncrementalTests extends // Step5. confirm declare warning is from correct location, decw (now at // line 12) in pkg.A matches line 7 in pkg.C - programElement = getFirstRelatedElement(findCode(checkForNode("pkg", - "C", true), 7)); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 7)); line = programElement.getSourceLocation().getLine(); - assertTrue("declare warning should be at line 12 - but is at line " - + line, line == 12); + assertTrue("declare warning should be at line 12 - but is at line " + line, line == 12); // Step6. Now just simulate 'resave' of the aspect, nothing has changed alter("PR134471_3", "inc2"); @@ -1873,11 +1637,9 @@ public class MultiProjectIncrementalTests extends // Step7. confirm declare warning is from correct location, decw (now at // line 12) in pkg.A matches line 7 in pkg.C - programElement = getFirstRelatedElement(findCode(checkForNode("pkg", - "C", true), 7)); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 7)); line = programElement.getSourceLocation().getLine(); - assertTrue("declare warning should be at line 12 - but is at line " - + line, line == 12); + assertTrue("declare warning should be at line 12 - but is at line " + line, line == 12); } // similar to previous test but with 'declare warning' as well as advice @@ -1885,27 +1647,22 @@ public class MultiProjectIncrementalTests extends // Step1. build the project initialiseProject("PR134471_3"); - configureNonStandardCompileOptions("PR134471_3", - "-showWeaveInfo -emacssym"); + configureNonStandardCompileOptions("PR134471_3", "-showWeaveInfo -emacssym"); configureShowWeaveInfoMessages("PR134471_3", true); build("PR134471_3"); checkWasFullBuild(); // Step2. confirm declare warning is from correct location, decw matches // line 7 in pkg.C - IProgramElement programElement = getFirstRelatedElement(findCode( - checkForNode("pkg", "C", true), 7)); + IProgramElement programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 7)); int line = programElement.getSourceLocation().getLine(); - assertTrue("declare warning should be at line 10 - but is at line " - + line, line == 10); + assertTrue("declare warning should be at line 10 - but is at line " + line, line == 10); // Step3. confirm advice is from correct location, advice matches line 6 // in pkg.C - programElement = getFirstRelatedElement(findCode(checkForNode("pkg", - "C", true), 6)); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 6)); line = programElement.getSourceLocation().getLine(); - assertTrue("advice should be at line 7 - but is at line " + line, - line == 7); + assertTrue("advice should be at line 7 - but is at line " + line, line == 7); // Step4. Move declare warning in the aspect alter("PR134471_3", "inc1"); @@ -1921,11 +1678,9 @@ public class MultiProjectIncrementalTests extends // Step5. confirm declare warning is from correct location, decw (now at // line 12) in pkg.A matches line 7 in pkg.C - programElement = getFirstRelatedElement(findCode(checkForNode("pkg", - "C", true), 7)); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 7)); line = programElement.getSourceLocation().getLine(); - assertTrue("declare warning should be at line 12 - but is at line " - + line, line == 12); + assertTrue("declare warning should be at line 12 - but is at line " + line, line == 12); // Step6. Now just simulate 'resave' of the aspect, nothing has changed alter("PR134471_3", "inc2"); @@ -1934,11 +1689,9 @@ public class MultiProjectIncrementalTests extends // Step7. confirm declare warning is from correct location, decw (now at // line 12) in pkg.A matches line 7 in pkg.C - programElement = getFirstRelatedElement(findCode(checkForNode("pkg", - "C", true), 7)); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 7)); line = programElement.getSourceLocation().getLine(); - assertTrue("declare warning should be at line 12 - but is at line " - + line, line == 12); + assertTrue("declare warning should be at line 12 - but is at line " + line, line == 12); // Step8. Now just simulate resave of the pkg.C type - no change at // all... are relationships gonna be repaired OK? @@ -1948,11 +1701,9 @@ public class MultiProjectIncrementalTests extends // Step9. confirm declare warning is from correct location, decw (now at // line 12) in pkg.A matches line 7 in pkg.C - programElement = getFirstRelatedElement(findCode(checkForNode("pkg", - "C", true), 7)); + programElement = getFirstRelatedElement(findCode(checkForNode("pkg", "C", true), 7)); line = programElement.getSourceLocation().getLine(); - assertTrue("declare warning should be at line 12 - but is at line " - + line, line == 12); + assertTrue("declare warning should be at line 12 - but is at line " + line, line == 12); } public void testDontLoseXlintWarnings_pr141556() { @@ -1960,12 +1711,10 @@ public class MultiProjectIncrementalTests extends configureNonStandardCompileOptions("PR141556", "-Xlint:warning"); build("PR141556"); checkWasFullBuild(); - String warningMessage = "can not build thisJoinPoint " - + "lazily for this advice since it has no suitable guard " + String warningMessage = "can not build thisJoinPoint " + "lazily for this advice since it has no suitable guard " + "[Xlint:noGuardForLazyTjp]"; - assertEquals("warning message should be '" + warningMessage + "'", - warningMessage, ((IMessage) getWarningMessages("PR141556").get( - 0)).getMessage()); + assertEquals("warning message should be '" + warningMessage + "'", warningMessage, ((IMessage) getWarningMessages( + "PR141556").get(0)).getMessage()); // add a space to the Aspect but dont do a build alter("PR141556", "inc1"); @@ -1974,19 +1723,16 @@ public class MultiProjectIncrementalTests extends // build the project and we should not have lost the xlint warning build("PR141556"); checkWasntFullBuild(); - assertTrue("there should still be a warning message ", - !getWarningMessages("PR141556").isEmpty()); - assertEquals("warning message should be '" + warningMessage + "'", - warningMessage, ((IMessage) getWarningMessages("PR141556").get( - 0)).getMessage()); + assertTrue("there should still be a warning message ", !getWarningMessages("PR141556").isEmpty()); + assertEquals("warning message should be '" + warningMessage + "'", warningMessage, ((IMessage) getWarningMessages( + "PR141556").get(0)).getMessage()); } public void testAdviceDidNotMatch_pr152589() { initialiseProject("PR152589"); build("PR152589"); List warnings = getWarningMessages("PR152589"); - assertTrue("There should be no warnings:\n" + warnings, warnings - .isEmpty()); + assertTrue("There should be no warnings:\n" + warnings, warnings.isEmpty()); alter("PR152589", "inc1"); build("PR152589"); if (AsmManager.getDefault().getHandleProvider().dependsOnLocation()) @@ -1998,8 +1744,7 @@ public class MultiProjectIncrementalTests extends // checkWasFullBuild(); warnings = getWarningMessages("PR152589"); - assertTrue("There should be no warnings after adding a whitespace:\n" - + warnings, warnings.isEmpty()); + assertTrue("There should be no warnings after adding a whitespace:\n" + warnings, warnings.isEmpty()); } // see comment #11 of bug 154054 @@ -2021,36 +1766,31 @@ public class MultiProjectIncrementalTests extends } public void testPR158573() { - IElementHandleProvider handleProvider = AsmManager.getDefault() - .getHandleProvider(); + IElementHandleProvider handleProvider = AsmManager.getDefault().getHandleProvider(); AsmManager.getDefault().setHandleProvider(new JDTLikeHandleProvider()); initialiseProject("PR158573"); build("PR158573"); List warnings = getWarningMessages("PR158573"); - assertTrue("There should be no warnings:\n" + warnings, warnings - .isEmpty()); + assertTrue("There should be no warnings:\n" + warnings, warnings.isEmpty()); alter("PR158573", "inc1"); build("PR158573"); checkWasntFullBuild(); warnings = getWarningMessages("PR158573"); - assertTrue("There should be no warnings after changing the value of a " - + "variable:\n" + warnings, warnings.isEmpty()); + assertTrue("There should be no warnings after changing the value of a " + "variable:\n" + warnings, warnings.isEmpty()); AsmManager.getDefault().setHandleProvider(handleProvider); } /** - * If the user has specified that they want Java 6 compliance and kept the - * default classfile and source file level settings (also 6.0) then expect - * an error saying that we don't support java 6. + * If the user has specified that they want Java 6 compliance and kept the default classfile and source file level settings + * (also 6.0) then expect an error saying that we don't support java 6. */ public void testPR164384_1() { initialiseProject("PR164384"); Hashtable javaOptions = new Hashtable(); javaOptions.put("org.eclipse.jdt.core.compiler.compliance", "1.6"); - javaOptions.put("org.eclipse.jdt.core.compiler.codegen.targetPlatform", - "1.6"); + javaOptions.put("org.eclipse.jdt.core.compiler.codegen.targetPlatform", "1.6"); javaOptions.put("org.eclipse.jdt.core.compiler.source", "1.6"); configureJavaOptionsMap("PR164384", javaOptions); @@ -2058,71 +1798,61 @@ public class MultiProjectIncrementalTests extends List errors = getErrorMessages("PR164384"); if (getCompilerForProjectWithName("PR164384").isJava6Compatible()) { - assertTrue("There should be no errors:\n" + errors, errors - .isEmpty()); + assertTrue("There should be no errors:\n" + errors, errors.isEmpty()); } else { String expectedError = "Java 6.0 compliance level is unsupported"; String found = ((IMessage) errors.get(0)).getMessage(); - assertEquals("Expected 'Java 6.0 compliance level is unsupported'" - + " error message but found " + found, expectedError, found); + assertEquals("Expected 'Java 6.0 compliance level is unsupported'" + " error message but found " + found, + expectedError, found); // This is because the 'Java 6.0 compliance' error is an 'error' // rather than an 'abort'. Aborts are really for compiler // exceptions. - assertTrue( - "expected there to be more than the one compliance level" - + " error but only found that one", + assertTrue("expected there to be more than the one compliance level" + " error but only found that one", errors.size() > 1); } } /** - * If the user has specified that they want Java 6 compliance and selected - * classfile and source file level settings to be 5.0 then expect an error - * saying that we don't support java 6. + * If the user has specified that they want Java 6 compliance and selected classfile and source file level settings to be 5.0 + * then expect an error saying that we don't support java 6. */ public void testPR164384_2() { initialiseProject("PR164384"); Hashtable javaOptions = new Hashtable(); javaOptions.put("org.eclipse.jdt.core.compiler.compliance", "1.6"); - javaOptions.put("org.eclipse.jdt.core.compiler.codegen.targetPlatform", - "1.5"); + javaOptions.put("org.eclipse.jdt.core.compiler.codegen.targetPlatform", "1.5"); javaOptions.put("org.eclipse.jdt.core.compiler.source", "1.5"); configureJavaOptionsMap("PR164384", javaOptions); build("PR164384"); List errors = getErrorMessages("PR164384"); if (getCompilerForProjectWithName("PR164384").isJava6Compatible()) { - assertTrue("There should be no errors:\n" + errors, errors - .isEmpty()); + assertTrue("There should be no errors:\n" + errors, errors.isEmpty()); } else { String expectedError = "Java 6.0 compliance level is unsupported"; String found = ((IMessage) errors.get(0)).getMessage(); - assertEquals("Expected 'Java 6.0 compliance level is unsupported'" - + " error message but found " + found, expectedError, found); + assertEquals("Expected 'Java 6.0 compliance level is unsupported'" + " error message but found " + found, + expectedError, found); // This is because the 'Java 6.0 compliance' error is an 'error' // rather than an 'abort'. Aborts are really for compiler // exceptions. - assertTrue( - "expected there to be more than the one compliance level" - + " error but only found that one", + assertTrue("expected there to be more than the one compliance level" + " error but only found that one", errors.size() > 1); } } /** - * If the user has specified that they want Java 6 compliance and set the - * classfile level to be 6.0 and source file level to be 5.0 then expect an - * error saying that we don't support java 6. + * If the user has specified that they want Java 6 compliance and set the classfile level to be 6.0 and source file level to be + * 5.0 then expect an error saying that we don't support java 6. */ public void testPR164384_3() { initialiseProject("PR164384"); Hashtable javaOptions = new Hashtable(); javaOptions.put("org.eclipse.jdt.core.compiler.compliance", "1.6"); - javaOptions.put("org.eclipse.jdt.core.compiler.codegen.targetPlatform", - "1.6"); + javaOptions.put("org.eclipse.jdt.core.compiler.codegen.targetPlatform", "1.6"); javaOptions.put("org.eclipse.jdt.core.compiler.source", "1.5"); configureJavaOptionsMap("PR164384", javaOptions); @@ -2130,19 +1860,16 @@ public class MultiProjectIncrementalTests extends List errors = getErrorMessages("PR164384"); if (getCompilerForProjectWithName("PR164384").isJava6Compatible()) { - assertTrue("There should be no errros:\n" + errors, errors - .isEmpty()); + assertTrue("There should be no errros:\n" + errors, errors.isEmpty()); } else { String expectedError = "Java 6.0 compliance level is unsupported"; String found = ((IMessage) errors.get(0)).getMessage(); - assertEquals("Expected 'Java 6.0 compliance level is unsupported'" - + " error message but found " + found, expectedError, found); + assertEquals("Expected 'Java 6.0 compliance level is unsupported'" + " error message but found " + found, + expectedError, found); // This is because the 'Java 6.0 compliance' error is an 'error' // rather than an 'abort'. Aborts are really for compiler // exceptions. - assertTrue( - "expected there to be more than the one compliance level" - + " error but only found that one", + assertTrue("expected there to be more than the one compliance level" + " error but only found that one", errors.size() > 1); } } @@ -2150,10 +1877,8 @@ public class MultiProjectIncrementalTests extends public void testPr168840() throws Exception { initialiseProject("inpathTesting"); - String inpathTestingDir = getWorkingDir() + File.separator - + "inpathTesting"; - String inpathDir = inpathTestingDir + File.separator + "injarBin" - + File.separator + "pkg"; + String inpathTestingDir = getWorkingDir() + File.separator + "inpathTesting"; + String inpathDir = inpathTestingDir + File.separator + "injarBin" + File.separator + "pkg"; String expectedOutputDir = inpathTestingDir + File.separator + "bin"; // set up the inpath to have the directory on it's path @@ -2164,15 +1889,12 @@ public class MultiProjectIncrementalTests extends build("inpathTesting"); // the declare warning matches one place so expect one warning message List warnings = getWarningMessages("inpathTesting"); - assertTrue("Expected there to be one warning message but found " - + warnings.size() + ": " + warnings, warnings.size() == 1); + assertTrue("Expected there to be one warning message but found " + warnings.size() + ": " + warnings, warnings.size() == 1); // copy over the updated version of the inpath class file - File from = new File(testdataSrcDir + File.separatorChar - + "inpathTesting" + File.separatorChar + "newInpathClass" + File from = new File(testdataSrcDir + File.separatorChar + "inpathTesting" + File.separatorChar + "newInpathClass" + File.separatorChar + "InpathClass.class"); - File destination = new File(inpathDir + File.separatorChar - + "InpathClass.class"); + File destination = new File(inpathDir + File.separatorChar + "InpathClass.class"); FileUtil.copyFile(from, destination); build("inpathTesting"); @@ -2181,47 +1903,36 @@ public class MultiProjectIncrementalTests extends // two // places, therefore expect two warning messages warnings = getWarningMessages("inpathTesting"); - assertTrue("Expected there to be two warning message but found " - + warnings.size() + ": " + warnings, warnings.size() == 2); + assertTrue("Expected there to be two warning message but found " + warnings.size() + ": " + warnings, warnings.size() == 2); } // --- helper code --- /** - * Retrieve program elements related to this one regardless of the - * relationship. A JUnit assertion is made that the number that the - * 'expected' number are found. + * Retrieve program elements related to this one regardless of the relationship. A JUnit assertion is made that the number that + * the 'expected' number are found. * - * @param programElement - * Program element whose related elements are to be found - * @param expected - * the number of expected related elements + * @param programElement Program element whose related elements are to be found + * @param expected the number of expected related elements */ - private List/* IProgramElement */getRelatedElements( - IProgramElement programElement, int expected) { + private List/* IProgramElement */getRelatedElements(IProgramElement programElement, int expected) { List relatedElements = getRelatedElements(programElement); StringBuffer debugString = new StringBuffer(); if (relatedElements != null) { for (Iterator iter = relatedElements.iterator(); iter.hasNext();) { String element = (String) iter.next(); - debugString.append( - AsmManager.getDefault().getHierarchy() - .findElementForHandle(element).toLabelString()) - .append("\n"); + debugString.append(AsmManager.getDefault().getHierarchy().findElementForHandle(element).toLabelString()).append( + "\n"); } } - assertTrue("Should be " + expected + " element" - + (expected > 1 ? "s" : "") + " related to this one '" - + programElement + "' but found :\n " + debugString, - relatedElements != null && relatedElements.size() == 1); + assertTrue("Should be " + expected + " element" + (expected > 1 ? "s" : "") + " related to this one '" + programElement + + "' but found :\n " + debugString, relatedElements != null && relatedElements.size() == 1); return relatedElements; } - private IProgramElement getFirstRelatedElement( - IProgramElement programElement) { + private IProgramElement getFirstRelatedElement(IProgramElement programElement) { List rels = getRelatedElements(programElement, 1); - return AsmManager.getDefault().getHierarchy().findElementForHandle( - (String) rels.get(0)); + return AsmManager.getDefault().getHierarchy().findElementForHandle((String) rels.get(0)); } private List/* IProgramElement */getRelatedElements(IProgramElement advice) { @@ -2261,22 +1972,19 @@ public class MultiProjectIncrementalTests extends } /** - * Finds the first 'code' program element below the element supplied - will - * return null if there aren't any + * Finds the first 'code' program element below the element supplied - will return null if there aren't any */ private IProgramElement findCode(IProgramElement ipe) { return findCode(ipe, -1); } /** - * Searches a hierarchy of program elements for a 'code' element at the - * specified line number, a line number of -1 means just return the first - * one you find + * Searches a hierarchy of program elements for a 'code' element at the specified line number, a line number of -1 means just + * return the first one you find */ private IProgramElement findCode(IProgramElement ipe, int linenumber) { if (ipe.getKind() == IProgramElement.Kind.CODE) { - if (linenumber == -1 - || ipe.getSourceLocation().getLine() == linenumber) + if (linenumber == -1 || ipe.getSourceLocation().getLine() == linenumber) return ipe; } List kids = ipe.getChildren(); @@ -2293,31 +2001,26 @@ public class MultiProjectIncrementalTests extends // - memory usage (freemem calls?) // - relationship map - //-------------------------------------------------------------------------- + // -------------------------------------------------------------------------- // ------------------------- - private IProgramElement checkForNode(String packageName, String typeName, - boolean shouldBeFound) { - IProgramElement ipe = AsmManager.getDefault().getHierarchy() - .findElementForType(packageName, typeName); + private IProgramElement checkForNode(String packageName, String typeName, boolean shouldBeFound) { + IProgramElement ipe = AsmManager.getDefault().getHierarchy().findElementForType(packageName, typeName); if (shouldBeFound) { if (ipe == null) printModel(); - assertTrue("Should have been able to find '" + packageName + "." - + typeName + "' in the asm", ipe != null); + assertTrue("Should have been able to find '" + packageName + "." + typeName + "' in the asm", ipe != null); } else { if (ipe != null) printModel(); - assertTrue("Should have NOT been able to find '" + packageName - + "." + typeName + "' in the asm", ipe == null); + assertTrue("Should have NOT been able to find '" + packageName + "." + typeName + "' in the asm", ipe == null); } return ipe; } private void printModel() { try { - AsmManager.dumptree(AsmManager.getDefault().getHierarchy() - .getRoot(), 0); + AsmManager.dumptree(AsmManager.getDefault().getHierarchy().getRoot(), 0); } catch (IOException e) { e.printStackTrace(); } @@ -2339,9 +2042,7 @@ public class MultiProjectIncrementalTests extends } private void assertNoErrors(String projectName) { - assertTrue("Should be no errors, but got " - + getErrorMessages(projectName), getErrorMessages(projectName) - .size() == 0); + assertTrue("Should be no errors, but got " + getErrorMessages(projectName), getErrorMessages(projectName).size() == 0); } }
\ No newline at end of file diff --git a/tests/src/org/aspectj/systemtest/model/ModelTests.java b/tests/src/org/aspectj/systemtest/model/ModelTests.java index d4f597bd3..36d042121 100644 --- a/tests/src/org/aspectj/systemtest/model/ModelTests.java +++ b/tests/src/org/aspectj/systemtest/model/ModelTests.java @@ -20,10 +20,11 @@ import org.aspectj.weaver.World; /** * Tests the model when there is no requirement on Java5 features. - * @see org.aspectj.systemtest.model.ModelTestCase + * + * @see org.aspectj.systemtest.model.ModelTestCase */ public class ModelTests extends ModelTestCase { - + static { // Switch this to true for a single iteration if you want to reconstruct the // 'expected model' files. @@ -32,10 +33,21 @@ public class ModelTests extends ModelTestCase { debugTest = false; } - public void testAdviceInStructureModelWithAnonymousInnerClass_pr77269() {runModelTest("advice in structure model with anonymous inner class","pr77269_1");} - public void testAdviceInStructureModelWithNamedInnerClass_pr77269() {runModelTest("advice in structure model with named inner class","pr77269_2");} - public void testDWInStructureModelWithAnonymousInnerClass_pr77269() {runModelTest("declare warning in structure model with anonymous inner class","pr77269_3");} - public void testNewIProgramElementMethods_pr141730() {runModelTest("new iprogramelement methods","pr141730_1");} + public void testAdviceInStructureModelWithAnonymousInnerClass_pr77269() { + runModelTest("advice in structure model with anonymous inner class", "pr77269_1"); + } + + public void testAdviceInStructureModelWithNamedInnerClass_pr77269() { + runModelTest("advice in structure model with named inner class", "pr77269_2"); + } + + public void testDWInStructureModelWithAnonymousInnerClass_pr77269() { + runModelTest("declare warning in structure model with anonymous inner class", "pr77269_3"); + } + + public void testNewIProgramElementMethods_pr141730() { + runModelTest("new iprogramelement methods", "pr141730_1"); + } // if not filling in the model for aspects contained in jar files then // want to ensure that the relationship map is correct and has nodes @@ -44,12 +56,12 @@ public class ModelTests extends ModelTestCase { public void testAspectPathRelWhenNotFillingInModel_pr141730() { World.createInjarHierarchy = false; try { - runModelTest("ensure aspectpath injar relationships are correct when not filling in model","pr141730_3"); + runModelTest("ensure aspectpath injar relationships are correct when not filling in model", "pr141730_3"); } finally { World.createInjarHierarchy = true; } } - + public void testPCDInClassAppearsInModel_pr148027() { boolean b = AsmHierarchyBuilder.shouldAddUsesPointcut; AsmHierarchyBuilder.shouldAddUsesPointcut = true; @@ -61,20 +73,36 @@ public class ModelTests extends ModelTestCase { AsmHierarchyBuilder.shouldAddUsesPointcut = b; } } - -// public void testInpathAdvisedCode_prX() { runModelTest("inpath advised elements","prX"); } - - public void testSourceLocationAndJarFile_pr145963() {runModelTest("sourcelocation and jar file","pr145963_1");} - public void testSourceLocationAndClassFile_pr145963() {runModelTest("sourcelocation and class file","pr145963_2");} - public void testAspectInDefaultPackage_pr145963() {runModelTest("aspect in default package", "pr145963_3");} - public void testAspectInJavaFile_pr145963() {runModelTest("aspect in java file", "pr145963_4");} - - public void testAbstractAspectsAndAdvice_pr160469() {runModelTest("ensure advice from abstract aspects appear correctly in the model","pr160469_1");} - public void testAbstractAspectsAndDeow_pr160469() {runModelTest("ensure deow from abstract aspects appear correctly in the model","pr160469_2");} - - //public void testMultipleIdenticalJpsOnOneLine_pr238054() { runModelTest("multiple identical jps on one line","pr238054");} - - ///////////////////////////////////////// + + // public void testInpathAdvisedCode_prX() { runModelTest("inpath advised elements","prX"); } + + public void testSourceLocationAndJarFile_pr145963() { + runModelTest("sourcelocation and jar file", "pr145963_1"); + } + + public void testSourceLocationAndClassFile_pr145963() { + runModelTest("sourcelocation and class file", "pr145963_2"); + } + + public void testAspectInDefaultPackage_pr145963() { + runModelTest("aspect in default package", "pr145963_3"); + } + + public void testAspectInJavaFile_pr145963() { + runModelTest("aspect in java file", "pr145963_4"); + } + + public void testAbstractAspectsAndAdvice_pr160469() { + runModelTest("ensure advice from abstract aspects appear correctly in the model", "pr160469_1"); + } + + public void testAbstractAspectsAndDeow_pr160469() { + runModelTest("ensure deow from abstract aspects appear correctly in the model", "pr160469_2"); + } + + // public void testMultipleIdenticalJpsOnOneLine_pr238054() { runModelTest("multiple identical jps on one line","pr238054");} + + // /////////////////////////////////////// public static Test suite() { return XMLBasedAjcTestCase.loadSuite(ModelTests.class); } |