mirror of https://github.com/sbt/sbt.git
Merge pull request #1316 from sbt/wip/fix-broken-build
This doesn't quite fix the build, but gets closer
This commit is contained in:
commit
d3aa84ff7a
|
|
@ -3,12 +3,11 @@ package sbt
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import org.specs2._
|
import org.specs2._
|
||||||
import mutable.Specification
|
import mutable.Specification
|
||||||
import IO.{createDirectory, delete, touch, withTemporaryDirectory}
|
import IO.{ createDirectory, delete, touch, withTemporaryDirectory }
|
||||||
import org.apache.ivy.util.ChecksumHelper
|
import org.apache.ivy.util.ChecksumHelper
|
||||||
import IfMissing.Fail
|
import IfMissing.Fail
|
||||||
|
|
||||||
object ComponentManagerTest extends Specification
|
object ComponentManagerTest extends Specification {
|
||||||
{
|
|
||||||
val TestID = "manager-test"
|
val TestID = "manager-test"
|
||||||
"Component manager" should {
|
"Component manager" should {
|
||||||
"throw an exception if 'file' is called for a non-existing component" in {
|
"throw an exception if 'file' is called for a non-existing component" in {
|
||||||
|
|
@ -17,7 +16,7 @@ object ComponentManagerTest extends Specification
|
||||||
"throw an exception if 'file' is called for an empty component" in {
|
"throw an exception if 'file' is called for an empty component" in {
|
||||||
withManager { manager =>
|
withManager { manager =>
|
||||||
manager.define(TestID, Nil)
|
manager.define(TestID, Nil)
|
||||||
( manager.file(TestID)(Fail) ) must throwA[InvalidComponent]
|
(manager.file(TestID)(Fail)) must throwA[InvalidComponent]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"return the file for a single-file component" in {
|
"return the file for a single-file component" in {
|
||||||
|
|
@ -30,7 +29,7 @@ object ComponentManagerTest extends Specification
|
||||||
"throw an exception if 'file' is called for multi-file component" in {
|
"throw an exception if 'file' is called for multi-file component" in {
|
||||||
withManager { manager =>
|
withManager { manager =>
|
||||||
defineFiles(manager, TestID, "a", "b")
|
defineFiles(manager, TestID, "a", "b")
|
||||||
( manager.file(TestID)(Fail) ) must throwA[InvalidComponent]
|
(manager.file(TestID)(Fail)) must throwA[InvalidComponent]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"return the files for a multi-file component" in {
|
"return the files for a multi-file component" in {
|
||||||
|
|
@ -53,26 +52,24 @@ object ComponentManagerTest extends Specification
|
||||||
withTemporaryDirectory { ivyHome =>
|
withTemporaryDirectory { ivyHome =>
|
||||||
withManagerHome(ivyHome) { definingManager =>
|
withManagerHome(ivyHome) { definingManager =>
|
||||||
val hash = defineFile(definingManager, TestID, "a")
|
val hash = defineFile(definingManager, TestID, "a")
|
||||||
try
|
try {
|
||||||
{
|
|
||||||
definingManager.cache(TestID)
|
definingManager.cache(TestID)
|
||||||
withManagerHome(ivyHome) { usingManager =>
|
withManagerHome(ivyHome) { usingManager =>
|
||||||
checksum(usingManager.file(TestID)(Fail)) must beEqualTo(hash)
|
checksum(usingManager.file(TestID)(Fail)) must beEqualTo(hash)
|
||||||
}
|
}
|
||||||
}
|
} finally { definingManager.clearCache(TestID) }
|
||||||
finally { definingManager.clearCache(TestID) }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private def checksum(files: Iterable[File]): Seq[String] = files.map(checksum).toSeq
|
private def checksum(files: Iterable[File]): Seq[String] = files.map(checksum).toSeq
|
||||||
private def checksum(file: File): String = if(file.exists) ChecksumHelper.computeAsString(file, "sha1") else ""
|
private def checksum(file: File): String = if (file.exists) ChecksumHelper.computeAsString(file, "sha1") else ""
|
||||||
private def defineFile(manager: ComponentManager, id: String, name: String): String = createFile(manager, id, name)(checksum)
|
private def defineFile(manager: ComponentManager, id: String, name: String): String = createFile(manager, id, name)(checksum)
|
||||||
private def defineFiles(manager: ComponentManager, id: String, names: String*): Seq[String] = createFiles(manager, id, names : _*)(checksum)
|
private def defineFiles(manager: ComponentManager, id: String, names: String*): Seq[String] = createFiles(manager, id, names: _*)(checksum)
|
||||||
private def createFile[T](manager: ComponentManager, id: String, name: String)(f: File => T): T = createFiles(manager, id, name)(files => f(files.toList.head))
|
private def createFile[T](manager: ComponentManager, id: String, name: String)(f: File => T): T = createFiles(manager, id, name)(files => f(files.toList.head))
|
||||||
private def createFiles[T](manager: ComponentManager, id: String, names: String*)(f: Seq[File] => T): T =
|
private def createFiles[T](manager: ComponentManager, id: String, names: String*)(f: Seq[File] => T): T =
|
||||||
withTemporaryDirectory { dir =>
|
withTemporaryDirectory { dir =>
|
||||||
val files = names.map(name => new File(dir, name) )
|
val files = names.map(name => new File(dir, name))
|
||||||
files.foreach(writeRandomContent)
|
files.foreach(writeRandomContent)
|
||||||
manager.define(id, files)
|
manager.define(id, files)
|
||||||
f(files)
|
f(files)
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,7 @@ import java.io.File
|
||||||
import org.specs2._
|
import org.specs2._
|
||||||
import mutable.Specification
|
import mutable.Specification
|
||||||
|
|
||||||
object CrossVersionTest extends Specification
|
object CrossVersionTest extends Specification {
|
||||||
{
|
|
||||||
"Cross version" should {
|
"Cross version" should {
|
||||||
"return sbt API for xyz as None" in {
|
"return sbt API for xyz as None" in {
|
||||||
CrossVersion.sbtApiVersion("xyz") must_== None
|
CrossVersion.sbtApiVersion("xyz") must_== None
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,9 @@ import java.io.File
|
||||||
import org.specs2._
|
import org.specs2._
|
||||||
import mutable.Specification
|
import mutable.Specification
|
||||||
|
|
||||||
object MakePomTest extends Specification
|
object MakePomTest extends Specification {
|
||||||
{
|
|
||||||
val mp = new MakePom(ConsoleLogger())
|
val mp = new MakePom(ConsoleLogger())
|
||||||
import mp.{makeDependencyVersion=>v}
|
import mp.{ makeDependencyVersion => v }
|
||||||
"MakePom makeDependencyVersion" should {
|
"MakePom makeDependencyVersion" should {
|
||||||
"Handle .+ in versions" in {
|
"Handle .+ in versions" in {
|
||||||
v("1.+") must_== "[1,2)"
|
v("1.+") must_== "[1,2)"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue