From d23a7ce3eaef845f010a032a8957a4297b711cd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Thu, 12 Mar 2015 23:06:31 +0200 Subject: [PATCH] Optimize compilation --- .../com/querydsl/scala/CompileTestUtils.scala | 23 +++++++++---------- .../querydsl/scala/GenericExporterTest.scala | 13 ++--------- 2 files changed, 13 insertions(+), 23 deletions(-) diff --git a/querydsl-scala/src/test/scala/com/querydsl/scala/CompileTestUtils.scala b/querydsl-scala/src/test/scala/com/querydsl/scala/CompileTestUtils.scala index 5dbe943a3..b89490fc7 100644 --- a/querydsl-scala/src/test/scala/com/querydsl/scala/CompileTestUtils.scala +++ b/querydsl-scala/src/test/scala/com/querydsl/scala/CompileTestUtils.scala @@ -2,6 +2,9 @@ package com.querydsl.scala import java.io.File._ +import com.google.common.base.Charsets +import com.google.common.io.Files + import scala.tools.nsc._ import scala.tools.nsc.interpreter.IR.Success import scala.io.Source.fromFile @@ -16,12 +19,14 @@ object CompileTestUtils { Class.forName(className).getProtectionDomain.getCodeSource.getLocation } - private val env = new Settings() private val currentLibraries = this.getClass.getClassLoader.asInstanceOf[java.net.URLClassLoader].getURLs.toList private val cp = jarPathOfClass("scala.tools.nsc.Interpreter") :: jarPathOfClass("scala.ScalaObject") :: currentLibraries + + private val env = new Settings() env.classpath.value = cp.mkString(pathSeparator) env.usejavacp.value = true - env.d.value = "target" + //env.d.value = "target" + env.stopAfter.value = List("refchecks") def assertCompileSuccess(file: File): Unit = { assertCompileSuccess(recursiveFileList(file)) @@ -38,18 +43,12 @@ object CompileTestUtils { } def assertCompileSuccess(source: String): Unit = { - val out = new java.io.ByteArrayOutputStream - val interpreterWriter = new java.io.PrintWriter(out) - - val interpreter = new scala.tools.nsc.interpreter.IMain(env, interpreterWriter) + val file = File.createTempFile("source", ".scala") try { - val result = interpreter.interpret(source.replaceAll("package [\\w\\.]+", "")) - if (result != Success) { - throw new AssertionError("Compile failed, interpreter output:\n" + out.toString("utf-8")) - } + Files.write(source, file, Charsets.UTF_8) + assertCompileSuccess(file) } finally { - interpreterWriter.close() - interpreter.close() + file.delete() } } diff --git a/querydsl-scala/src/test/scala/com/querydsl/scala/GenericExporterTest.scala b/querydsl-scala/src/test/scala/com/querydsl/scala/GenericExporterTest.scala index 4677f836b..88cf516a7 100644 --- a/querydsl-scala/src/test/scala/com/querydsl/scala/GenericExporterTest.scala +++ b/querydsl-scala/src/test/scala/com/querydsl/scala/GenericExporterTest.scala @@ -17,17 +17,8 @@ class GenericExporterTest { exporter.setCreateScalaSources(true) exporter.export(getClass.getPackage) - val targetFolder = new File("target/gen1/com/querydsl/scala/") - - // com.querydsl.scala - val sources = targetFolder.listFiles.filter(_.getName.endsWith(".scala")) - CompileTestUtils.assertCompileSuccess(sources) - - // com.querydsl.scala.ext - val other = (new File(targetFolder, "ext").listFiles() filter (_.getName.endsWith(".scala")) - map (fromFile(_).mkString) - mkString ("\n")) - CompileTestUtils.assertCompileSuccess("import com.querydsl.scala.ext._\n" + other) + val targetFolder = new File("target/gen1") + CompileTestUtils.assertCompileSuccess(targetFolder) } }