Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2012-04-09 11:17:24 +0000
committerStephan Herrmann2012-04-09 11:17:24 +0000
commitbbe9091dc96b7175dffa1d53a4680de7edefdbb8 (patch)
tree2a9b018e0ad2ab64a0ddc213e518467489bd507d /testplugins
parentff4d7d978ecb351c4f5ebbb0712459e839027021 (diff)
downloadorg.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')
-rw-r--r--testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/api/Reflection.java5
-rw-r--r--testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/regression/ReportedBugs.java39
-rw-r--r--testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/ExternalizedRoles.java162
-rw-r--r--testplugins/org.eclipse.objectteams.otdt.tests/otjld/org/eclipse/objectteams/otdt/tests/otjld/rolesandteams/FileStructure.java63
-rw-r--r--testplugins/org.eclipse.objectteams.otdt.tests/testresources/bug372786.jarbin0 -> 9572 bytes
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
new file mode 100644
index 000000000..ba1043074
--- /dev/null
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/testresources/bug372786.jar
Binary files differ

Back to the top