mirror of https://github.com/sbt/sbt.git
incremental tests, misc fixes
This commit is contained in:
parent
a68e4c74f9
commit
83866ffb42
|
|
@ -11,7 +11,7 @@ import java.io.File
|
||||||
|
|
||||||
object Incremental
|
object Incremental
|
||||||
{
|
{
|
||||||
def println(s: String) = if(java.lang.Boolean.getBoolean("xsbt.inc.debug")) System.out.println(s) else ()
|
def println(s: => String) = if(java.lang.Boolean.getBoolean("xsbt.inc.debug")) System.out.println(s) else ()
|
||||||
def compile(sources: Set[File], entry: String => Option[File], previous: Analysis, current: ReadStamps, forEntry: File => Option[Analysis], doCompile: Set[File] => Analysis)(implicit equivS: Equiv[Stamp]): (Boolean, Analysis) =
|
def compile(sources: Set[File], entry: String => Option[File], previous: Analysis, current: ReadStamps, forEntry: File => Option[Analysis], doCompile: Set[File] => Analysis)(implicit equivS: Equiv[Stamp]): (Boolean, Analysis) =
|
||||||
{
|
{
|
||||||
val initialChanges = changedInitial(entry, sources, previous, current, forEntry)
|
val initialChanges = changedInitial(entry, sources, previous, current, forEntry)
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,7 @@ object BuiltinCommands
|
||||||
val extracted = Project extract s
|
val extracted = Project extract s
|
||||||
import extracted._
|
import extracted._
|
||||||
val result = session.currentEval().eval(arg, srcName = "<eval>", imports = autoImports(extracted))
|
val result = session.currentEval().eval(arg, srcName = "<eval>", imports = autoImports(extracted))
|
||||||
log.info("ans: " + result.tpe + " = " + result.value.toString)
|
log.info("ans: " + result.tpe + " = " + result.value)
|
||||||
s
|
s
|
||||||
}
|
}
|
||||||
def sessionCommand = Command.make(SessionCommand, sessionBrief, SessionSettings.Help)(SessionSettings.command)
|
def sessionCommand = Command.make(SessionCommand, sessionBrief, SessionSettings.Help)(SessionSettings.command)
|
||||||
|
|
|
||||||
|
|
@ -237,7 +237,7 @@ object SessionSettings
|
||||||
val project = Project.getProject(pref, structure).getOrElse(error("Invalid project reference " + pref))
|
val project = Project.getProject(pref, structure).getOrElse(error("Invalid project reference " + pref))
|
||||||
val appendTo: File = BuildPaths.configurationSources(project.base).headOption.getOrElse(new File(project.base, "build.sbt"))
|
val appendTo: File = BuildPaths.configurationSources(project.base).headOption.getOrElse(new File(project.base, "build.sbt"))
|
||||||
val baseAppend = settingStrings(settings).flatMap("" :: _ :: Nil)
|
val baseAppend = settingStrings(settings).flatMap("" :: _ :: Nil)
|
||||||
val adjustedLines = if( hasTrailingBlank(IO.readLines(appendTo)) ) baseAppend else baseAppend
|
val adjustedLines = if(appendTo.isFile && hasTrailingBlank(IO.readLines(appendTo)) ) baseAppend else "" +: baseAppend
|
||||||
IO.writeLines(appendTo, adjustedLines, append = true)
|
IO.writeLines(appendTo, adjustedLines, append = true)
|
||||||
}
|
}
|
||||||
def hasTrailingBlank(lines: Seq[String]) = lines.takeRight(1).exists(_.trim.isEmpty)
|
def hasTrailingBlank(lines: Seq[String]) = lines.takeRight(1).exists(_.trim.isEmpty)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=abstract-type
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
project.name=test
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=by-name
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
TaskKey("output-empty") <<= ClassDirectory in Configurations.Compile map { outputDirectory =>
|
||||||
|
def classes = (outputDirectory ** "*.class").get
|
||||||
|
if(!classes.isEmpty) error("Classes existed:\n\t" + classes.mkString("\n\t"))
|
||||||
|
}
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
project.name=Compactify Test
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
import sbt._
|
|
||||||
|
|
||||||
class CompactifyTest(info: ProjectInfo) extends DefaultProject(info)
|
|
||||||
{
|
|
||||||
def classes = (outputDirectory ** "*.class").get
|
|
||||||
lazy val outputEmpty = task { if(!classes.isEmpty) error("Classes existed:\n\t" + classes.mkString("\n\t")) }
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=default-params
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#Project properties
|
|
||||||
#Tue Jan 27 07:55:42 EST 2009
|
|
||||||
project.name=Empty Source Test
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=erasure
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=no-false-error
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=implicit-params
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
Name :== "test"
|
||||||
|
|
||||||
|
TaskKey("check-same") <<= CompileTask in Configurations.Compile map { analysis =>
|
||||||
|
analysis.apis.internal foreach { case (_, api) =>
|
||||||
|
assert( xsbt.api.APIUtil.verifyTypeParameters(api) )
|
||||||
|
assert( xsbt.api.SameAPI(api, api) )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
import sbt._
|
|
||||||
|
|
||||||
class P(info: ProjectInfo) extends DefaultProject(info)
|
|
||||||
{
|
|
||||||
override def name = "test"
|
|
||||||
lazy val checkSame = compile map { analysis =>
|
|
||||||
analysis.apis.internal foreach { case (_, api) =>
|
|
||||||
assert( xsbt.api.APIUtil.verifyTypeParameters(api) )
|
|
||||||
assert( xsbt.api.SameAPI(api, api) )
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
project.name=test
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=intermediate-error
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
project.name=Basic Java Dependency Test
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# Basic test for Java dependency tracking
|
# Basic test for Java dependency tracking
|
||||||
> set xsbt.inc.debug true
|
> 'eval System.setProperty("xsbt.inc.debug", "true")'
|
||||||
|
|
||||||
# A is a basic Java file with no dependencies. Just a basic check for Java compilation
|
# A is a basic Java file with no dependencies. Just a basic check for Java compilation
|
||||||
$ copy-file changes/A.java src/main/java/a/A.java
|
$ copy-file changes/A.java src/main/java/a/A.java
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
project.name=Java static test
|
|
||||||
project.version=9.5.3
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=lazy-val
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=lazy-val
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=named
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#Project properties
|
|
||||||
#Mon Feb 09 21:05:16 EST 2009
|
|
||||||
project.name=Test
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=parent-member
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=parent-member-change
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=qualified-access
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#Project properties
|
|
||||||
#Fri Jan 23 22:29:49 EST 2009
|
|
||||||
project.name=Test Project A
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#Project properties
|
|
||||||
#Sat Jan 24 19:12:23 EST 2009
|
|
||||||
project.name=Remove Test B
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=repeated-parameters
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
import sbt._
|
||||||
|
import Keys._
|
||||||
|
import java.net.URLClassLoader
|
||||||
|
|
||||||
|
object B extends Build
|
||||||
|
{
|
||||||
|
lazy val projects = Seq(root)
|
||||||
|
lazy val root = Project("root", file(".")) settings( ss : _*)
|
||||||
|
|
||||||
|
def ss = Seq(
|
||||||
|
TaskKey("check-first") <<= checkTask("First"),
|
||||||
|
TaskKey("check-second") <<= checkTask("Second")
|
||||||
|
)
|
||||||
|
private def checkTask(className: String) =
|
||||||
|
FullClasspath in Configurations.Runtime map { runClasspath =>
|
||||||
|
val cp = runClasspath.map(_.data.toURI.toURL).toArray
|
||||||
|
Class.forName(className, false, new URLClassLoader(cp))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
project.name=Test
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
import sbt._
|
|
||||||
import java.net.URLClassLoader
|
|
||||||
class TestProject(info: ProjectInfo) extends DefaultProject(info)
|
|
||||||
{
|
|
||||||
lazy val checkFirst = checkTask("First")
|
|
||||||
lazy val checkSecond = checkTask("Second")
|
|
||||||
private def checkTask(className: String) =
|
|
||||||
fullClasspath(Configurations.Runtime) map { runClasspath =>
|
|
||||||
val cp = runClasspath.map(_.data.toURI.toURL).toArray
|
|
||||||
Class.forName(className, false, new URLClassLoader(cp))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=sealed
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=specialized
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
import sbt._
|
|
||||||
|
|
||||||
class SpecializeTest(info: ProjectInfo) extends DefaultProject(info)
|
|
||||||
{
|
|
||||||
// now on by default in 2.8
|
|
||||||
// override def compileOptions = super.compileOptions ++ Seq(CompileOption("-Yspecialize"))
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=stability
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=struct-usage
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=struct
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#Project properties
|
|
||||||
#Mon Jan 26 19:13:08 EST 2009
|
|
||||||
project.name=Transitive A
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
#Project properties
|
|
||||||
#Mon Jan 26 19:13:08 EST 2009
|
|
||||||
project.name=Transitive A
|
|
||||||
project.version=1.0
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=type-parameter
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=typeref-return
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=var
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
project.name=variance
|
|
||||||
project.version=1.0
|
|
||||||
project.scratch=true
|
|
||||||
Loading…
Reference in New Issue