[releng] Disable test that triggers UML Bug 547424
diff --git a/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/genmodel/OCLGenModelUtil.java b/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/genmodel/OCLGenModelUtil.java
index 2052cba..30cc2aa 100644
--- a/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/genmodel/OCLGenModelUtil.java
+++ b/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/genmodel/OCLGenModelUtil.java
@@ -48,9 +48,10 @@
public abstract class OCLGenModelUtil
{
public static @NonNull OCLGenModelUtil INSTANCE =
- GenRuntimeVersion.get("2.17") != null ? new EMF_CodeGen_2_17() :
- GenRuntimeVersion.get("2.16") != null ? new EMF_CodeGen_2_16() :
- GenRuntimeVersion.get("2.14") != null ? new EMF_CodeGen_2_14() :
+ GenRuntimeVersion.get("2.25") != null ? new EMF_CodeGen_2_25() : // 2021-03
+ GenRuntimeVersion.get("2.17") != null ? new EMF_CodeGen_2_17() : // 2019-03
+ GenRuntimeVersion.get("2.16") != null ? new EMF_CodeGen_2_16() : // 2018-12
+ GenRuntimeVersion.get("2.14") != null ? new EMF_CodeGen_2_14() : // Photon
new EMF_CodeGen_Default();
public static final @NonNull String OCL_GENMODEL_COPY_AND_PASTE_URI = OCLinEcoreGenModelGeneratorAdapter.OCL_GENMODEL_URI + "/CopyAndPaste";
@@ -329,6 +330,7 @@
public abstract boolean hasAPIDeprecatedTag(GenBase genBase);
public abstract boolean hasAPIDeprecatedTag(Collection<?>... elements);
public abstract boolean hasAPITags(GenBase genBase);
+ public abstract boolean hasDoubleOverrideBug547424();
public abstract boolean hasImplicitAPITags(GenBase genBase);
public abstract boolean hasImplicitAPITags(GenBase genBase, boolean excludeOwnDocumentation);
public abstract boolean hasImplicitAPIDeprecatedTag(GenBase genBase);
@@ -394,6 +396,11 @@
}
@Override
+ public boolean hasDoubleOverrideBug547424() {
+ return false;
+ }
+
+ @Override
public boolean hasImplicitAPITags(GenBase genBase) {
return false;
}
@@ -493,6 +500,11 @@
private static class EMF_CodeGen_2_16 extends EMF_CodeGen_2_14
{
@Override
+ public boolean hasDoubleOverrideBug547424() {
+ return true; // Pre 2018-12 there were no overrides at all.
+ }
+
+ @Override
public boolean useInterfaceOverrideAnnotation(GenModel genModel) {
return genModel.useInterfaceOverrideAnnotation();
}
@@ -509,4 +521,16 @@
return true;
}
}
+
+ /**
+ * EMF_CodeGen_2_25 redirects GenModel facilities available in an EMF >= 2.25 platform to the
+ * standard implementation.
+ */
+ private static class EMF_CodeGen_2_25 extends EMF_CodeGen_2_17
+ {
+ @Override
+ public boolean hasDoubleOverrideBug547424() {
+ return false; // Fixed in UML 5.6.0 for 2021-03
+ }
+ }
}
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
index 9062007..6e184d5 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/test/xtext/UsageTests.java
@@ -1189,6 +1189,10 @@
* Verify that the static profile in Bug570891.uml model can be generated and compiled.
*/
public void testBug570891_uml() throws Throwable {
+ if (OCLGenModelUtil.INSTANCE.hasDoubleOverrideBug547424()) { // Avoid UML BUG 547424
+ System.err.println(getName() + " has been disabled -see UML Bug 547424");
+ return;
+ }
doTestRunnable(new TestRunnable() {
@Override
public void runWithThrowable() throws Exception {