diff --git a/pom.xml b/pom.xml
index 65f255396..fd8f5c13d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,7 +64,6 @@
tool
antlr4-maven-plugin
antlr4-testgen-maven-plugin
- runtime-testsuite
@@ -117,5 +116,15 @@
-
+
+
+
+
+ rts
+
+ runtime-testsuite
+
+
+
+
diff --git a/runtime-testsuite/get.sh b/runtime-testsuite/get.sh
new file mode 100755
index 000000000..5f9fa791e
--- /dev/null
+++ b/runtime-testsuite/get.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+# Script we're using to get some of the test classes required for the other targets
+
+pwd=`pwd`
+dir="$pwd/test/org/antlr/v4/test/runtime"
+
+# python2
+wget https://raw.githubusercontent.com/antlr/antlr4-python2/master/tool/test/org/antlr/v4/test/runtime/python2/BasePython2Test.java -O $dir/python2/BasePython2Test.java
+
+# python3
+wget https://raw.githubusercontent.com/antlr/antlr4-python3/master/tool/test/org/antlr/v4/test/runtime/python3/BasePython3Test.java -O $dir/python3/BasePython3Test.java
+
+mkdir -p $dir/python
+
+wget https://raw.githubusercontent.com/antlr/antlr4-python3/master/tool/test/org/antlr/v4/test/runtime/python/BasePythonTest.java -O $dir/python/BasePythonTest.java
+
+# javascript
+wget https://raw.githubusercontent.com/antlr/antlr4-javascript/master/tool/test/org/antlr/v4/test/runtime/javascript/node/BaseTest.java -O $dir/javascript/node/BaseTest.java
+
+# csharp
+wget https://raw.githubusercontent.com/antlr/antlr4-csharp/master/tool/test/org/antlr/v4/test/runtime/csharp/BaseTest.java -O $dir/csharp/BaseTest.java
diff --git a/runtime-testsuite/pom.xml b/runtime-testsuite/pom.xml
index 6606bc788..3ff77f307 100644
--- a/runtime-testsuite/pom.xml
+++ b/runtime-testsuite/pom.xml
@@ -28,6 +28,12 @@
antlr4
${project.version}
+
+ org.antlr
+ antlr4
+ ${project.version}
+ test-jar
+
junit
junit
@@ -38,5 +44,103 @@
src
+
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.2.1
+
+ true
+
+
+
+ python2
+ generate-test-resources
+
+ wget
+
+
+ https://raw.githubusercontent.com/antlr/antlr4-python2/master/tool/test/org/antlr/v4/test/runtime/python2/BasePython2Test.java
+ generated-sources/org/antlr/v4/test/runtime/python2/BasePython2Test.java
+
+
+
+ python3
+ generate-test-resources
+
+ wget
+
+
+ https://raw.githubusercontent.com/antlr/antlr4-python3/master/tool/test/org/antlr/v4/test/runtime/python3/BasePython3Test.java
+ generated-sources/org/antlr/v4/test/runtime/python3/BasePython3Test.java
+
+
+
+ python
+ generate-test-resources
+
+ wget
+
+
+ https://raw.githubusercontent.com/antlr/antlr4-python3/master/tool/test/org/antlr/v4/test/runtime/python/BasePythonTest.java
+ generated-sources/org/antlr/v4/test/runtime/python/BasePythonTest.java
+
+
+
+ javascript
+ generate-test-resources
+
+ wget
+
+
+ https://raw.githubusercontent.com/antlr/antlr4-javascript/master/tool/test/org/antlr/v4/test/runtime/javascript/node/BaseTest.java
+ generated-sources/org/antlr/v4/test/runtime/javascript/node/BaseTest.java
+
+
+
+ csharp
+ generate-test-resources
+
+ wget
+
+
+ https://raw.githubusercontent.com/antlr/antlr4-csharp/master/tool/test/org/antlr/v4/test/runtime/csharp/BaseTest.java
+ generated-sources/org/antlr/v4/test/runtime/csharp/BaseTest.java
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 1.8
+
+
+ add-test-source
+ generate-test-sources
+
+ add-test-source
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ ../../antlr4-python2/src
+ ../../antlr4-python3/src
+ ../../antlr4-csharp/runtime/CSharp/Antlr4.Runtime/Antlr4.Runtime.mono.csproj
+ ../../antlr4-javascript/src
+
+
+
+
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestCompositeLexers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestCompositeLexers.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestCompositeLexers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestCompositeLexers.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestCompositeParsers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestCompositeParsers.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestCompositeParsers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestCompositeParsers.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestFullContextParsing.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestFullContextParsing.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestFullContextParsing.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestFullContextParsing.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestLeftRecursion.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestLeftRecursion.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestLeftRecursion.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestLeftRecursion.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestLexerErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestLexerErrors.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestLexerErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestLexerErrors.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestLexerExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestLexerExec.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestLexerExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestLexerExec.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestListeners.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestListeners.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestListeners.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestListeners.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestParseTrees.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestParseTrees.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestParseTrees.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestParseTrees.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestParserErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestParserErrors.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestParserErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestParserErrors.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestParserExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestParserExec.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestParserExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestParserExec.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestPerformance.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestPerformance.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestPerformance.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestPerformance.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestSemPredEvalLexer.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestSemPredEvalLexer.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestSemPredEvalLexer.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestSemPredEvalLexer.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestSemPredEvalParser.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestSemPredEvalParser.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestSemPredEvalParser.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestSemPredEvalParser.java
diff --git a/runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestSets.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestSets.java
similarity index 100%
rename from runtime-testsuite/test/CSharp/org/antlr/v4/test/runtime/csharp/TestSets.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/csharp/TestSets.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestCompositeLexers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestCompositeLexers.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestCompositeLexers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestCompositeLexers.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestCompositeParsers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestCompositeParsers.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestCompositeParsers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestCompositeParsers.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestFullContextParsing.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestFullContextParsing.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestFullContextParsing.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestFullContextParsing.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestLeftRecursion.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestLeftRecursion.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestLeftRecursion.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestLeftRecursion.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestLexerErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestLexerErrors.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestLexerErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestLexerErrors.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestLexerExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestLexerExec.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestLexerExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestLexerExec.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestListeners.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestListeners.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestListeners.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestListeners.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestParseTrees.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestParseTrees.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestParseTrees.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestParseTrees.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestParserErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestParserErrors.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestParserErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestParserErrors.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestParserExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestParserExec.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestParserExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestParserExec.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestPerformance.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestPerformance.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestPerformance.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestPerformance.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestSemPredEvalLexer.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestSemPredEvalLexer.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestSemPredEvalLexer.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestSemPredEvalLexer.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestSemPredEvalParser.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestSemPredEvalParser.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestSemPredEvalParser.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestSemPredEvalParser.java
diff --git a/runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestSets.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestSets.java
similarity index 100%
rename from runtime-testsuite/test/Java/org/antlr/v4/test/runtime/java/TestSets.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/java/TestSets.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestCompositeLexers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestCompositeLexers.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestCompositeLexers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestCompositeLexers.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestCompositeParsers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestCompositeParsers.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestCompositeParsers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestCompositeParsers.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestFullContextParsing.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestFullContextParsing.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestFullContextParsing.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestFullContextParsing.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestLeftRecursion.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestLeftRecursion.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestLeftRecursion.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestLeftRecursion.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestLexerErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestLexerErrors.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestLexerErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestLexerErrors.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestLexerExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestLexerExec.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestLexerExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestLexerExec.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestListeners.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestListeners.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestListeners.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestListeners.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestParseTrees.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestParseTrees.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestParseTrees.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestParseTrees.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestParserErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestParserErrors.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestParserErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestParserErrors.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestParserExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestParserExec.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestParserExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestParserExec.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestPerformance.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestPerformance.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestPerformance.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestPerformance.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestSemPredEvalLexer.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestSemPredEvalLexer.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestSemPredEvalLexer.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestSemPredEvalLexer.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestSemPredEvalParser.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestSemPredEvalParser.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestSemPredEvalParser.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestSemPredEvalParser.java
diff --git a/runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestSets.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestSets.java
similarity index 100%
rename from runtime-testsuite/test/JavaScript/org/antlr/v4/test/runtime/javascript/node/TestSets.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/javascript/node/TestSets.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestCompositeLexers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestCompositeLexers.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestCompositeLexers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestCompositeLexers.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestCompositeParsers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestCompositeParsers.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestCompositeParsers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestCompositeParsers.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestFullContextParsing.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestFullContextParsing.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestFullContextParsing.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestFullContextParsing.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestLeftRecursion.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestLeftRecursion.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestLeftRecursion.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestLeftRecursion.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestLexerErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestLexerErrors.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestLexerErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestLexerErrors.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestLexerExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestLexerExec.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestLexerExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestLexerExec.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestListeners.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestListeners.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestListeners.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestListeners.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestParseTrees.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestParseTrees.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestParseTrees.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestParseTrees.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestParserErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestParserErrors.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestParserErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestParserErrors.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestParserExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestParserExec.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestParserExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestParserExec.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestPerformance.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestPerformance.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestPerformance.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestPerformance.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestSemPredEvalLexer.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestSemPredEvalLexer.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestSemPredEvalLexer.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestSemPredEvalLexer.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestSemPredEvalParser.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestSemPredEvalParser.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestSemPredEvalParser.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestSemPredEvalParser.java
diff --git a/runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestSets.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestSets.java
similarity index 100%
rename from runtime-testsuite/test/Python2/org/antlr/v4/test/runtime/python2/TestSets.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python2/TestSets.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestCompositeLexers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestCompositeLexers.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestCompositeLexers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestCompositeLexers.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestCompositeParsers.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestCompositeParsers.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestCompositeParsers.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestCompositeParsers.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestFullContextParsing.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestFullContextParsing.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestFullContextParsing.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestFullContextParsing.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestLeftRecursion.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestLeftRecursion.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestLeftRecursion.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestLeftRecursion.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestLexerErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestLexerErrors.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestLexerErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestLexerErrors.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestLexerExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestLexerExec.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestLexerExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestLexerExec.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestListeners.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestListeners.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestListeners.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestListeners.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestParseTrees.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestParseTrees.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestParseTrees.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestParseTrees.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestParserErrors.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestParserErrors.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestParserErrors.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestParserErrors.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestParserExec.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestParserExec.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestParserExec.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestParserExec.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestPerformance.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestPerformance.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestPerformance.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestPerformance.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestSemPredEvalLexer.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestSemPredEvalLexer.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestSemPredEvalLexer.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestSemPredEvalLexer.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestSemPredEvalParser.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestSemPredEvalParser.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestSemPredEvalParser.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestSemPredEvalParser.java
diff --git a/runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestSets.java b/runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestSets.java
similarity index 100%
rename from runtime-testsuite/test/Python3/org/antlr/v4/test/runtime/python3/TestSets.java
rename to runtime-testsuite/test/org/antlr/v4/test/runtime/python3/TestSets.java
diff --git a/tool/pom.xml b/tool/pom.xml
index 00f88dccc..f76fe04fd 100644
--- a/tool/pom.xml
+++ b/tool/pom.xml
@@ -57,6 +57,17 @@
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+
+
org.antlr
antlr3-maven-plugin