[unrelated] Add an overall all-tests capability
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCodeGenerator.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCodeGenerator.java
index b0c9ced..2915bd1 100644
--- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCodeGenerator.java
+++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/java/QVTiCodeGenerator.java
@@ -29,6 +29,7 @@
  * </copyright>
  */
 
+import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.Writer;
@@ -181,7 +182,9 @@
 	public void saveSourceFile(@NonNull String savePath) throws IOException {
 		String javaCodeSource = generateClassFile();
 		String qualifiedName = getQualifiedName();
-		String fileName = savePath + qualifiedName.replace('.', '/') + ".java";
+		String saveDir = savePath + qualifiedName.replace('.', '/');
+		String fileName = saveDir + ".java";
+		new File(saveDir).getParentFile().mkdirs();
 		Writer writer = new FileWriter(fileName);
 		writer.append(javaCodeSource);
 		writer.close();
diff --git a/releng/org.eclipse.qvtd.releng/psfs/qvtd-tests.psf b/releng/org.eclipse.qvtd.releng/psfs/qvtd-tests.psf
index f6bc4de..16bf151 100644
--- a/releng/org.eclipse.qvtd.releng/psfs/qvtd-tests.psf
+++ b/releng/org.eclipse.qvtd.releng/psfs/qvtd-tests.psf
@@ -4,6 +4,7 @@
 <project reference="1.0,git://git.eclipse.org/gitroot/mmt/org.eclipse.qvtd.git,master,plugins/org.eclipse.qvt"/>

 <project reference="1.0,git://git.eclipse.org/gitroot/mmt/org.eclipse.qvtd.git,master,examples/org.eclipse.qvtd.examples.qvtrelation.modelmorf"/>

 <project reference="1.0,git://git.eclipse.org/gitroot/mmt/org.eclipse.qvtd.git,master,examples/org.eclipse.qvtd.examples.qvtrelation.reltocore"/>

+<project reference="1.0,git://git.eclipse.org/gitroot/mmt/org.eclipse.qvtd.git,master,tests/org.eclipse.qvtd.all.tests"/>

 <project reference="1.0,git://git.eclipse.org/gitroot/mmt/org.eclipse.qvtd.git,master,tests/org.eclipse.qvtd.xtext.qvtbase.tests"/>

 <project reference="1.0,git://git.eclipse.org/gitroot/mmt/org.eclipse.qvtd.git,master,tests/org.eclipse.qvtd.xtext.qvtcore.tests"/>

 <project reference="1.0,git://git.eclipse.org/gitroot/mmt/org.eclipse.qvtd.git,master,tests/org.eclipse.qvtd.xtext.qvtimperative.tests"/>

@@ -14,6 +15,7 @@
 <item elementID="=org.eclipse.qvt" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>

 <item elementID="=org.eclipse.qvtd.xtext.qvtcore.tests" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>

 <item elementID="=org.eclipse.qvtd.examples.qvtrelation.modelmorf" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>

+<item elementID="=org.eclipse.qvtd.all.tests" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>

 <item elementID="=org.eclipse.qvtd.xtext.qvtbase.tests" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>

 <item elementID="=org.eclipse.qvtd.examples.qvtrelation.reltocore" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>

 <item elementID="=org.eclipse.qvtd.xtext.qvtrelation.tests" factoryID="org.eclipse.jdt.ui.PersistableJavaElementFactory"/>

diff --git a/tests/org.eclipse.qvtd.all.tests/.classpath b/tests/org.eclipse.qvtd.all.tests/.classpath
new file mode 100644
index 0000000..ad32c83
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.qvtd.all.tests/.gitignore b/tests/org.eclipse.qvtd.all.tests/.gitignore
new file mode 100644
index 0000000..42b3de3
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/.gitignore
@@ -0,0 +1,3 @@
+/src-gen
+/bin
+/QVTTrace.log
diff --git a/tests/org.eclipse.qvtd.all.tests/.launches/All QVTd Tests.launch b/tests/org.eclipse.qvtd.all.tests/.launches/All QVTd Tests.launch
new file mode 100644
index 0000000..3a806ef
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/.launches/All QVTd Tests.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.junit.launchconfig">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.qvtd.all.tests/src/org/eclipse/qvtd/all/tests/AllQVTdTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.qvtd.all.tests.AllQVTdTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.qvtd.all.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea"/>
+</launchConfiguration>
diff --git a/tests/org.eclipse.qvtd.all.tests/.project b/tests/org.eclipse.qvtd.all.tests/.project
new file mode 100644
index 0000000..d87c955
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.qvtd.all.tests</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.qvtd.all.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.qvtd.all.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..c537b63
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/tests/org.eclipse.qvtd.all.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.qvtd.all.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..03e24a0
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.qvtd.all.tests
+Bundle-Version: 0.11.0.qualifier
+Bundle-ClassPath: .
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.qvtd.xtext.qvtbase.tests,
+ org.eclipse.qvtd.xtext.qvtcore.ui,
+ org.eclipse.qvtd.xtext.qvtcore.tests,
+ org.eclipse.qvtd.xtext.qvtimperative.tests,
+ org.eclipse.qvtd.xtext.qvtrelation.tests
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
diff --git a/tests/org.eclipse.qvtd.all.tests/about.html b/tests/org.eclipse.qvtd.all.tests/about.html
new file mode 100644
index 0000000..87b2a50
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/about.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>About</title>
+</head><body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<pem>September 21, 2008</em></p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in ("Content").  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 ("EPL").  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, "Program" will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party ("Redistributor") and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+		
+		<h3>Third Party Content</h3>
+		<p>The Content includes items that have been sourced from third parties as set out below. If you 
+		did not receive this Content directly from the Eclipse Foundation, the following is provided 
+		for informational purposes only, and you should look to the Redistributor's license for 
+		terms and conditions of use.</p>
+		<p><em>
+		<br><br>
+		<strong>OMG QVT 1.0 specification (08-04-03)</strong> <br>
+		<ul>
+			<li><a href="http://www.omg.org/spec/QVT/1.0/">QVT 1.0 main page</a></li>
+			<li><a href="http://www.omg.org/docs/formal/08-04-03.pdf">QVT 1.0 specification</a></li>
+			<li><a href="http://www.omg.org/">OMG site</a></li>
+		</ul>
+		<br>
+		</em></p>
+		<p>A detailed list of fixes and clarifications with respect to those specifications may be found in <a href="QVTBaseCompliance.html">QVTBaseCompliance.html</a>.</p>
+</body></html>
\ No newline at end of file
diff --git a/tests/org.eclipse.qvtd.all.tests/build.properties b/tests/org.eclipse.qvtd.all.tests/build.properties
new file mode 100644
index 0000000..aa1a008
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.properties
diff --git a/tests/org.eclipse.qvtd.all.tests/plugin.properties b/tests/org.eclipse.qvtd.all.tests/plugin.properties
new file mode 100644
index 0000000..0604c8a
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/plugin.properties
@@ -0,0 +1,15 @@
+###############################################################################
+# Copyright (c) 2014 Eclipse Modeling Project 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:
+#     E.D.Willink - initial API and implementation
+#
+# $Id$
+###############################################################################
+
+pluginName = QVTd All Tests (Incubation)
+providerName = Eclipse Modeling Project
diff --git a/tests/org.eclipse.qvtd.all.tests/src/org/eclipse/qvtd/all/tests/AllQVTdTests.java b/tests/org.eclipse.qvtd.all.tests/src/org/eclipse/qvtd/all/tests/AllQVTdTests.java
new file mode 100644
index 0000000..f59cce9
--- /dev/null
+++ b/tests/org.eclipse.qvtd.all.tests/src/org/eclipse/qvtd/all/tests/AllQVTdTests.java
@@ -0,0 +1,57 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2002,2011 IBM 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:
+ *   IBM - Initial API and implementation
+ *   E.D.Willink - Bug 298634
+ *
+ * </copyright>
+ *
+ * $Id: AllXtextTests.java,v 1.10 2011/05/20 15:27:16 ewillink Exp $
+ */
+
+package org.eclipse.qvtd.all.tests;
+
+import java.util.Arrays;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.eclipse.qvtd.xtext.qvtcore.tests.AllQVTcoreTests;
+import org.eclipse.qvtd.xtext.qvtimperative.tests.AllQVTimperativeTests;
+import org.eclipse.qvtd.xtext.qvtrelation.tests.AllQVTrelationTests;
+
+/**
+ * Tests for the Xtext QVTc editor support.
+ */
+@SuppressWarnings("nls")
+public class AllQVTdTests extends TestCase
+{
+	public AllQVTdTests() {
+		super("");
+	}
+
+	public static Test suite() {
+		TestSuite result = new TestSuite("QVTd All Tests");			
+		result.addTest(AllQVTcoreTests.suite());
+		result.addTest(AllQVTimperativeTests.suite());
+		result.addTest(AllQVTrelationTests.suite());
+		return result;
+	}
+
+	public Object run(Object args)
+		throws Exception {
+
+		TestRunner.run(suite());
+		return Arrays
+			.asList(new String[] {"Please see raw test suite output for details."});
+	}
+}