mirror of
https://github.com/querydsl/querydsl.git
synced 2026-07-03 21:07:49 +08:00
Use Global for Scala compilation
This commit is contained in:
parent
97882965ac
commit
3a68a8a0d3
@ -8,41 +8,35 @@ import scala.io.Source.fromFile
|
||||
import java.io.File
|
||||
import java.io.File.pathSeparator
|
||||
|
||||
import scala.tools.nsc.reporters.{ConsoleReporter, Reporter}
|
||||
|
||||
object CompileTestUtils {
|
||||
|
||||
private object env extends Settings {
|
||||
|
||||
private def jarPathOfClass(className: String) = {
|
||||
Class.forName(className).getProtectionDomain.getCodeSource.getLocation
|
||||
}
|
||||
|
||||
val currentLibraries = this.getClass.getClassLoader.asInstanceOf[java.net.URLClassLoader].getURLs.toList
|
||||
val cp = jarPathOfClass("scala.tools.nsc.Interpreter") :: jarPathOfClass("scala.ScalaObject") :: currentLibraries
|
||||
|
||||
classpath.value = cp.mkString(pathSeparator)
|
||||
usejavacp.value = true
|
||||
private def jarPathOfClass(className: String) = {
|
||||
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
|
||||
env.classpath.value = cp.mkString(pathSeparator)
|
||||
env.usejavacp.value = true
|
||||
env.d.value = "target"
|
||||
|
||||
def assertCompileSuccess(file: File): Unit = {
|
||||
assertCompileSuccess(recursiveFileList(file))
|
||||
}
|
||||
|
||||
def assertCompileSuccess(files: Traversable[File]): Unit = {
|
||||
for (file <- files) {
|
||||
assertCompileSuccess(fromFile(file).mkString)
|
||||
val reporter = new ConsoleReporter(env)
|
||||
val g = new Global(env, reporter)
|
||||
val run = new g.Run
|
||||
run.compile(files.map(_.getPath).toList)
|
||||
if (reporter.hasErrors) {
|
||||
throw new AssertionError("Compilation failed")
|
||||
}
|
||||
}
|
||||
|
||||
def assertCompileSuccessCombined(file: File): Unit = {
|
||||
assertCompileSuccessCombined(recursiveFileList(file))
|
||||
}
|
||||
|
||||
def assertCompileSuccessCombined(files: Traversable[File]): Unit = {
|
||||
assertCompileSuccess(files
|
||||
map (fromFile(_).mkString)
|
||||
mkString ("\n"))
|
||||
}
|
||||
|
||||
def assertCompileSuccess(source: String): Unit = {
|
||||
val out = new java.io.ByteArrayOutputStream
|
||||
val interpreterWriter = new java.io.PrintWriter(out)
|
||||
|
||||
@ -22,10 +22,7 @@ class GenericExporterJPATest {
|
||||
exporter.export(getClass.getPackage)
|
||||
|
||||
val targetFolder = new java.io.File("target/gen1-jpa/com/querydsl/scala/")
|
||||
val sources = (targetFolder listFiles ()
|
||||
filter (_.getName.endsWith(".scala"))
|
||||
map (fromFile(_).mkString)
|
||||
mkString ("\n"))
|
||||
val sources = targetFolder.listFiles.filter(_.getName.endsWith(".scala"))
|
||||
CompileTestUtils.assertCompileSuccess(sources)
|
||||
}
|
||||
|
||||
|
||||
@ -20,15 +20,11 @@ class GenericExporterTest {
|
||||
val targetFolder = new File("target/gen1/com/querydsl/scala/")
|
||||
|
||||
// com.querydsl.scala
|
||||
val sources = (targetFolder.listFiles()
|
||||
filter (_.getName.endsWith(".scala"))
|
||||
map (fromFile(_).mkString)
|
||||
mkString ("\n"))
|
||||
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"))
|
||||
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)
|
||||
|
||||
@ -101,7 +101,7 @@ class JDBCIntegrationTest extends SQLHelpers {
|
||||
exporter.setSchemaPattern("PUBLIC")
|
||||
exporter.export(connection.getMetaData)
|
||||
|
||||
CompileTestUtils.assertCompileSuccessCombined(directory)
|
||||
CompileTestUtils.assertCompileSuccess(directory)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@ -97,7 +97,7 @@ class MetaDataExporterTest {
|
||||
exporter.setTypeMappings(ScalaTypeMappings.create)
|
||||
exporter.export(connection.getMetaData)
|
||||
|
||||
CompileTestUtils.assertCompileSuccessCombined(directory)
|
||||
CompileTestUtils.assertCompileSuccess(directory)
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -136,7 +136,7 @@ class MetaDataExporterTest {
|
||||
exporter.setTypeMappings(ScalaTypeMappings.create)
|
||||
exporter.export(connection.getMetaData)
|
||||
|
||||
CompileTestUtils.assertCompileSuccessCombined(directory)
|
||||
CompileTestUtils.assertCompileSuccess(directory)
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user