summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMoritz Eysholdt2011-08-04 17:30:58 (EDT)
committerEd Merks2011-08-04 17:31:27 (EDT)
commit7faa72f64152278725edc960ce3e69de7043a404 (patch)
treec60711517717bc18d4756034368abeafe322ced7
parent8e64a1838b39485e9e8c8c789a290ffe7d38e6c7 (diff)
downloadorg.eclipse.emf-7faa72f64152278725edc960ce3e69de7043a404.zip
org.eclipse.emf-7faa72f64152278725edc960ce3e69de7043a404.tar.gz
org.eclipse.emf-7faa72f64152278725edc960ce3e69de7043a404.tar.bz2
added early genmodel and validation tests
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/META-INF/MANIFEST.MF1
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/XcoreModelSanityTest.java29
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/GenFeatures1.xcore26
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/GenPackage1.xcore22
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/XcoreGenModelTest.java53
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/util/AbstractModelSanityTest.java192
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/util/LabelledParameterized.java123
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/validation/Linking.xcore10
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/validation/XcoreValidationTest.java66
-rw-r--r--org.eclipse.emf.ecore.xcore.tests/xcore-src/test.xcore3
10 files changed, 177 insertions, 348 deletions
diff --git a/org.eclipse.emf.ecore.xcore.tests/META-INF/MANIFEST.MF b/org.eclipse.emf.ecore.xcore.tests/META-INF/MANIFEST.MF
index 0f0efbb..5b6a79a 100644
--- a/org.eclipse.emf.ecore.xcore.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.emf.ecore.xcore.tests/META-INF/MANIFEST.MF
@@ -14,4 +14,3 @@ Require-Bundle: org.eclipse.emf.ecore.xcore,
org.eclipse.xtext.common.types;bundle-version="2.0.0",
org.eclipse.xtext.xbase;bundle-version="2.0.0",
org.eclipse.xtext.xtend2.lib;bundle-version="2.0.0"
-Import-Package: org.eclipse.xtext.junit
diff --git a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/XcoreModelSanityTest.java b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/XcoreModelSanityTest.java
deleted file mode 100644
index d41e9ce..0000000
--- a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/XcoreModelSanityTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.eclipse.emf.ecore.xcore.tests;
-
-import java.util.Collection;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xcore.XcoreStandaloneSetup;
-import org.eclipse.emf.ecore.xcore.tests.util.AbstractModelSanityTest;
-import org.eclipse.emf.ecore.xcore.tests.util.LabelledParameterized.LabelledParameters;
-
-public class XcoreModelSanityTest extends AbstractModelSanityTest
-{
-
- static
- {
- XcoreStandaloneSetup.doSetup();
- }
-
- public XcoreModelSanityTest(String label, Resource res) throws Exception
- {
- super(label, res);
- }
-
- @LabelledParameters
- public static Collection<Object[]> generateData()
- {
- return collectTestFiles("xcore-src", "xcore");
- }
-
-}
diff --git a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/GenFeatures1.xcore b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/GenFeatures1.xcore
new file mode 100644
index 0000000..57f2e84
--- /dev/null
+++ b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/GenFeatures1.xcore
@@ -0,0 +1,26 @@
+package foo
+
+class X
+{
+ /* XPECT gen ---
+ GenFeature {
+ attr EBoolean notify 'false'
+ attr EBoolean createChild 'false'
+ attr EBoolean propertySortChoices 'true'
+ ref GenClass genClass ref: GenClass@/2/foo/X
+ ref EStructuralFeature ecoreFeature 'x' ref: EReference@/1/X/x
+ }
+ --- */
+ refers X x opposite y
+
+ /* XPECT gen ---
+ GenFeature {
+ attr EBoolean notify 'false'
+ attr EBoolean createChild 'false'
+ attr EBoolean propertySortChoices 'true'
+ ref GenClass genClass ref: GenClass@/2/foo/X
+ ref EStructuralFeature ecoreFeature 'y' ref: EReference@/1/X/y
+ }
+ --- */
+ refers X y opposite x
+} \ No newline at end of file
diff --git a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/GenPackage1.xcore b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/GenPackage1.xcore
new file mode 100644
index 0000000..37c287d
--- /dev/null
+++ b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/GenPackage1.xcore
@@ -0,0 +1,22 @@
+/* XPECT gen ---
+ GenPackage {
+ attr EString prefix 'Foo'
+ attr EBoolean disposableProviderFactory 'true'
+ ref EPackage ecorePackage 'foo' ref: EPackage@/1
+ ref GenModel genModel ref: GenModel@/2
+ cref GenClass genClasses [
+ 0: GenClass {
+ ref GenPackage genPackage ref: GenPackage@/2/foo
+ ref EClass ecoreClass 'Bar' ref: EClass@/1/Bar
+ }
+ ]
+ ref GenClassifier genClassifiers [
+ 0: GenClass@/2/foo/Bar
+ ]
+ }
+---
+*/
+
+package foo
+
+class Bar {} \ No newline at end of file
diff --git a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/XcoreGenModelTest.java b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/XcoreGenModelTest.java
new file mode 100644
index 0000000..04863f2
--- /dev/null
+++ b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/genmodel/XcoreGenModelTest.java
@@ -0,0 +1,53 @@
+package org.eclipse.emf.ecore.xcore.tests.genmodel;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xcore.XcoreInjectorProvider;
+import org.eclipse.emf.ecore.xcore.util.XcoreEcoreBuilder;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.parameterized.ParameterizedXtextRunner;
+import org.eclipse.xtext.junit4.parameterized.ResourceURIs;
+import org.eclipse.xtext.nodemodel.ILeafNode;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
+import org.eclipse.xtext.parsetree.reconstr.impl.NodeIterator;
+import org.eclipse.xtext.util.EmfFormatter;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@InjectWith(XcoreInjectorProvider.class)
+@RunWith(ParameterizedXtextRunner.class)
+@ResourceURIs(baseDir = "src/org/eclipse/emf/ecore/xcore/tests/genmodel", fileExtensions = "xcore")
+public class XcoreGenModelTest
+{
+
+ protected String expected;
+ protected INode leaf;
+
+ public XcoreGenModelTest(ILeafNode leaf, String expected)
+ {
+ super();
+ this.leaf = leaf;
+ NodeIterator ni = new NodeIterator(leaf);
+ while (ni.hasNext())
+ {
+ INode n = ni.next();
+ if (n instanceof ILeafNode && !((ILeafNode) n).isHidden())
+ {
+ this.leaf = n;
+ break;
+ }
+ }
+ this.expected = expected;
+ }
+
+ @Test
+ public String gen()
+ {
+ EObject obj = NodeModelUtils.findActualSemanticObjectFor(leaf);
+ EcoreUtil.resolveAll(obj.eResource());
+ EObject gen = XcoreEcoreBuilder.getGen(XcoreEcoreBuilder.get(obj));
+ return EmfFormatter.objToStr(gen);
+ }
+
+}
diff --git a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/util/AbstractModelSanityTest.java b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/util/AbstractModelSanityTest.java
deleted file mode 100644
index 26955f9..0000000
--- a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/util/AbstractModelSanityTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package org.eclipse.emf.ecore.xcore.tests.util;
-
-import java.io.File;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.mwe.utils.StandaloneSetup;
-import org.eclipse.xtext.diagnostics.ExceptionDiagnostic;
-import org.eclipse.xtext.junit4.serializer.SerializerTester;
-import org.eclipse.xtext.resource.XtextResource;
-import org.eclipse.xtext.resource.XtextResourceSet;
-import org.eclipse.xtext.util.CancelIndicator;
-import org.eclipse.xtext.validation.CheckMode;
-import org.eclipse.xtext.validation.IResourceValidator;
-import org.eclipse.xtext.validation.Issue;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import com.google.common.base.Joiner;
-import com.google.common.base.Predicate;
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Multimap;
-
-@RunWith(LabelledParameterized.class)
-public abstract class AbstractModelSanityTest
-{
-
- public static class FilePredicate implements Predicate<File>
- {
- private final String[] fileExts;
-
- public FilePredicate(String... fileExts)
- {
- this.fileExts = fileExts;
- }
-
- public boolean apply(File input)
- {
- for (String ext : fileExts)
- if (input.getName().endsWith("." + ext))
- return true;
- return false;
- }
- }
-
- protected static List<File> files;
-
- protected static void collectFiles(File dir, List<File> result, Predicate<File> shouldLoad)
- {
- for (File child : dir.listFiles())
- {
- if (shouldLoad.apply(child))
- result.add(child);
- if (child.isDirectory())
- collectFiles(child, result, shouldLoad);
- }
- }
-
- public static List<File> collectFiles(String directory, Predicate<File> shouldCollect)
- {
- File dir = new File(directory);
- if (!dir.isDirectory())
- throw new RuntimeException("Directory not found: " + directory);
- List<File> result = Lists.newArrayList();
- collectFiles(new File(directory), result, shouldCollect);
- return result;
- }
-
- protected static List<File> collectFiles(String directory, String... fileExtensions)
- {
- return collectFiles(directory, new FilePredicate(fileExtensions));
- }
-
- protected static Collection<Object[]> collectTestFiles(String root, String... fileExts)
- {
- init();
- List<Object[]> result = Lists.newArrayList();
- ResourceSet rs = new XtextResourceSet();
- URI rootURI = URI.createFileURI(new File(root).getAbsolutePath());
- for (File file : collectFiles(root, fileExts))
- {
- URI uri = URI.createFileURI(file.getAbsolutePath());
- Resource res = null;
- try
- {
- res = rs.getResource(uri, true);
- } catch (Exception t)
- {
- if (res == null)
- res = rs.createResource(uri);
- res.getErrors().add(new ExceptionDiagnostic(t));
- }
- List<String> segmentsList = uri.deresolve(rootURI).segmentsList();
- String name = Joiner.on('/').join(segmentsList.subList(1, segmentsList.size()));
- result.add(new Object[]
- { name, res });
- }
- return result;
- }
-
- private static void init()
- {
- new StandaloneSetup().setPlatformUri(".");
- }
-
- protected String label;
-
- protected XtextResource resource;
-
- public AbstractModelSanityTest(String label, Resource res) throws Exception
- {
- this.label = label;
- this.resource = (XtextResource) res;
- }
-
- protected String annotateDocumentWithIssues(String document, List<Issue> issues)
- {
- String[] lines = document.split("\n");
- Multimap<Integer, Issue> issueByLine = HashMultimap.create();
- for (Issue issue : issues)
- issueByLine.put(issue.getLineNumber(), issue);
- List<String> result = Lists.newArrayList();
- for (int i = 0; i < lines.length; i++)
- {
- Collection<Issue> lineIssues = issueByLine.get(i);
- if (lineIssues.isEmpty())
- result.add(lines[i]);
- else
- {
- StringBuilder line = new StringBuilder(lines[i]);
- for (Issue issue : lineIssues)
- {
- line.append("\n");
- line.append("// " + formatIssue(issue));
- }
- result.add(line.toString());
- issueByLine.removeAll(line);
- }
- }
- for (Issue issue : issues)
- if (issue.getLineNumber() >= lines.length)
- result.add("// " + formatIssue(issue));
- return Joiner.on('\n').join(result);
- }
-
- protected String formatIssue(Issue issue)
- {
- StringBuilder result = new StringBuilder();
- result.append(issue.getSeverity());
- result.append(": ");
- result.append(issue.getMessage());
- result.append(" (");
- result.append(issue.getCode());
- result.append(" )");
- return result.toString();
- }
-
- protected String getIssuesText(List<Issue> issues)
- {
- List<String> result = Lists.newArrayList();
- for (Issue issue : issues)
- result.add(formatIssue(issue));
- return Joiner.on('\n').join(result);
- }
-
- @Test
- public void serialize() throws Exception
- {
- Assert.assertTrue(resource.getContents().size() > 0);
- EObject root = resource.getContents().get(0);
- SerializerTester tester = resource.getResourceServiceProvider().get(SerializerTester.class);
- tester.assertSerializeWithNodeModel(root);
- tester.assertSerializeWithoutNodeModel(root);
- }
-
- @Test
- public void validate()
- {
- IResourceValidator validator = resource.getResourceServiceProvider().get(IResourceValidator.class);
- List<Issue> issues = validator.validate(resource, CheckMode.ALL, CancelIndicator.NullImpl);
- String expectedDocument = resource.getParseResult().getRootNode().getText();
- String actualDocument = annotateDocumentWithIssues(expectedDocument, issues);
- Assert.assertEquals(getIssuesText(issues), expectedDocument, actualDocument);
- }
-
-}
diff --git a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/util/LabelledParameterized.java b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/util/LabelledParameterized.java
deleted file mode 100644
index aaf8055..0000000
--- a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/util/LabelledParameterized.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package org.eclipse.emf.ecore.xcore.tests.util;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.junit.runner.Runner;
-import org.junit.runner.notification.RunNotifier;
-import org.junit.runners.BlockJUnit4ClassRunner;
-import org.junit.runners.Suite;
-import org.junit.runners.model.FrameworkMethod;
-import org.junit.runners.model.InitializationError;
-import org.junit.runners.model.Statement;
-import org.junit.runners.model.TestClass;
-
-public class LabelledParameterized extends Suite
-{
- @Retention(RetentionPolicy.RUNTIME)
- @Target(ElementType.METHOD)
- public static @interface LabelledParameters
- {
- }
-
- private class TestClassRunnerForParameters extends BlockJUnit4ClassRunner
- {
- private final int parameterSetNumber;
-
- private final List<Object[]> parameters;
-
- TestClassRunnerForParameters(Class<?> type, List<Object[]> parameterList, int i) throws InitializationError
- {
- super(type);
- parameters = parameterList;
- parameterSetNumber = i;
- }
-
- @Override
- public Object createTest() throws Exception
- {
- return getTestClass().getOnlyConstructor().newInstance(computeParams());
- }
-
- protected Object[] computeParams() throws Exception
- {
- try
- {
- return parameters.get(parameterSetNumber);
- } catch (ClassCastException e)
- {
- throw new Exception(String.format("%s.%s() must return a Collection of arrays.", getTestClass().getName(),
- getParametersMethod(getTestClass()).getName()));
- }
- }
-
- @Override
- protected String getName()
- {
- return String.format("%s", parameters.get(parameterSetNumber)[0]);
- }
-
- @Override
- protected String testName(final FrameworkMethod method)
- {
- return String.format("%s -> %s", parameters.get(parameterSetNumber)[0], method.getName());
- }
-
- @Override
- protected void validateZeroArgConstructor(List<Throwable> errors)
- {
- // super.validateZeroArgConstructor(errors);
- }
-
- @Override
- protected Statement classBlock(RunNotifier notifier)
- {
- return childrenInvoker(notifier);
- }
- }
-
- protected final ArrayList<Runner> runners = new ArrayList<Runner>();
-
- /**
- * Only called reflectively. Do not use programmatically.
- */
- public LabelledParameterized(Class<?> klass) throws Throwable
- {
- super(klass, Collections.<Runner> emptyList());
- List<Object[]> parametersList = getParametersList(getTestClass());
- for (int i = 0; i < parametersList.size(); i++)
- runners.add(new TestClassRunnerForParameters(getTestClass().getJavaClass(), parametersList, i));
- }
-
- @Override
- protected List<Runner> getChildren()
- {
- return runners;
- }
-
- @SuppressWarnings("unchecked")
- protected List<Object[]> getParametersList(TestClass klass) throws Throwable
- {
- return (List<Object[]>) getParametersMethod(klass).invokeExplosively(null);
- }
-
- protected FrameworkMethod getParametersMethod(TestClass testClass) throws Exception
- {
- List<FrameworkMethod> methods = testClass.getAnnotatedMethods(LabelledParameters.class);
- for (FrameworkMethod each : methods)
- {
- int modifiers = each.getMethod().getModifiers();
- if (Modifier.isStatic(modifiers) && Modifier.isPublic(modifiers))
- return each;
- }
-
- throw new Exception("No public static parameters method on class " + testClass.getName());
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/validation/Linking.xcore b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/validation/Linking.xcore
new file mode 100644
index 0000000..2464d1c
--- /dev/null
+++ b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/validation/Linking.xcore
@@ -0,0 +1,10 @@
+package foo
+
+/* XPECT issues ---
+error for 'baz' message 'Couldn't resolve reference to GenBase 'baz'.'
+error for 'baz' message 'The feature 'type' of 'org.eclipse.emf.ecore.xcore.impl.XGenericTypeImpl@???' contains an unresolved proxy '???''
+error ' message 'A generic super type must refer to a class'
+---
+*/
+
+class bar extends baz {} \ No newline at end of file
diff --git a/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/validation/XcoreValidationTest.java b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/validation/XcoreValidationTest.java
new file mode 100644
index 0000000..93f6453
--- /dev/null
+++ b/org.eclipse.emf.ecore.xcore.tests/src/org/eclipse/emf/ecore/xcore/tests/validation/XcoreValidationTest.java
@@ -0,0 +1,66 @@
+package org.eclipse.emf.ecore.xcore.tests.validation;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.xcore.XcoreInjectorProvider;
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.parameterized.ParameterizedXtextRunner;
+import org.eclipse.xtext.junit4.parameterized.ResourceURIs;
+import org.eclipse.xtext.nodemodel.ILeafNode;
+import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.util.CancelIndicator;
+import org.eclipse.xtext.validation.CheckMode;
+import org.eclipse.xtext.validation.IResourceValidator;
+import org.eclipse.xtext.validation.Issue;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.Lists;
+
+@InjectWith(XcoreInjectorProvider.class)
+@RunWith(ParameterizedXtextRunner.class)
+@ResourceURIs(baseDir = "src/org/eclipse/emf/ecore/xcore/tests/validation", fileExtensions = "xcore")
+public class XcoreValidationTest
+{
+
+ protected String expected;
+ protected ILeafNode leaf;
+
+ public XcoreValidationTest(ILeafNode leaf, String expected)
+ {
+ super();
+ this.leaf = leaf;
+ this.expected = expected;
+ }
+
+ protected String formatIssue(Issue issue)
+ {
+ StringBuilder result = new StringBuilder();
+ result.append(issue.getSeverity().name().toLowerCase());
+ if (issue.getOffset() != null && issue.getLength() != null)
+ {
+ result.append(" for '");
+ result.append(leaf.getRootNode().getText().substring(issue.getOffset(), issue.getOffset() + issue.getLength()));
+ } else
+ result.append(" ");
+ result.append("' message '");
+ result.append(issue.getMessage());
+ result.append("'");
+ return result.toString();
+ }
+
+ @Test
+ public String issues()
+ {
+ XtextResource resource = (XtextResource) NodeModelUtils.findActualSemanticObjectFor(leaf).eResource();
+ IResourceValidator validator = resource.getResourceServiceProvider().get(IResourceValidator.class);
+ List<Issue> issues = validator.validate(resource, CheckMode.ALL, CancelIndicator.NullImpl);
+ List<String> result = Lists.newArrayList();
+ for (Issue issue : issues)
+ result.add(formatIssue(issue));
+ return Joiner.on('\n').join(result);
+ }
+
+}
diff --git a/org.eclipse.emf.ecore.xcore.tests/xcore-src/test.xcore b/org.eclipse.emf.ecore.xcore.tests/xcore-src/test.xcore
deleted file mode 100644
index cd4be96..0000000
--- a/org.eclipse.emf.ecore.xcore.tests/xcore-src/test.xcore
+++ /dev/null
@@ -1,3 +0,0 @@
-package foo
-
-class Bar {} \ No newline at end of file