diff options
author | Stephan Herrmann | 2012-04-09 11:17:24 +0000 |
---|---|---|
committer | Stephan Herrmann | 2012-04-09 11:17:24 +0000 |
commit | bbe9091dc96b7175dffa1d53a4680de7edefdbb8 (patch) | |
tree | 2a9b018e0ad2ab64a0ddc213e518467489bd507d /testplugins | |
parent | ff4d7d978ecb351c4f5ebbb0712459e839027021 (diff) | |
download | org.eclipse.objectteams-bbe9091dc96b7175dffa1d53a4680de7edefdbb8.tar.gz org.eclipse.objectteams-bbe9091dc96b7175dffa1d53a4680de7edefdbb8.tar.xz org.eclipse.objectteams-bbe9091dc96b7175dffa1d53a4680de7edefdbb8.zip |
Various fixes for Bug 372786 - NPE in AllocationExpression
.resolveAsRoleCreationExpression when working with OTDT source bundle
Diffstat (limited to 'testplugins')
5 files changed, 165 insertions, 104 deletions
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/api/Reflection.java b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/api/Reflection.java index 866f6379d..9b5c15d8c 100644 --- a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/api/Reflection.java +++ b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/api/Reflection.java @@ -833,6 +833,11 @@ public class Reflection extends AbstractOTJLDTest { " R<@t> r = t.getRole(o, R<@t>.class);\n" + " ^\n" + "Illegal parameterized use of non-public role R (OTJLD 1.2.3(b)).\n" + + "----------\n" + + "3. ERROR in Team923grm2gp_2.java (at line 8)\n" + + " r.print();\n" + + " ^\n" + + "The type R is not visible\n" + "----------\n"); } diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java index 1501ff2df..4b68113df 100644 --- a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java +++ b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java @@ -19,6 +19,7 @@ package org.eclipse.objectteams.otdt.tests.otjld.regression; import java.util.Map; import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.core.tests.util.Util; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; import org.eclipse.objectteams.otdt.tests.otjld.AbstractOTJLDTest; @@ -39,7 +40,7 @@ public class ReportedBugs extends AbstractOTJLDTest { // Static initializer to specify tests subset using TESTS_* static variables // All specified tests which does not belong to the class are skipped... static { -// TESTS_NAMES = new String[] { "testB11_sh9"}; +// TESTS_NAMES = new String[] { "testBug372786"}; // TESTS_NUMBERS = new int[] { 1459 }; // TESTS_RANGE = new int[] { 1097, -1 }; } @@ -52,6 +53,20 @@ public class ReportedBugs extends AbstractOTJLDTest { return ReportedBugs.class; } + + String[] getClassLibraries(String jarFilename) { + String destPath = this.outputRootDirectoryPath+"/regression"; + createOutputTestDirectory("/regression"); + // upload the jar: + Util.copy(getTestResourcePath(jarFilename), destPath); + // setup classpath: + String[] classPaths = getDefaultClassPaths(); + int l = classPaths.length; + System.arraycopy(classPaths, 0, classPaths=new String[l+1], 0, l); + classPaths[l] = this.outputRootDirectoryPath+"/regression/"+jarFilename; + return classPaths; + } + // reported against GebitProposalComputer - typo in testcase // B.1.1-otjld-sh-1f public void testB11_sh1f() { @@ -5218,5 +5233,25 @@ public class ReportedBugs extends AbstractOTJLDTest { }, "Adaptation"); } - + public void testBug372786() { + runNegativeTest( + new String[] { + "TBug372786.java", + "import jarred.TeamBug372786;\n" + + "public class TBug372786 {\n" + + " TeamBug372786 t;\n" + + " void test() {\n" + + " t.run();\n" + + " }\n" + + "}\n" + }, + "----------\n" + + "1. ERROR in TBug372786.java (at line 1)\n" + + " import jarred.TeamBug372786;\n" + + " ^\n" + + "The type notjarred.Missing cannot be resolved. It is indirectly referenced from required .class files\n" + + "----------\n", + getClassLibraries("bug372786.jar"), + false); + } } diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/ExternalizedRoles.java b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/ExternalizedRoles.java index f8a3f9301..7e0e1559b 100644 --- a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/ExternalizedRoles.java +++ b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/ExternalizedRoles.java @@ -1455,77 +1455,97 @@ public class ExternalizedRoles extends AbstractOTJLDTest { "}\n" + " \n" }, - "----------\n" + - "1. ERROR in Team167ratb5f_2.java (at line 8)\n" + - " R<@base> r = getR2(getR1());\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "2. ERROR in Team167ratb5f_2.java (at line 11)\n" + - " abstract R<@base> getR1();\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "3. ERROR in Team167ratb5f_2.java (at line 11)\n" + - " abstract R<@base> getR1();\n" + - " ^^^^^^^\n" + - "The abstract method getR1 in type R can only be defined by an abstract class\n" + - "----------\n" + - "4. ERROR in Team167ratb5f_2.java (at line 12)\n" + - " R<@base> getR1() -> R<@base> getR1();\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "5. ERROR in Team167ratb5f_2.java (at line 12)\n" + - " R<@base> getR1() -> R<@base> getR1();\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "6. ERROR in Team167ratb5f_2.java (at line 12)\n" + - " R<@base> getR1() -> R<@base> getR1();\n" + - " ^\n" + - "Method designator binds to a method returning R1<@tthis[Team167ratb5f_1]> whereas return type R is specified (OTJLD 3.1(c)).\n" + - "----------\n" + - "7. ERROR in Team167ratb5f_2.java (at line 13)\n" + - " abstract R<@base> getR2(R<@base> in);\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "8. ERROR in Team167ratb5f_2.java (at line 13)\n" + - " abstract R<@base> getR2(R<@base> in);\n" + - " ^^^^^^^^^^^^^^^^^^\n" + - "The abstract method getR2 in type R can only be defined by an abstract class\n" + - "----------\n" + - "9. ERROR in Team167ratb5f_2.java (at line 13)\n" + - " abstract R<@base> getR2(R<@base> in);\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "10. ERROR in Team167ratb5f_2.java (at line 14)\n" + - " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "11. ERROR in Team167ratb5f_2.java (at line 14)\n" + - " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "12. ERROR in Team167ratb5f_2.java (at line 14)\n" + - " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + - " ^\n" + - "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + - "----------\n" + - "13. ERROR in Team167ratb5f_2.java (at line 14)\n" + - " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + - " ^^^^^^^^^^^^^^^\n" + - "No method getR2() found in type Team167ratb5f_1 to resolve method designator (OTJLD 3.1(c)).\n" + - "----------\n" + - "14. ERROR in Team167ratb5f_2.java (at line 14)\n" + - " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + - " ^\n" + - "Syntax error on token \"1\", delete this token\n" + - "----------\n"); + "----------\n" + + "1. ERROR in Team167ratb5f_2.java (at line 3)\n" + + " public class R playedBy Team167ratb5f_1 {\n" + + " ^\n" + + "The type R must be an abstract class to define abstract methods\n" + + "----------\n" + + "2. ERROR in Team167ratb5f_2.java (at line 8)\n" + + " R<@base> r = getR2(getR1());\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "3. ERROR in Team167ratb5f_2.java (at line 8)\n" + + " R<@base> r = getR2(getR1());\n" + + " ^^^^^\n" + + "The method getR2(R<@tthis[Team167ratb5f_2]>) in the type Team167ratb5f_2.R is not applicable for the arguments (R)\n" + + "----------\n" + + "4. ERROR in Team167ratb5f_2.java (at line 9)\n" + + " r.test();\n" + + " ^\n" + + "The type R is not visible\n" + + "----------\n" + + "5. ERROR in Team167ratb5f_2.java (at line 11)\n" + + " abstract R<@base> getR1();\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "6. ERROR in Team167ratb5f_2.java (at line 11)\n" + + " abstract R<@base> getR1();\n" + + " ^^^^^^^^\n" + + "The return type is incompatible with Team167ratb5f_2.R.getR1()\n" + + "----------\n" + + "7. ERROR in Team167ratb5f_2.java (at line 12)\n" + + " R<@base> getR1() -> R<@base> getR1();\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "8. ERROR in Team167ratb5f_2.java (at line 12)\n" + + " R<@base> getR1() -> R<@base> getR1();\n" + + " ^\n" + + "Method designator binds to a method returning R whereas return type R is specified (OTJLD 3.1(c)).\n" + + "----------\n" + + "9. ERROR in Team167ratb5f_2.java (at line 12)\n" + + " R<@base> getR1() -> R<@base> getR1();\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "10. ERROR in Team167ratb5f_2.java (at line 12)\n" + + " R<@base> getR1() -> R<@base> getR1();\n" + + " ^\n" + + "Method designator binds to a method returning R1<@tthis[Team167ratb5f_1]> whereas return type R is specified (OTJLD 3.1(c)).\n" + + "----------\n" + + "11. ERROR in Team167ratb5f_2.java (at line 13)\n" + + " abstract R<@base> getR2(R<@base> in);\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "12. ERROR in Team167ratb5f_2.java (at line 13)\n" + + " abstract R<@base> getR2(R<@base> in);\n" + + " ^^^^^^^^^^^^^^^^^^\n" + + "The abstract method getR2 in type R can only be defined by an abstract class\n" + + "----------\n" + + "13. ERROR in Team167ratb5f_2.java (at line 13)\n" + + " abstract R<@base> getR2(R<@base> in);\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "14. ERROR in Team167ratb5f_2.java (at line 14)\n" + + " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "15. ERROR in Team167ratb5f_2.java (at line 14)\n" + + " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "16. ERROR in Team167ratb5f_2.java (at line 14)\n" + + " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + + " ^\n" + + "Illegal use of value parameter: type Team167ratb5f_2.R does not declare a value parameter at position 1 (OTJLD 9.2.1).\n" + + "----------\n" + + "17. ERROR in Team167ratb5f_2.java (at line 14)\n" + + " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + + " ^^^^^^^^^^^^^^^\n" + + "No method getR2() found in type Team167ratb5f_1 to resolve method designator (OTJLD 3.1(c)).\n" + + "----------\n" + + "18. ERROR in Team167ratb5f_2.java (at line 14)\n" + + " R<@base> getR2(R<@base> in) -> R<@base> getR2(R<@base>1 in); // here\n" + + " ^\n" + + "Syntax error on token \"1\", delete this token\n" + + "----------\n"); } // a role is externalized relative to the base reference - used in callin signature diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/FileStructure.java b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/FileStructure.java index 85b8de28d..0d3e53f0d 100644 --- a/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/FileStructure.java +++ b/testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/FileStructure.java @@ -1576,38 +1576,39 @@ public class FileStructure extends AbstractOTJLDTest { "protected class R1517nrf5 {}\n" + " \n" }, - "----------\n" + - "1. ERROR in "+convertedOutputPath+"p\\Team1517nrf5\\Mid1517nrf5.java (at line 3)\n" + - " public team class Mid1517nrf5 {}\n" + - " \n" + - " ^^^^^^^^^\n" + - "The return type is incompatible with Team1517nrf5.Mid1517nrf5.R1517nrf5()\n" + - "----------\n" + - "----------\n" + - "1. ERROR in "+convertedOutputPath+"p\\Team1517nrf5\\Mid1517nrf5\\R1517nrf5.java (at line 3)\n" + - " protected class R1517nrf5 {}\n" + - " ^^^^^^^^^\n" + - "Missing anchor (team instance) for role type p.Team1517nrf5.Mid1517nrf5.R1517nrf5 outside its team context (OTJLD 1.2.2(b)).\n" + - "----------\n" + + "----------\n" + + "1. ERROR in "+convertedOutputPath+"p\\Team1517nrf5.java (at line 4)\n" + + " \n" + + "\n" + + " ^^^\n" + + "Type mismatch: cannot convert from Mid1517nrf5<@tthis[Team1517nrf5]> to Mid1517nrf5<@tthis[Team1517nrf5]>\n" + + "----------\n" + + "----------\n" + + "1. ERROR in "+convertedOutputPath+"p\\Team1517nrf5\\Mid1517nrf5.java (at line 3)\n" + + " public team class Mid1517nrf5 {}\n" + + " \n" + + " ^^^^^^^^^\n" + + "The return type is incompatible with Team1517nrf5.Mid1517nrf5.R1517nrf5()\n" + + "----------\n" + // this is the main error message, the others are mostly caused by compilation order issues: - "----------\n" + - "1. ERROR in p\\Team1517nrf5\\Mid1517nrf5\\R1517nrf5\\Deep1517nrf5.java (at line 3)\n" + - " protected class Deep1517nrf5 {}\n" + - " ^^^^^^^^^^^^\n" + - "Member types not allowed in regular roles. Mark class p.Team1517nrf5.Mid1517nrf5.R1517nrf5 as a team if Deep1517nrf5 should be its role (OTJLD 1.5(a,b)). \n" + - "----------\n" + - "----------\n" + - "1. ERROR in p\\Team1517nrf5.java (at line 3)\n" + - " public team class Team1517nrf5 {}\n" + - " ^^^^^^^^^^^^\n" + - "The type Team1517nrf5 is already defined\n" + - "----------\n" + - "----------\n" + - "1. ERROR in p\\Team1517nrf5\\Mid1517nrf5.java (at line 3)\n" + - " public team class Mid1517nrf5 {}\n" + - " ^^^^^^^^^^^\n" + - "Duplicate nested type Mid1517nrf5\n" + - "----------\n"); + "----------\n" + + "1. ERROR in p\\Team1517nrf5\\Mid1517nrf5\\R1517nrf5\\Deep1517nrf5.java (at line 3)\n" + + " protected class Deep1517nrf5 {}\n" + + " ^^^^^^^^^^^^\n" + + "Member types not allowed in regular roles. Mark class p.Team1517nrf5.Mid1517nrf5.R1517nrf5 as a team if Deep1517nrf5 should be its role (OTJLD 1.5(a,b)). \n" + + "----------\n" + + "----------\n" + + "1. ERROR in p\\Team1517nrf5.java (at line 3)\n" + + " public team class Team1517nrf5 {}\n" + + " ^^^^^^^^^^^^\n" + + "The type Team1517nrf5 is already defined\n" + + "----------\n" + + "----------\n" + + "1. ERROR in p\\Team1517nrf5\\Mid1517nrf5.java (at line 3)\n" + + " public team class Mid1517nrf5 {}\n" + + " ^^^^^^^^^^^\n" + + "Duplicate nested type Mid1517nrf5\n" + + "----------\n"); } // empty classes - 4 levels : OK diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/testresources/bug372786.jar b/testplugins/org.eclipse.objectteams.otdt.tests/testresources/bug372786.jar Binary files differnew file mode 100644 index 000000000..ba1043074 --- /dev/null +++ b/testplugins/org.eclipse.objectteams.otdt.tests/testresources/bug372786.jar |