summaryrefslogtreecommitdiff
path: root/test/src/TestMain.kt
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/TestMain.kt')
-rw-r--r--test/src/TestMain.kt30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/src/TestMain.kt b/test/src/TestMain.kt
new file mode 100644
index 0000000..fc95780
--- /dev/null
+++ b/test/src/TestMain.kt
@@ -0,0 +1,30 @@
+import moe.nea.lisp.LispExecutionContext
+import moe.nea.lisp.LispParser
+import moe.nea.lisp.TestResultFormatter
+import java.io.File
+import javax.xml.stream.XMLOutputFactory
+
+object TestMain {
+ @JvmStatic
+ fun main(args: Array<String>) {
+ val reportFile = System.getProperty("test.report")
+ val modulesToTest = System.getProperty("test.suites").split(":")
+ val modulePath = System.getProperty("test.imports").split(":")
+ val executionContext = LispExecutionContext()
+ executionContext.setupStandardBindings()
+ modulePath.forEach {
+ executionContext.registerModule(it, LispParser.parse(File(T::class.java.getResource("/$it.lisp")!!.file)))
+ }
+ val allResults = modulesToTest.map {
+ executionContext.runTests(
+ LispParser.parse(File(T::class.java.getResource("/$it.lisp")!!.file)),
+ it,
+ )
+ }
+ val w = XMLOutputFactory.newFactory()
+ .createXMLStreamWriter(File(reportFile).bufferedWriter())
+ TestResultFormatter.write(w, allResults)
+ w.close()
+
+ }
+} \ No newline at end of file