[570995] Ensure test models are unregistered/registered
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
index c27a018..658d655 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/OCL2QVTiTestCases.java
@@ -263,8 +263,9 @@
 		}
 		finally {
 			myQVT.dispose();
-			EPackage.Registry.INSTANCE.remove(example1.source.SourcePackage.eNS_URI);
-			EPackage.Registry.INSTANCE.remove(example1.target.TargetPackage.eNS_URI);
+			cleanup("http://cs2as/tests/example1/env/1.0",
+				example1.source.SourcePackage.eNS_URI,
+				example1.target.TargetPackage.eNS_URI);
 		}
 	}
 
@@ -364,9 +365,10 @@
 		}
 		finally {
 			myQVT.dispose();
-			EPackage.Registry.INSTANCE.remove(example2.classes.ClassesPackage.eNS_URI);
-			EPackage.Registry.INSTANCE.remove(example2.classescs.ClassescsPackage.eNS_URI);
-			EPackage.Registry.INSTANCE.remove(example2.classescstraces.ClassescstracesPackage.eNS_URI);
+			cleanup("http://cs2as/tests/example2/env/1.0",
+				example2.classescs.ClassescsPackage.eNS_URI,
+				example2.classes.ClassesPackage.eNS_URI,
+				example2.classescstraces.ClassescstracesPackage.eNS_URI);
 		}
 	}
 
diff --git a/tests/org.eclipse.qvtd.umlx.tests/src/org/eclipse/qvtd/umlx/tests/UMLXCompilerTests.java b/tests/org.eclipse.qvtd.umlx.tests/src/org/eclipse/qvtd/umlx/tests/UMLXCompilerTests.java
index 3664b38..2f6b2d6 100644
--- a/tests/org.eclipse.qvtd.umlx.tests/src/org/eclipse/qvtd/umlx/tests/UMLXCompilerTests.java
+++ b/tests/org.eclipse.qvtd.umlx.tests/src/org/eclipse/qvtd/umlx/tests/UMLXCompilerTests.java
@@ -263,6 +263,9 @@
 		}
 		finally {
 			myQVT2.dispose();
+			cleanup("http://www.eclipse.org/qvtd/examples/umlx/hstm2fstm/HierarchicalStateMachine",
+					"http://www.eclipse.org/qvtd-example/org/eclipse/qvtd/xtext/umlx/tests/hstm2fstm/HierarchicalStateMachine2FlatStateMachine",
+					"http://www.eclipse.org/qvtd/examples/umlx/hstm2fstm/FlatStateMachine");
 		}
 	}
 }
diff --git a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java
index fc41872..0b4ab96 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtbase.tests/src/org/eclipse/qvtd/xtext/qvtbase/tests/PivotTestCase.java
@@ -18,12 +18,17 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.WeakHashMap;
 
 import org.eclipse.emf.common.util.Diagnostic;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EValidator;
 import org.eclipse.emf.ecore.EStructuralFeature.Setting;
 import org.eclipse.emf.ecore.impl.BasicEObjectImpl;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -38,6 +43,8 @@
 import org.eclipse.ocl.pivot.internal.ecore.as2es.AS2Ecore;
 import org.eclipse.ocl.pivot.internal.resource.ASResourceImpl;
 import org.eclipse.ocl.pivot.internal.utilities.EnvironmentFactoryInternal;
+import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
+import org.eclipse.ocl.pivot.utilities.AbstractEnvironmentFactory;
 import org.eclipse.ocl.pivot.utilities.ClassUtil;
 import org.eclipse.ocl.pivot.utilities.LabelUtil;
 import org.eclipse.ocl.pivot.utilities.OCL;
@@ -64,6 +71,24 @@
 	public static final @NonNull String PLUGIN_ID = "org.eclipse.qvtd.xtext.qvtbase.tests";
 	public static final @NonNull TracingOption TEST_START = new TracingOption(PLUGIN_ID, "test/start");
 
+	/*
+	 * The following may be tweaked to assist debugging.
+	 */
+	//public static boolean DEBUG_GC = false;			// True performs an enthusuastic resource release and GC at the end of each test
+	public static boolean DEBUG_ID = false;			// True prints the start and end of each test.
+	{
+		PivotUtilInternal.noDebug = false;
+		//	DEBUG_GC = true;
+		DEBUG_ID = true;
+		AbstractEnvironmentFactory.liveEnvironmentFactories = new WeakHashMap<>();	// Prints the create/finalize of each EnvironmentFactory
+		//	PivotMetamodelManager.liveMetamodelManagers = new WeakHashMap<>();			// Prints the create/finalize of each MetamodelManager
+		//	StandaloneProjectMap.liveStandaloneProjectMaps = new WeakHashMap<>();		// Prints the create/finalize of each StandaloneProjectMap
+		//	ResourceSetImpl.liveResourceSets = new WeakHashMap<>();						// Requires edw-debug private EMF branch
+		TEST_START.setState(true);
+		AbstractEnvironmentFactory.ENVIRONMENT_FACTORY_ATTACH.setState(true);
+		ThreadLocalExecutor.THREAD_LOCAL_ENVIRONMENT_FACTORY.setState(true);
+	}
+
 	public static @NonNull List<Diagnostic> assertDiagnostics(@NonNull String prefix, @NonNull List<Diagnostic> diagnostics, String... messages) {
 		Map<String, Integer> expected = new HashMap<String, Integer>();
 		for (String message : messages) {
@@ -260,12 +285,29 @@
 	public static @NonNull List<Diagnostic> assertValidationDiagnostics(@NonNull String prefix, @NonNull Resource resource, Map<Object, Object> validationContext, String... messages) {
 		List<Diagnostic> diagnostics = new ArrayList<Diagnostic>();
 		for (EObject eObject : resource.getContents()) {
-			Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject, validationContext);
+			Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject, validationContext);		// FIXME inline 1 call level
 			diagnostics.addAll(diagnostic.getChildren());
 		}
 		return messages != null ? assertDiagnostics(prefix, diagnostics, messages) : Collections.emptyList();
 	}
 
+	/**
+	 * Remove the global EPackage.Registry and EValidator.Registry for the nsURIs.
+	 * This should be invoked at the end of a test that installs compiled models to avoid pollution
+	 * affecting subsequent tests that may re-use the nsURI.
+	 */
+	protected static void cleanup(@NonNull String @NonNull ... nsURIs) {
+		for (@NonNull String nsURI : nsURIs) {
+			Object ePackage = EPackage.Registry.INSTANCE.remove(nsURI);
+			if (ePackage instanceof EPackage) {
+				EValidator.Registry.INSTANCE.remove(ePackage);
+			}
+			else {
+				QVTruntimeUtil.errPrintln("No EPackage to cleanup for '" + nsURI + "'");
+			}
+		}
+	}
+
 	protected static Value failOn(String expression, Throwable e) {
 		if (e instanceof EvaluationException) {
 			Throwable eCause = e.getCause();
@@ -346,17 +388,37 @@
 		return ClassUtil.nonNullState(super.getName());
 	}
 
+	private static List<String> savedEPackageRegistry = null;
+
 	@Override
 	protected void setUp() throws Exception {
+		savedEPackageRegistry = new ArrayList<>(EPackage.Registry.INSTANCE.keySet());
+		Collections.sort(savedEPackageRegistry);
 		if (!TEST_START.isActive()) {
 			QVTruntimeUtil.contextLine = "-----Starting " + getClass().getSimpleName() + "." + getName() + "-----";
 		}
 		super.setUp();
+		if (DEBUG_ID) {
+			PivotUtilInternal.debugPrintln("-----Starting " + getClass().getSimpleName() + "." + getName() + "-----");
+		}
 		TracingOption.resetAll();
 		ASResourceImpl.CHECK_IMMUTABILITY.setState(true);
 		TEST_START.println("-----Starting " + getClass().getSimpleName() + "." + getName() + "-----");
 		startTime = System.nanoTime();
+		/*	List<String> nsURIs = new ArrayList<>();
+		for (EPackage ePackage : EValidator.Registry.INSTANCE.keySet()) {
+			nsURIs.add(ePackage.getNsURI());
+		}
+		System.out.println("EValidator.Registry.INSTANCE size = " + EValidator.Registry.INSTANCE.size());
+		Collections.sort(nsURIs);
+		for (String nsURI : nsURIs) {
+			System.out.println("\t" + nsURI);
+		} */
 	}
+
+
+
+
 	static long startTime;
 
 	@Override
@@ -366,5 +428,23 @@
 		//	long time = System.nanoTime() - startTime;
 		super.tearDown();
 		QVTruntimeUtil.contextLine = null;
+		//
+		//	Diagnose the unexpected residual EPackage.Registry that are being left lying around to pollute another test.
+		//
+		Set<String> newSet = new HashSet<>(EPackage.Registry.INSTANCE.keySet());
+		newSet.removeAll(savedEPackageRegistry);
+		if (newSet.size() > 0) {
+			List<String> newList = new ArrayList<>(newSet);
+			Collections.sort(savedEPackageRegistry);
+			//	QVTruntimeUtil.errPrintln("EPackage.Registry.INSTANCE pre-extras");
+			for (String nsURI : newList) {
+				if (nsURI.contains("example") || nsURI.contains("test") || (!nsURI.startsWith("http://www.eclipse.org") && !nsURI.startsWith("http://www.w3.org"))) {
+					PivotUtilInternal.debugPrintln("Extra " + nsURI);
+				}
+			}
+		}
+		if (DEBUG_ID) {
+			PivotUtilInternal.debugPrintln("==> Finish " + getClass().getSimpleName() + "." + getName());
+		}
 	}
 }
diff --git a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java
index e153cf7..a332e44 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtcore.tests/src/org/eclipse/qvtd/xtext/qvtcore/tests/QVTcCompilerTests.java
@@ -55,6 +55,8 @@
 import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simplerdbms.SimplerdbmsPackage;
 import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml.SimpleumlPackage;
 import org.eclipse.qvtd.xtext.qvtcore.tests.uml2rdbms.simpleuml2rdbms.Simpleuml2rdbmsPackage;
+import org.eclipse.qvtd.xtext.qvtcore.tests.upper2lower.simplegraph.SimplegraphPackage;
+import org.eclipse.qvtd.xtext.qvtcore.tests.upper2lower.simplegraph2graph.Simplegraph2graphPackage;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -241,6 +243,9 @@
 		}
 		finally {
 			myQVT.dispose();
+			cleanup("http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families2Persons",
+				"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families",
+					"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Persons");
 		}
 	}
 
@@ -367,6 +372,8 @@
 		}
 		finally {
 			myQVT.dispose();
+			cleanup("http://www.eclipse.org/qvtd/xtext/qvtcore/tests/forward2reverse/1.0/List2List",
+					"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/forward2reverse/1.0/DoublyLinkList");
 		}
 	}
 
@@ -432,6 +439,9 @@
 		}
 		finally {
 			myQVT.dispose();
+			cleanup("http://www.eclipse.org/qvtd/xtext/qvtcore/tests/HSV2HSL/1.0/HSLTree",
+				"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/HSV2HLS/1.0/HSVTree",
+					"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/HSV2HSL/1.0/HSVtoHSL");
 		}
 	}
 
@@ -468,6 +478,9 @@
 		}
 		finally {
 			myQVT.dispose();
+			cleanup("http://www.eclipse.org/qvtd/xtext/qvtcore/tests/UML2RDBMS/1.0/SimpleRDBMS",
+				"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/UML2RDBMS/1.0/simpleUML",
+					"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/UML2RDBMS/1.0/SimpleUMLtoRDBMS");
 		}
 	}
 
@@ -546,6 +559,9 @@
 		}
 		finally {
 			myQVT.dispose();
+			cleanup("http://www.eclipse.org/qvtd/xtext/qvtcore/tests/UML2RDBMS/1.0/SimpleRDBMS",
+				"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/UML2RDBMS/1.0/simpleUML",
+					"http://www.eclipse.org/qvtd/xtext/qvtcore/tests/UML2RDBMS/1.0/SimpleUMLtoRDBMS");
 		}
 	}
 
@@ -600,6 +616,9 @@
 		}
 		finally {
 			myQVT.dispose();
+			cleanup("http://www.eclipse.org/qvtd/examples/qvtcore/UML2RDBMS/1.0/SimpleUMLtoRDBMS",
+				"http://www.eclipse.org/qvtd/examples/qvtcore/UML2RDBMS/1.0/simpleUML",
+					"http://www.eclipse.org/qvtd/examples/qvtcore/UML2RDBMS/1.0/SimpleRDBMS");
 		}
 	}
 
@@ -619,6 +638,8 @@
 		}
 		finally {
 			myQVT.dispose();
+			cleanup(SimplegraphPackage.eNS_URI,
+				Simplegraph2graphPackage.eNS_URI);
 		}
 	}
 
@@ -634,6 +655,8 @@
 		//		AbstractMerger.FAILURE.setState(true);
 		//		AbstractMerger.LATE.setState(true);
 		//	QVTiProductionConsumption.SUMMARY.setState(true);
+		EPackage.Registry.INSTANCE.put(SimplegraphPackage.eNS_URI, SimplegraphPackage.eINSTANCE);
+		EPackage.Registry.INSTANCE.put(Simplegraph2graphPackage.eNS_URI, Simplegraph2graphPackage.eINSTANCE);
 		MyQVT myQVT = createQVT("upper2lower", getModelsURI("upper2lower/Upper2Lower.qvtcas"));
 		//		myQVT.getEnvironmentFactory().setEvaluationTracingEnabled(true);
 		try {
@@ -648,6 +671,8 @@
 		}
 		finally {
 			myQVT.dispose();
+			cleanup(SimplegraphPackage.eNS_URI,
+				Simplegraph2graphPackage.eNS_URI);
 		}
 	}
 }
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiCompilerTests.java
index 4b2dd09..fd46db2 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiCompilerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiCompilerTests.java
@@ -46,7 +46,6 @@
 import org.eclipse.ocl.examples.codegen.dynamic.JavaFileUtil;
 import org.eclipse.ocl.examples.codegen.dynamic.OCL2JavaFileObject;
 import org.eclipse.ocl.examples.codegen.utilities.CGUtil;
-import org.eclipse.ocl.examples.pivot.tests.PivotTestCase.GlobalStateMemento;
 import org.eclipse.ocl.examples.xtext.tests.TestFile;
 import org.eclipse.ocl.examples.xtext.tests.TestProject;
 import org.eclipse.ocl.examples.xtext.tests.TestUtil;
@@ -109,7 +108,7 @@
 	protected static class MyQVT extends OCLInternal
 	{
 		protected final @NonNull TestProject testProject;
-		private GlobalStateMemento globalStateMemento = new GlobalStateMemento();
+		//		private GlobalStateMemento globalStateMemento = new GlobalStateMemento();
 
 		public MyQVT(@NonNull TestProject testProject, @NonNull QVTiEnvironmentFactory environmentFactory) {
 			super(environmentFactory);
@@ -140,8 +139,8 @@
 		@Override
 		public synchronized void dispose() {
 			super.dispose();
-			globalStateMemento.restoreGlobalState();
-			globalStateMemento = null;
+			//			globalStateMemento.restoreGlobalState();
+			//			globalStateMemento = null;
 		}
 
 		public @NonNull Resource doLoad_ConcreteWithOCL(@NonNull URI inputURI) throws Exception {
@@ -479,6 +478,9 @@
 		myQVT.execute(tx);
 		myQVT.saveOutput(tx, "hsl", outputModelURI, referenceModelURI, null);
 		myQVT.dispose();
+		cleanup("http://www.eclipse.org/qvt/examples/0.1/HSVTree",
+			"http://www.eclipse.org/qvt/examples/0.1/HSVtoHSL",
+				"http://www.eclipse.org/qvt/examples/0.1/HSLTree");
 	}
 
 	public void testQVTiCompiler_ClassesCS2AS_CG() throws Exception {
@@ -509,9 +511,15 @@
 		myQVT.execute(tx);
 		myQVT.saveOutput(tx, "rightAS", outputModelURI, referenceModelURI, null);
 		myQVT.dispose();
+		cleanup("http://tracesmodel/1.0/classescstraces",
+			"http://ocldependencyanalysis/classescs/1.0",
+				"http://ocldependencyanalysis/classes/1.0");
 	}
 
 	public void testQVTiCompiler_ManualUML2RDBMS_CG() throws Exception {
+		EPackage.Registry.INSTANCE.put(manualuml2rdbms.rdbms.RDBMSPackage.eNS_URI, manualuml2rdbms.rdbms.RDBMSPackage.eINSTANCE);
+		EPackage.Registry.INSTANCE.put(manualuml2rdbms.uml2rdbms.UML2RDBMSPackage.eNS_URI, manualuml2rdbms.uml2rdbms.UML2RDBMSPackage.eINSTANCE);
+		EPackage.Registry.INSTANCE.put(manualuml2rdbms.uml.UMLPackage.eNS_URI, manualuml2rdbms.uml.UMLPackage.eINSTANCE);
 		URI modelsProjectURI = getModelsURI("ManualUML2RDBMS");
 		URI transformURI = modelsProjectURI.appendSegment("ManualUML2RDBMS.qvti");
 		URI genModelURI = modelsProjectURI.appendSegment("ManualUML2RDBMS.genmodel");
@@ -528,9 +536,15 @@
 		myQVT.execute(tx);
 		myQVT.saveOutput(tx, "rdbms", outputModelURI, referenceModelURI, ManualRDBMSNormalizer.INSTANCE);
 		myQVT.dispose();
+		cleanup(manualuml2rdbms.uml.UMLPackage.eNS_URI,
+			manualuml2rdbms.uml2rdbms.UML2RDBMSPackage.eNS_URI,
+			manualuml2rdbms.rdbms.RDBMSPackage.eNS_URI);
 	}
 
 	public void testQVTiCompiler_SimpleUML2RDBMS_CG() throws Exception {
+		EPackage.Registry.INSTANCE.put(simpleuml2rdbms.rdbms.RDBMSPackage.eNS_URI, simpleuml2rdbms.rdbms.RDBMSPackage.eINSTANCE);
+		EPackage.Registry.INSTANCE.put(simpleuml2rdbms.uml2rdbms.UML2RDBMSPackage.eNS_URI, simpleuml2rdbms.uml2rdbms.UML2RDBMSPackage.eINSTANCE);
+		EPackage.Registry.INSTANCE.put(simpleuml2rdbms.uml.UMLPackage.eNS_URI, simpleuml2rdbms.uml.UMLPackage.eINSTANCE);
 		URI modelsProjectURI = getModelsURI("SimpleUML2RDBMS");
 		URI transformURI = modelsProjectURI.appendSegment("SimpleUML2RDBMS.qvti");
 		URI genModelURI = modelsProjectURI.appendSegment("SimpleUML2RDBMS.genmodel");
@@ -547,6 +561,9 @@
 		myQVT.execute(tx);
 		myQVT.saveOutput(tx, "rdbms", outputModelURI, referenceModelURI, SimpleRDBMSNormalizer.INSTANCE);
 		myQVT.dispose();
+		cleanup(simpleuml2rdbms.uml.UMLPackage.eNS_URI,
+			simpleuml2rdbms.uml2rdbms.UML2RDBMSPackage.eNS_URI,
+			simpleuml2rdbms.rdbms.RDBMSPackage.eNS_URI);
 	}
 
 	public void testQVTiCompiler_Tree2TallTree_CG() throws Exception {
@@ -570,6 +587,7 @@
 		myQVT.saveOutput(tx, "talltree", outputModelURI, referenceModelURI, null);
 		Execution2GraphVisitor.writeGraphMLfile(tx, getTestURI("Tree2TallTree-execution.graphml"));
 		myQVT.dispose();
+		cleanup(TreePackage.eNS_URI);
 	}
 
 	public void testQVTiCompiler_Tree2TallTree_Changed_CG() throws Exception {
@@ -613,6 +631,7 @@
 		Execution2GraphVisitor.writeGraphMLfile(tx, getTestURI("Tree2TallTree-incChanged.graphml"));
 		myQVT.saveOutput(tx, "talltree", changedOutputModelURI, changedReferenceModelURI, null);
 		myQVT.dispose();
+		cleanup(TreePackage.eNS_URI);
 	}
 
 	public void testQVTiCompiler_Tree2TallTree_Copied_CG() throws Exception {
@@ -660,6 +679,9 @@
 
 
 		myQVT.dispose();
+		cleanup("http://www.eclipse.org/qvt/examples/0.1/List2List",
+			"http://www.eclipse.org/qvt/examples/0.1/Tree",
+				"http://www.eclipse.org/qvt/examples/0.1/TallTree");
 	}
 
 	public void testQVTiCompiler_Tree2TallTree_Deleted_CG() throws Exception {
@@ -705,6 +727,7 @@
 		myQVT.saveOutput(tx, "talltree", deletedOutputModelURI, deletedReferenceModelURI, null);
 		monitor.dispose();
 		myQVT.dispose();
+		cleanup(TreePackage.eNS_URI);
 	}
 
 	/*	public void testQVTiCompiler_Tree2TallTree_Incremental_CG2() throws Exception {
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiInterpreterTests.java b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiInterpreterTests.java
index 4bb02a2..9755e50 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiInterpreterTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/QVTiInterpreterTests.java
@@ -354,6 +354,9 @@
 		myQVT.saveExecutionGraph(getTestURI("ManualUML2RDBMS_LAZY.graphml"));
 		myQVT.checkOutput(outputURI, getModelsURI("ManualUML2RDBMS/ManualRDBMSPeopleValidate.xmi"), ManualRDBMSNormalizer.INSTANCE);
 		myQVT.dispose();
+		cleanup("http://www.eclipse.org/qvt/examples/0.1/ManualUML",
+			"http://www.eclipse.org/qvt/examples/0.1/ManualUML2RDBMS",
+				"http://www.eclipse.org/qvt/examples/0.1/ManualRDBMS");
 	}
 
 	/**
@@ -389,6 +392,9 @@
 		myQVT.saveExecutionGraph(getTestURI("SimpleUML2RDBMS_LAZY.graphml"));
 		myQVT.checkOutput(outputURI, getModelsURI("SimpleUML2RDBMS/SimpleRDBMSPeopleValidate.xmi"), SimpleRDBMSNormalizer.INSTANCE);
 		myQVT.dispose();
+		cleanup("http://www.eclipse.org/qvt/examples/0.1/SimpleUML",
+			"http://www.eclipse.org/qvt/examples/0.1/SimpleUML2RDBMS",
+				"http://www.eclipse.org/qvt/examples/0.1/SimpleRDBMS");
 	}
 
 
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
index d5b348e..05f096e 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
@@ -397,6 +397,7 @@
 		}
 		finally {
 			myQVT4.dispose();
+			cleanup("http://www.eclipse.org/qvtd-example/org/eclipse/qvtd/xtext/qvtrelation/tests/newatl2qvtr/NewATL2QVTr");
 		}
 	}
 
@@ -886,6 +887,7 @@
 		}
 		finally {
 			myQVT2.dispose();
+			cleanup("http://www.eclipse.org/qvtd-example/org/eclipse/ocl/pivot2/ecore2pivotRoot/Ecore2PivotRoot");
 		}
 	}
 
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrDebuggerTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrDebuggerTests.java
index 512376a..35a5d3d 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrDebuggerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrDebuggerTests.java
@@ -379,5 +379,8 @@
 		TestUtil.assertSameModel(expectedResource, actualResource);
 
 		ocl.dispose();
+		cleanup("http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/FlatStateMachine",
+			"http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine",
+				"http://www.eclipse.org/qvtd-example/org/eclipse/qvtd/xtext/qvtrelation/tests/hstm2fstm/HierarchicalStateMachine2FlatStateMachine");
 	}
 }