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:
eugene yokota 2014-05-07 12:23:09 -04:00
commit d3aa84ff7a
3 changed files with 210 additions and 215 deletions

View File

@ -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)

View File

@ -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

View File

@ -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)"