All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scala.tools.partest.PartestDefaults.scala Maven / Gradle / Ivy

The newest version!
package scala.tools
package partest

import scala.concurrent.duration.Duration
import scala.tools.nsc.Properties.{ propOrNone => prop }
import scala.util.Properties.jdkHome
import java.lang.Runtime.{ getRuntime => runtime }

object PartestDefaults {
  def sourcePath  = prop("partest.srcdir")      getOrElse "files"
  def javaCmd     = prop("partest.javacmd")     orElse    jdkexec("java")  getOrElse "java"
  def javacCmd    = prop("partest.javac_cmd")   orElse    jdkexec("javac") getOrElse "javac"
  def javaOpts    = prop("partest.java_opts")   getOrElse  ""     // opts when running java during tests
  def scalacOpts  = prop("partest.scalac_opts") getOrElse  ""

  def testBuild   = prop("partest.build")
  def errorCount  = prop("partest.errors")  map (_.toInt) getOrElse 0
  def numThreads  = prop("partest.threads") map (_.toInt) getOrElse runtime.availableProcessors
  def waitTime    = Duration(prop("partest.timeout") getOrElse "4 hours")

  //def timeout     = "1200000"   // per-test timeout

  // probe for the named executable
  private def jdkexec(name: String): Option[String] = {
    import scala.reflect.io.Path, Path._
    Some(Path(jdkHome) / "bin") filter (_.isDirectory) flatMap { p =>
      val candidates = (p walkFilter { e => (e.name == name || e.name.startsWith(s"$name.")) && e.jfile.canExecute }).toList
      (candidates find (_.name == name) orElse candidates.headOption) map (_.path)
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy