diff --git a/pom.xml b/pom.xml
index c0382edfe277a9479005cfc4187dfe33f294cbae..8d7c6027edaf01074f0d3170c639374fadc4399e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,6 +45,7 @@
stratosphere-examples
stratosphere-clients
stratosphere-tests
+ stratosphere-test-utils
stratosphere-addons
stratosphere-dist
diff --git a/stratosphere-addons/avro/pom.xml b/stratosphere-addons/avro/pom.xml
index ddb9285e3d64e5dd53783848ae1fa827c045cf31..a6fb8a66ac16d269846102bf10ef33121fb5e239 100644
--- a/stratosphere-addons/avro/pom.xml
+++ b/stratosphere-addons/avro/pom.xml
@@ -44,7 +44,7 @@
eu.stratosphere
- stratosphere-tests
+ stratosphere-test-utils
${project.version}
test
diff --git a/stratosphere-addons/hadoop-compatibility/pom.xml b/stratosphere-addons/hadoop-compatibility/pom.xml
index 178aa652e0b9de351684c21c2d56b15ee4050897..660d5c9c11faf8848c017f11aa633f9d0cc6bd31 100644
--- a/stratosphere-addons/hadoop-compatibility/pom.xml
+++ b/stratosphere-addons/hadoop-compatibility/pom.xml
@@ -37,10 +37,9 @@
eu.stratosphere
- stratosphere-tests
+ stratosphere-test-utils
${project.version}
test
- test-jar
diff --git a/stratosphere-addons/spargel/pom.xml b/stratosphere-addons/spargel/pom.xml
index 4be02812242986cc3a6083834eb23a1bd05b866c..9de9f5379c20d98563b4223109eb1a25f9803cbb 100644
--- a/stratosphere-addons/spargel/pom.xml
+++ b/stratosphere-addons/spargel/pom.xml
@@ -40,10 +40,9 @@
eu.stratosphere
- stratosphere-tests
+ stratosphere-test-utils
${project.version}
test
- test-jar
diff --git a/stratosphere-test-utils/bin/src/test/resources/ClusterConfigs/localConfig1TM.prop b/stratosphere-test-utils/bin/src/test/resources/ClusterConfigs/localConfig1TM.prop
new file mode 100644
index 0000000000000000000000000000000000000000..a1e4ad927d8cafb081e4310ecbdd38fa5eed397b
--- /dev/null
+++ b/stratosphere-test-utils/bin/src/test/resources/ClusterConfigs/localConfig1TM.prop
@@ -0,0 +1,4 @@
+ClusterProvider#clusterId=local1TM
+LocalClusterProvider#numTaskTrackers=1
+ClusterProvider#clusterProviderType=LocalClusterProvider
+FilesystemProvider#filesystemType=local_fs
\ No newline at end of file
diff --git a/stratosphere-test-utils/bin/src/test/resources/ClusterConfigs/localConfig4TM.prop b/stratosphere-test-utils/bin/src/test/resources/ClusterConfigs/localConfig4TM.prop
new file mode 100644
index 0000000000000000000000000000000000000000..ea7e670ff612d16b8fffecee5bfb317064395c42
--- /dev/null
+++ b/stratosphere-test-utils/bin/src/test/resources/ClusterConfigs/localConfig4TM.prop
@@ -0,0 +1,4 @@
+ClusterProvider#clusterId=local4TM
+LocalClusterProvider#numTaskTrackers=4
+ClusterProvider#clusterProviderType=LocalClusterProvider
+FilesystemProvider#filesystemType=mini_hdfs
\ No newline at end of file
diff --git a/stratosphere-test-utils/bin/src/test/resources/TestConfigs/eu.stratosphere.pact.test.contracts.prop b/stratosphere-test-utils/bin/src/test/resources/TestConfigs/eu.stratosphere.pact.test.contracts.prop
new file mode 100644
index 0000000000000000000000000000000000000000..b21d989af384066ac382fc865488c6fac167c06f
--- /dev/null
+++ b/stratosphere-test-utils/bin/src/test/resources/TestConfigs/eu.stratosphere.pact.test.contracts.prop
@@ -0,0 +1,5 @@
+CoGroupITCase=local1TM,local4TM
+CrossITCase=local1TM
+MapITCase=local1TM,local4TM
+MatchITCase=local1TM
+ReduceITCase=local1TM
\ No newline at end of file
diff --git a/stratosphere-test-utils/pom.xml b/stratosphere-test-utils/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8417ffcdbb94c138fb98519da242ab94654c7b85
--- /dev/null
+++ b/stratosphere-test-utils/pom.xml
@@ -0,0 +1,51 @@
+
+
+
+ 4.0.0
+
+
+ eu.stratosphere
+ stratosphere
+ 0.5-SNAPSHOT
+ ..
+
+
+ stratosphere-test-utils
+ stratosphere-test-utils
+
+ jar
+
+
+
+ eu.stratosphere
+ stratosphere-core
+ ${project.version}
+
+
+ eu.stratosphere
+ stratosphere-compiler
+ ${project.version}
+
+
+ eu.stratosphere
+ stratosphere-runtime
+ ${project.version}
+
+
+ eu.stratosphere
+ stratosphere-clients
+ ${project.version}
+
+
+ eu.stratosphere
+ stratosphere-java
+ ${project.version}
+
+
+ junit
+ junit
+ 4.7
+
+
+
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/testdata/ConnectedComponentsData.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/testdata/ConnectedComponentsData.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/testdata/ConnectedComponentsData.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/testdata/ConnectedComponentsData.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/testdata/EnumTriangleData.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/testdata/EnumTriangleData.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/testdata/EnumTriangleData.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/testdata/EnumTriangleData.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/testdata/KMeansData.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/testdata/KMeansData.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/testdata/KMeansData.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/testdata/KMeansData.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/testdata/WordCountData.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/testdata/WordCountData.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/testdata/WordCountData.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/testdata/WordCountData.java
diff --git a/stratosphere-tests/src/main/java/eu/stratosphere/test/util/AbstractTestBase.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/AbstractTestBase.java
similarity index 100%
rename from stratosphere-tests/src/main/java/eu/stratosphere/test/util/AbstractTestBase.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/AbstractTestBase.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/Constants.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/Constants.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/Constants.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/Constants.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/FailingTestBase.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/FailingTestBase.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/FailingTestBase.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/FailingTestBase.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/FileWriter.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/FileWriter.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/FileWriter.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/FileWriter.java
diff --git a/stratosphere-tests/src/main/java/eu/stratosphere/test/util/JavaProgramTestBase.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/JavaProgramTestBase.java
similarity index 100%
rename from stratosphere-tests/src/main/java/eu/stratosphere/test/util/JavaProgramTestBase.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/JavaProgramTestBase.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/TestBase.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/TestBase.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/TestBase.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/TestBase.java
diff --git a/stratosphere-tests/src/main/java/eu/stratosphere/test/util/TestBase2.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/TestBase2.java
similarity index 100%
rename from stratosphere-tests/src/main/java/eu/stratosphere/test/util/TestBase2.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/TestBase2.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/filesystem/FilesystemProvider.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/filesystem/FilesystemProvider.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/filesystem/FilesystemProvider.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/filesystem/FilesystemProvider.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/filesystem/HDFSProvider.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/filesystem/HDFSProvider.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/filesystem/HDFSProvider.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/filesystem/HDFSProvider.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/filesystem/LocalFSProvider.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/filesystem/LocalFSProvider.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/filesystem/LocalFSProvider.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/filesystem/LocalFSProvider.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/minicluster/ClusterProvider.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/minicluster/ClusterProvider.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/minicluster/ClusterProvider.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/minicluster/ClusterProvider.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/minicluster/ClusterProviderPool.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/minicluster/ClusterProviderPool.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/minicluster/ClusterProviderPool.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/minicluster/ClusterProviderPool.java
diff --git a/stratosphere-tests/src/test/java/eu/stratosphere/test/util/minicluster/LocalClusterProvider.java b/stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/minicluster/LocalClusterProvider.java
similarity index 100%
rename from stratosphere-tests/src/test/java/eu/stratosphere/test/util/minicluster/LocalClusterProvider.java
rename to stratosphere-test-utils/src/main/java/eu/stratosphere/test/util/minicluster/LocalClusterProvider.java
diff --git a/stratosphere-test-utils/src/test/resources/ClusterConfigs/localConfig1TM.prop b/stratosphere-test-utils/src/test/resources/ClusterConfigs/localConfig1TM.prop
new file mode 100644
index 0000000000000000000000000000000000000000..a1e4ad927d8cafb081e4310ecbdd38fa5eed397b
--- /dev/null
+++ b/stratosphere-test-utils/src/test/resources/ClusterConfigs/localConfig1TM.prop
@@ -0,0 +1,4 @@
+ClusterProvider#clusterId=local1TM
+LocalClusterProvider#numTaskTrackers=1
+ClusterProvider#clusterProviderType=LocalClusterProvider
+FilesystemProvider#filesystemType=local_fs
\ No newline at end of file
diff --git a/stratosphere-test-utils/src/test/resources/ClusterConfigs/localConfig4TM.prop b/stratosphere-test-utils/src/test/resources/ClusterConfigs/localConfig4TM.prop
new file mode 100644
index 0000000000000000000000000000000000000000..ea7e670ff612d16b8fffecee5bfb317064395c42
--- /dev/null
+++ b/stratosphere-test-utils/src/test/resources/ClusterConfigs/localConfig4TM.prop
@@ -0,0 +1,4 @@
+ClusterProvider#clusterId=local4TM
+LocalClusterProvider#numTaskTrackers=4
+ClusterProvider#clusterProviderType=LocalClusterProvider
+FilesystemProvider#filesystemType=mini_hdfs
\ No newline at end of file
diff --git a/stratosphere-test-utils/src/test/resources/TestConfigs/eu.stratosphere.pact.test.contracts.prop b/stratosphere-test-utils/src/test/resources/TestConfigs/eu.stratosphere.pact.test.contracts.prop
new file mode 100644
index 0000000000000000000000000000000000000000..b21d989af384066ac382fc865488c6fac167c06f
--- /dev/null
+++ b/stratosphere-test-utils/src/test/resources/TestConfigs/eu.stratosphere.pact.test.contracts.prop
@@ -0,0 +1,5 @@
+CoGroupITCase=local1TM,local4TM
+CrossITCase=local1TM
+MapITCase=local1TM,local4TM
+MatchITCase=local1TM
+ReduceITCase=local1TM
\ No newline at end of file
diff --git a/stratosphere-test-utils/src/test/resources/TestConfigs/eu.stratosphere.pact.test.pactPrograms.prop b/stratosphere-test-utils/src/test/resources/TestConfigs/eu.stratosphere.pact.test.pactPrograms.prop
new file mode 100644
index 0000000000000000000000000000000000000000..fd81262923645d3f3e9a8f098c46edd4aca14ff3
--- /dev/null
+++ b/stratosphere-test-utils/src/test/resources/TestConfigs/eu.stratosphere.pact.test.pactPrograms.prop
@@ -0,0 +1,5 @@
+TPCHQuery3ITCase=local1TM,local4TM
+TPCHQuery4ITCase=local1TM,local4TM
+TPCHQuery9ITCase=local1TM,local4TM
+TPCHQuery10ITCase=local1TM,local4TM
+GlobalSortingITCase=local1TM,local4TM
\ No newline at end of file
diff --git a/stratosphere-tests/pom.xml b/stratosphere-tests/pom.xml
index 3f6d7286deec32a207446c311fdcf36ae3c8d236..8591258d33dd4ccb46831d29cb480db167912676 100644
--- a/stratosphere-tests/pom.xml
+++ b/stratosphere-tests/pom.xml
@@ -53,6 +53,12 @@
${project.version}
test
+
+ eu.stratosphere
+ stratosphere-test-utils
+ ${project.version}
+ test
+
eu.stratosphere
stratosphere-java-examples