blob: 53d8bc3f5a8a5ffb7180beef45dc5915d237dbb5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2015 Borland Software Corporation and others
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Borland Software Corporation - initial API and implementation
* Christopher Gerking - bugs 302594, 309762, 377882, 388325, 392080, 392153
* 397215, 397959, 358709, 388801, 254962, 414555
* Alex Paperno - bugs 410470, 392429, 294127, 400720, 314443, 404647, 413131,
* 274105, 274505, 415029, 419299, 403440, 267917, 420970,
* 424584, 424869
*******************************************************************************/
package org.eclipse.m2m.tests.qvt.oml.transform;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.m2m.internal.qvt.oml.evaluator.QVTEvaluationOptions;
import org.eclipse.m2m.qvt.oml.util.IContext;
import org.eclipse.m2m.tests.qvt.oml.callapi.TestQvtExecutor;
import org.eclipse.m2m.tests.qvt.oml.transform.javaless.JavalessQvtTest;
import org.eclipse.m2m.tests.qvt.oml.transform.javaless.JavalessUtil;
/**
* @author pkobiakov
*/
public class TransformTests {
public static Test suite() {
return interpreterSuite();
}
public static TestSuite interpreterSuite() {
TestSuite suite = new TestSuite("QVT interpreter"); //$NON-NLS-1$
ModelTestData[] datas = createTestData();
suite.addTest(new TestFailedTransformation(new FileToFileData("scr878") { //$NON-NLS-1$
@Override
public IContext getContext() {
IContext ctx = super.getContext();
ctx.getSessionData().setValue(QVTEvaluationOptions.FLAG_READONLY_GUARD_ENABLED, Boolean.TRUE);
return ctx;
}
}));
suite.addTest(new TestFailedTransformation(new FilesToFilesData("bug301134"))); //$NON-NLS-1$
suite.addTest(new TestFailedTransformation(new FilesToFilesData("bug323915"))); //$NON-NLS-1$
suite.addTest(new TestFailedTransformation(new FilesToFilesData("bug370098") { //$NON-NLS-1$
@Override
public IContext getContext() {
IContext ctx = super.getContext();
ctx.getSessionData().setValue(QVTEvaluationOptions.EVALUATION_MAX_STACK_DEPTH, 10);
return ctx;
}
}));
suite.addTest(new TestFailedTransformation(new FilesToFilesData("bug289982_failed"))); //$NON-NLS-1$
for (ModelTestData data : datas) {
suite.addTest(new TestQvtInterpreter(data));
}
suite.addTest(new TestIncorrectTransformation(
new ReferencedProjectData("bug433937_wrongImport", "bug433937_referenced", false) { //$NON-NLS-1$ //$NON-NLS-2$
@Override
public boolean isUseCompiledXmi() {
// TODO it should be possible to run this test with the
// using of compiled XMI
return false;
}
}));
suite.addTest(new TestIncorrectTransformation(
new ReferencedProjectData("bug433937_wrongImport", "bug433937_referenced", true) { //$NON-NLS-1$ //$NON-NLS-2$
@Override
public boolean isUseCompiledXmi() {
// TODO it should be possible to run this test with the
// using of compiled XMI
return false;
}
}));
suite.addTestSuite(TestStackTrace.class);
suite.addTestSuite(TestInvalidConfigProperty.class);
suite.addTestSuite(TestBlackboxLibContext.class);
return suite;
}
public static TestSuite javalessSuite() {
TestSuite suite = new TestSuite("QVT javaless"); //$NON-NLS-1$
ModelTestData[] datas = createTestData();
for (ModelTestData data : datas) {
if(!JAVALESS_EXCLUDES.contains(data.getName()) && JavalessUtil.isValidJavalessData(data)) {
JavalessQvtTest test = new JavalessQvtTest(data, JAVALESS_PATCH_OUTPUT.contains(data.getName()));
suite.addTest(test);
}
}
return suite;
}
public static TestSuite walkerSuite() {
TestSuite suite = new TestSuite("QVT walker"); //$NON-NLS-1$
ModelTestData[] datas = createTestData();
for (ModelTestData data : datas) {
suite.addTest(new TestQvtWalker(data));
}
return suite;
}
public static TestSuite executorSuite() {
TestSuite suite = new TestSuite("QVT executor"); //$NON-NLS-1$
ModelTestData[] datas = createTestData();
for (ModelTestData data : datas) {
suite.addTest(new TestQvtExecutor(data));
}
return suite;
}
public static ModelTestData[] createTestData() {
return new ModelTestData[] {
new FilesToFilesData("dicttype"), //$NON-NLS-1$
new FileToFileData("transf_inheritance"), //$NON-NLS-1$
new FilesToFilesData("uml2_stereotypeApplication", Arrays.asList("in1.ecore", "in2.ecore"), Arrays.asList("expected1.ecore", "expected2.ecore", "expected3.ecore")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
new FilesToFilesData("subobjects", Arrays.asList("in.ecore"), Collections.<String>emptyList()), //$NON-NLS-1$ //$NON-NLS-2$
new FileToFileData("virtual_contextVsOverride"), //$NON-NLS-1$
new FileToFileData("numconversion", "in.xmi", "expected.pack").includeMetamodelFile("mm.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new FilesToFilesData("bug329971", Arrays.asList("Class1.xmi"), Collections.<String>emptyList()).includeMetamodelFile("test1.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("overload_205062"), //$NON-NLS-1$
new FileToFileData("overload_singleParam"), //$NON-NLS-1$
new FileToFileData("overload_multipleParams"), //$NON-NLS-1$
new FileToFileData("operation_override"), //$NON-NLS-1$
new FileToFileData("fqn_noncontextual"), //$NON-NLS-1$
new FileToFileData("fqnMainCalls_272937"), //$NON-NLS-1$
new FileToFileData("fqnMainCalls_271987"), //$NON-NLS-1$
new FileToFileData("fqnOperationCalls_271789"), //$NON-NLS-1$
new FileToFileData("importedInstances"), //$NON-NLS-1$
new FileToFileData("import_access_extends"), //$NON-NLS-1$
new FileToFileData("import_access_extends_cfgprop", new String[][] { //$NON-NLS-1$
new String[] { "attrNum", "10" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "outClassName", "ClassFromImportedTransf3_cfgprop" } //$NON-NLS-1$ //$NON-NLS-2$
}),
new FileToFileData("slashSingleLineComments_266478"), //$NON-NLS-1$
new FileToFileData("nestedPropertiesAssignment_262757"), //$NON-NLS-1$
new FileToFileData("listLiteral_259754"), //$NON-NLS-1$
new FileToFileData("escape_sequences_250630"), //$NON-NLS-1$
new FileToFileData("multilineStrings_262733"), //$NON-NLS-1$
new FileToFileData("doubleQuoteStrings_262734"), //$NON-NLS-1$
new FileToFileData("varInitGroup_261841"), //$NON-NLS-1$
new FileToFileData("chainedAssignments_261024"), //$NON-NLS-1$
new FileToFileData("_while_261024"), //$NON-NLS-1$
new FileToFileData("varInitExpWithResult_260985"), //$NON-NLS-1$
new FileToFileData("stdlibModel"), //$NON-NLS-1$
new FileToFileData("stdlibList"), //$NON-NLS-1$
new FileToFileData("stdlibDict"), //$NON-NLS-1$
new FileToFileData("libraryHeaderWithSignature_257575"), //$NON-NLS-1$
new FileToFileData("intermSimple"), //$NON-NLS-1$
new FilesToFilesData("intermProperties", Collections.<String>emptyList(), Arrays.asList("intermProperties.ecore")), //$NON-NLS-1$ //$NON-NLS-2$
new FilesToFilesData("intermWithCrossRefs", Collections.<String>emptyList(), Arrays.asList("intermWithCrossRefs.ecore")), //$NON-NLS-1$ //$NON-NLS-2$
new FilesToFilesData("intermWithExtends", Collections.<String>emptyList(), Arrays.asList("intermWithExtends.ecore")), //$NON-NLS-1$ //$NON-NLS-2$
new FileToFileData("intermWithoutExtent"), //$NON-NLS-1$
new FilesToFilesData("constructors", Collections.<String>emptyList(), Arrays.asList("constructors_x.ecore", "constructors_y.ecore")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("libraryWithModuleElements_257184"), //$NON-NLS-1$
new FileToFileData("transformationWithModuleElements_257055"), //$NON-NLS-1$
new FileToFileData("objectExpBodyExpressions_253051"), //$NON-NLS-1$
new FileToFileData("mappingBodyExpressions_252358"), //$NON-NLS-1$
new FileToFileData("helperSimpleDef_252173"), //$NON-NLS-1$
new FileToFileData("compositetransf"), //$NON-NLS-1$
new FileToFileData("computeExp_250403"), //$NON-NLS-1$
new FileToFileData("forExp_245275"), //$NON-NLS-1$
new FileToFileData("bug244701"), //$NON-NLS-1$
new FileToFileData("virtualPredefinedTypeOpers"), //$NON-NLS-1$
new FileToFileData("blackboxlib_237781"), //$NON-NLS-1$
new FileToFileData("blackboxlib_annotation_java"), //$NON-NLS-1$
new FileToFileData("bug233984"), //$NON-NLS-1$
new FileToFileData("collectionMappingResult"), //$NON-NLS-1$
new FileToFileData("intermediateprop_import"), //$NON-NLS-1$
new FileToFileData("intermediateprop_resolve", "in.simpleuml", "expected.simpleuml"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("intermediateprop_trace", "in.simpleuml", "expected.simpleuml"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FilesToFilesData("multiresultpars", Collections.singletonList("in.ecore"), Arrays.asList("expected_x.ecore", "expected_y.ecore")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new FilesToFilesData("simpletag"), //$NON-NLS-1$
new FileToFileData("stdlibString"), //$NON-NLS-1$
new FilesToFilesData("stdlibelement", Collections.singletonList("in.ecore"), Arrays.asList("expected_x.ecore", "expected_y.ecore")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new FileToFileData("mapDisjuncts"), //$NON-NLS-1$
new FileToFileData("mapInherits"), //$NON-NLS-1$
new FileToFileData("mapMultipleInherits"), //$NON-NLS-1$
new FileToFileData("mapMerges"), //$NON-NLS-1$
new FileToFileData("bug2437_1"), //$NON-NLS-1$
new FileToFileData("bug2437_2"), //$NON-NLS-1$
new FileToFileData("bug2437_3"), //$NON-NLS-1$
new FileToFileData("bug2437_4"), //$NON-NLS-1$
new FileToFileData("bug2437_5"), //$NON-NLS-1$
new FileToFileData("bug2839"), //$NON-NLS-1$
new FileToFileData("populationSection"), //$NON-NLS-1$
new FileToFileData("inoutMapping"), //$NON-NLS-1$
new FileToFileData("objectExp"), //$NON-NLS-1$
new FileToFileData("bug2787"), //$NON-NLS-1$
new FileToFileData("bug2741"), //$NON-NLS-1$
new FileToFileData("bug2732"), //$NON-NLS-1$
new FileToFileData("bug_214938"), //$NON-NLS-1$
new FileToFileData("moduleProperty"), //$NON-NLS-1$
new FileToFileData("simplestXCollectShorthand"), //$NON-NLS-1$
new FileToFileData("bug216317"), //$NON-NLS-1$
new FileToFileData("oclAllInstances"), //$NON-NLS-1$
new FileToFileData("_while"), //$NON-NLS-1$
new FileToFileData("oclannotation", "in.ecore", "expected.xmi").includeMetamodelFile("metamodel.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new FileToFileData("importedvirtuals"), //$NON-NLS-1$
new FileToFileData("ocl_test"), //$NON-NLS-1$
new FileToFileData("tuples"), //$NON-NLS-1$
new FileToFileData("oclany"), //$NON-NLS-1$
new FileToFileData("modifyvar"), //$NON-NLS-1$
new FileToFileData("abstractresult"), //$NON-NLS-1$
new FileToFileData("bagorderedsetintersection"), //$NON-NLS-1$
new FileToFileData("nullsource"), //$NON-NLS-1$
new FileToFileData("isunique"), //$NON-NLS-1$
new FileToFileData("fqntraces"), //$NON-NLS-1$
new FileToFileData("equndefined"), //$NON-NLS-1$
new FileToFileData("propertycollect"), //$NON-NLS-1$
new FileToFileData("resolvenoinput"), //$NON-NLS-1$
new FileToFileData("addundefined"), //$NON-NLS-1$
new FileToFileData("propuseprop"), //$NON-NLS-1$
new FileToFileData("importedprops", new String[][] { //$NON-NLS-1$
{"t1", "some"}//$NON-NLS-1$ //$NON-NLS-2$
}),
new FileToFileData("resolveall"), //$NON-NLS-1$
new FileToFileData("imports"), //$NON-NLS-1$
new FileToFileData("imports_transformations"), //$NON-NLS-1$
new FileToFileData("assigntoprimfeature"), //$NON-NLS-1$
new FileToFileData("assigntonullowner"), //$NON-NLS-1$
new FileToFileData("firstlast"), //$NON-NLS-1$
new FileToFileData("accessbooleans", "testqvt.testqvt", "expected.ecore"), //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
new FileToFileData("localstrings"), //$NON-NLS-1$
new FileToFileData("castinttodouble"), //$NON-NLS-1$
new FileToFileData("stringescaping"), //$NON-NLS-1$
new FileToFileData("exists"), //$NON-NLS-1$
new FileToFileData("nestednativeops"), //$NON-NLS-1$
new FileToFileData("scr23070"), //$NON-NLS-1$
new FileToFileData("iterateoverintset"), //$NON-NLS-1$
new FileToFileData("addrealtostring"), //$NON-NLS-1$
new FileToFileData("invalidcollectioncast"), //$NON-NLS-1$
new FileToFileData("virtscr20707"), //$NON-NLS-1$
new FileToFileData("calloclIsUndefinedforundefined"), //$NON-NLS-1$
new FileToFileData("callvirtforundefined"), //$NON-NLS-1$
new FileToFileData("omittedobject"), //$NON-NLS-1$
new FileToFileData("omittedobjectwithinit"), //$NON-NLS-1$
new FileToFileData("primtypesecore"), //$NON-NLS-1$
new FileToFileData("scr21329"), //$NON-NLS-1$
new FileToFileData("scr21121"), //$NON-NLS-1$
new FileToFileData("scr20811"), //$NON-NLS-1$
new FileToFileData("scr20041"), //$NON-NLS-1$
new FileToFileData("scr20038"), //$NON-NLS-1$
new FileToFileData("scr20667"), //$NON-NLS-1$
new FileToFileData("scr20469"), //$NON-NLS-1$
new FileToFileData("scr20471"), //$NON-NLS-1$
new FileToFileData("scr19364"), //$NON-NLS-1$
new FileToFileData("scr18739"), //$NON-NLS-1$
new FileToFileData("scr18514", "pim.simpleuml", "expected.simpleuml"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("oclastype"), //$NON-NLS-1$
new FileToFileData("usebooleanprop", "in.simpleuml", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("getpropfromundefined"), //$NON-NLS-1$
new FileToFileData("javakeywords"), //$NON-NLS-1$
new FileToFileData("scr17812"), //$NON-NLS-1$
new FileToFileData("scr18783"), //$NON-NLS-1$
new FileToFileData("boxing"), //$NON-NLS-1$
new FileToFileData("scr18572"), //$NON-NLS-1$
new FileToFileData("propinit"), //$NON-NLS-1$
new FileToFileData("allinstances"), //$NON-NLS-1$
new FileToFileData("customop", "in.simpleuml", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("returnundefinedfromquery"), //$NON-NLS-1$
new FileToFileData("addclass"), //$NON-NLS-1$
new FileToFileData("addclassviamodificationininit"), //$NON-NLS-1$
new FileToFileData("addclassviaoutinocl"), //$NON-NLS-1$
new FileToFileData("addclassviasequence"), //$NON-NLS-1$
new FileToFileData("assignresultininit"), //$NON-NLS-1$
new FileToFileData("copynameviacontextmapping"), //$NON-NLS-1$
new FileToFileData("emptyout"), //$NON-NLS-1$
new FileToFileData("full"), //$NON-NLS-1$
new FileToFileData("invresolve_"), //$NON-NLS-1$
new FileToFileData("invresolvebyrule"), //$NON-NLS-1$
new FileToFileData("removeclassesinwhile"), //$NON-NLS-1$
new FileToFileData("resolvebeforeoutcompletion"), //$NON-NLS-1$
new FileToFileData("resolvebyrule"), //$NON-NLS-1$
new FileToFileData("simple"), //$NON-NLS-1$
new FileToFileData("simpleconfigproperty", //$NON-NLS-1$
new String[][] {
{"FOO", "foo"}, //$NON-NLS-1$ //$NON-NLS-2$
}),
new FileToFileData("simpleproperty"), //$NON-NLS-1$
new FileToFileData("simplerename"), //$NON-NLS-1$
new FileToFileData("simpleresolve"), //$NON-NLS-1$
new FileToFileData("useresultinsameout"), //$NON-NLS-1$
new FileToFileData("virt"), //$NON-NLS-1$
new FileToFileData("overload"), //$NON-NLS-1$
new FileToFileData("voidreturn"), //$NON-NLS-1$
new FileToFileData("lateresolve", "in.simpleuml", "expected.simpleuml"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("lateresolvebyrule", "in.simpleuml", "expected.simpleuml"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("lateresolve_many", "in.ecore", "expected.simpleuml"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("skippopulation", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("iteratetest", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("mapkeyword", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("initsectresultpatch"), //$NON-NLS-1$
new FileToFileData("endsectresultpatch"), //$NON-NLS-1$
new FileToFileData("inoutcontextparam", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("inoutcontextparamnoresult", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("contextlesscall", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("setundefinedtoprimitive", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("varassign", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("bugzilla443", "in.ecore", "expected.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
new FileToFileData("resolve_notype"), //$NON-NLS-1$
new FileToFileData("resolve_type"), //$NON-NLS-1$
new FileToFileData("resolve_vardecl"), //$NON-NLS-1$
new FileToFileData("resolve_vardeclcond"), //$NON-NLS-1$
new FileToFileData("resolve_vardeclcondwithvar"), //$NON-NLS-1$
new FileToFileData("resolve_resolveone"), //$NON-NLS-1$
new FileToFileData("resolve_resolveIn"), //$NON-NLS-1$
new FileToFileData("resolve_resolveoneIn"), //$NON-NLS-1$
new FileToFileData("resolve_invresolveoneIn"), //$NON-NLS-1$
new FileToFileData("resolve_lateresolveoneIn"), //$NON-NLS-1$
new FileToFileData("resolve_lateresolveoneInaccess"), //$NON-NLS-1$
new FileToFileData("bug204126_1"), //$NON-NLS-1$
new FileToFileData("bug204126_2"), //$NON-NLS-1$
new FileToFileData("bug204126_3"), //$NON-NLS-1$
new FileToFileData("bug204126_4"), //$NON-NLS-1$
new FileToFileData("bug204126_5"), //$NON-NLS-1$
new FileToFileData("bug204126_6"), //$NON-NLS-1$
new FileToFileData("bug204126_7"), //$NON-NLS-1$
new FileToFileData("bug205303_1"), //$NON-NLS-1$
new FileToFileData("bug219075_1"), //$NON-NLS-1$
new FilesToFilesData("continue_break"), //$NON-NLS-1$
new FileToFileData("continue_perf"), //$NON-NLS-1$
new FilesToFilesData("unspecified_multiplicity", Collections.<String>emptyList(), Collections.singletonList("expected.xmi")) //$NON-NLS-1$ //$NON-NLS-2$
.includeMetamodelFile("MyUnbound.ecore"), //$NON-NLS-1$
new FilesToFilesData("nullableEnum", Collections.<String>emptyList(), Collections.singletonList("expected.xmi")) //$NON-NLS-1$ //$NON-NLS-2$
.includeMetamodelFile("NullableEnumTest.ecore"), //$NON-NLS-1$
new FilesToFilesData("bug302594"), //$NON-NLS-1$
new FileToFileData("bug309762"), //$NON-NLS-1$
new FilesToFilesData("bug377882"), //$NON-NLS-1$
new FilesToFilesData("bug388325"), //$NON-NLS-1$
new FileToFileData("bug392080"), //$NON-NLS-1$
new FileToFileData("bug392153"), //$NON-NLS-1$
new FileToFileData("bug397215"), //$NON-NLS-1$
new FileToFileData("bug397959"), //$NON-NLS-1$
new FileToFileData("bug358709"), //$NON-NLS-1$
new FilesToFilesData("bug388801"), //$NON-NLS-1$
new FileToFileData("bug254962"), //$NON-NLS-1$
new FilesToFilesData("bug325192"), //$NON-NLS-1$
new FileToFileData("bug314443"), //$NON-NLS-1$
new FilesToFilesData("bug400720"), //$NON-NLS-1$
new FilesToFilesData("bug294127"), //$NON-NLS-1$
new FilesToFilesData("bug392429"), //$NON-NLS-1$
new FilesToFilesData("bug410470"), //$NON-NLS-1$
new FilesToFilesData("bug404647"), //$NON-NLS-1$
new FilesToFilesData("bug413131"), //$NON-NLS-1$
new FileToFileData("bug274105_274505"), //$NON-NLS-1$
new FileToFileData("bug414555"), //$NON-NLS-1$
new FilesToFilesData("bug414472"), //$NON-NLS-1$
new FileToFileData("bug416584", new String[][] { //$NON-NLS-1$
new String[] { "libProp", "123" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "prop", "prop" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "prop2", "prop2" }, //$NON-NLS-1$ //$NON-NLS-2$
}),
new FilesToFilesData("bug417751"), //$NON-NLS-1$
new FilesToFilesData("bug415029"), //$NON-NLS-1$
new FilesToFilesData("bug417996"), //$NON-NLS-1$
new FilesToFilesData("bug417779", Arrays.asList("in.ecore", "in2.ecore"), Arrays.asList("expected.ecore", "expected2.ecore")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new FilesToFilesData("bug418512", Collections.singletonList("in.ecore"), Collections.<String>emptyList()), //$NON-NLS-1$ //$NON-NLS-2$
new FilesToFilesData("bug415209"), //$NON-NLS-1$
new FilesToFilesData("bug415315"), //$NON-NLS-1$
new FilesToFilesData("bug415661"), //$NON-NLS-1$
new FilesToFilesData("bug415310"), //$NON-NLS-1$
new FilesToFilesData("bug419299"), //$NON-NLS-1$
new FilesToFilesData("bug224094"), //$NON-NLS-1$
new FilesToFilesData("bug390088"), //$NON-NLS-1$
new FileToFileData("bug403440"), //$NON-NLS-1$
new FileToFileData("bug414642"), //$NON-NLS-1$
new FilesToFilesData("bug267917", Collections.<String>emptyList(), Collections.<String>emptyList(), new String[][] { //$NON-NLS-1$
new String[] { "optionsDict1", "b=b1, c=c1, a=a1" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsDict2", "b=10, c=100, a=-1" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsDict3", "true=false, false=true" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsDict4", "b=2.2, c=3.3, a=1.1" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsDict5", "1=a, 2=b, 3=c" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsDict6", "1=true, 2=false" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsDict7", null }, //$NON-NLS-1$
new String[] { "optionsSet", "1.0, 1.1, 1.2" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsList", "foo, bar" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsSequence", "-1, 10" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "optionsOrderedSet", "bar, foo" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "nestedDict1", "[a\\\\a=[a, b], a\\,a=[b, c], a\\[\\[a=[b, c]]" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "nestedDict2", "[[3.0=]=[4=4.0], [1.0=a]=[2=2.0]]" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "nestedSet1", "[[1.0]]" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "nestedSet2", "[[1.1], [2.2], [0.0, 3.3]]" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "nestedSet3", "[]" }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "nestedSet4", "[[]]" }, //$NON-NLS-1$ //$NON-NLS-2$
}),
new FilesToFilesData("bug420970", Arrays.asList("test1.ecore", "test2.ecore", "in.ecore"), Arrays.asList("expected.ecore")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new FileToFileData("bug392156"), //$NON-NLS-1$
new FilesToFilesData("bug424086"), //$NON-NLS-1$
new FilesToFilesData("bug422315"), //$NON-NLS-1$
new FilesToFilesData("bug424740"), //$NON-NLS-1$
new FilesToFilesData("bug418961"), //$NON-NLS-1$
new FilesToFilesData("bug424979"), //$NON-NLS-1$
new FilesToFilesData("bug289982_importless"), //$NON-NLS-1$
new FilesToFilesData("bug289982"), //$NON-NLS-1$
new FilesToFilesData("bug400233"), //$NON-NLS-1$
new FilesToFilesData("bug424584", Collections.<String>emptyList(), Collections.singletonList("expected.ecore")), //$NON-NLS-1$ //$NON-NLS-2$
new FilesToFilesData("bug386115", Arrays.asList("Container.xmi", "model.ecore"), Collections.<String>emptyList()).includeMetamodelFile("model.ecore"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new FilesToFilesData("bug427348"), //$NON-NLS-1$
new FilesToFilesData("bug428316"), //$NON-NLS-1$
new FilesToFilesData("bug428618"), //$NON-NLS-1$
new FilesToFilesData("bug424896"), //$NON-NLS-1$
new FileToFileData("bug427237", //$NON-NLS-1$
new String[][] {
{"prop", "1"}, //$NON-NLS-1$ //$NON-NLS-2$
}),
new FileToFileData("bug427237a"), //$NON-NLS-1$
new FilesToFilesData("bug425069"), //$NON-NLS-1$
new FilesToFilesData("bug432786"), //$NON-NLS-1$
new FilesToFilesData("bug397398"), //$NON-NLS-1$
new FilesToFilesData("bug433292"), //$NON-NLS-1$
new FilesToFilesData("bug370098"), //$NON-NLS-1$
new FilesToFilesData("bug326871"), //$NON-NLS-1$
new FilesToFilesData("bug326871a"), //$NON-NLS-1$
new FilesToFilesData("emptyExtents", Arrays.asList("in1.ecore", "in2.ecore"), Collections.singletonList("expected.ecore")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
new FilesToFilesData("urilessModeltype"), //$NON-NLS-1$
new FilesToFilesData("bug449445"), //$NON-NLS-1$
new FilesToFilesData("bug449912", Collections.<String>emptyList(), Collections.singletonList("expected.qvtoperational")), //$NON-NLS-1$ //$NON-NLS-2$
new ReferencedProjectData("bug433937", "bug433937_referenced", false) { //$NON-NLS-1$ //$NON-NLS-2$
@Override
public boolean isUseCompiledXmi() {
// TODO it should be possible to run this test with the using of compiled XMI
return false;
}
},
new ReferencedProjectData("bug433937", "bug433937_referenced", true) { //$NON-NLS-1$ //$NON-NLS-2$
@Override
public boolean isUseCompiledXmi() {
// TODO it should be possible to run this test with the using of compiled XMI
return false;
}
},
new FilesToFilesData("bug457433", Arrays.asList("in.ecore", "in2.ecore"), Collections.<String>emptyList()), //$NON-NLS-1$ //$NON-NLS-2$
new FilesToFilesData("bug440514"), //$NON-NLS-1$
};
}
private static final Set<String> JAVALESS_EXCLUDES = new HashSet<String>(Arrays.asList(new String[] {
// uses getDataTypeInstance() defined on ecore
"primtypesecore", //$NON-NLS-1$
// failed to save compiled XMI (ocl problems)
"operation_override", "import_access_extends", "import_access_extends_cfgprop", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// fqn access are not correctly patched
"importedInstances", "fqn_noncontextual", "fqnOperationCalls_271789", "fqnMainCalls_271987", "fqnMainCalls_272937", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
"transf_inheritance", //$NON-NLS-1$
// reference not in required format: eSuperTypes = "#//NEW_Class1" instead of "//@eClassifiers.0"
"assigntonullowner", "resolveall", //$NON-NLS-1$ //$NON-NLS-2$
// uses getEClassifier() defined on ecore
"bug2787", "bug2839", "bug2437_4", "bug2437_5", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
// imports java lib oper requiring generated ecore metamodel
"blackboxlib_237781", //$NON-NLS-1$
// generated ECORE models -> not applicable to dynamic models
"blackboxlib_annotation_java", //$NON-NLS-1$
// EObjects are created inside blackbox transformation and later merged with javaless objects
"bug427237a", //$NON-NLS-1$
}));
private static final Set<String> JAVALESS_PATCH_OUTPUT = new HashSet<String>(Arrays.asList(new String[] {
// EObjects are created inside blackbox transformation thus don't belong to javaless package
"bug427237", //$NON-NLS-1$
}));
}