diff --git a/launch/src/test/scala/EnumerationTest.scala b/launch/src/test/scala/EnumerationTest.scala index 8fcc540cd..c880fd935 100644 --- a/launch/src/test/scala/EnumerationTest.scala +++ b/launch/src/test/scala/EnumerationTest.scala @@ -29,7 +29,7 @@ object EnumerationTest extends Properties("Enumeration") { def invalid(s: String) = ("valueOf(" + s + ")") |: - Prop.throws(enum.toValue(s), classOf[Exception]) + Prop.throws(classOf[Exception])(enum.toValue(s)) def valid(s: String, expected: Enumeration#Value) = ("valueOf(" + s + ")") |: ("Expected " + expected) |: diff --git a/launch/src/test/scala/ListMapTest.scala b/launch/src/test/scala/ListMapTest.scala index 53ea7252c..9bc3d8219 100644 --- a/launch/src/test/scala/ListMapTest.scala +++ b/launch/src/test/scala/ListMapTest.scala @@ -16,12 +16,12 @@ object ListMapProperties extends Properties("ListMap") { (map + (key, value) ).get(key) == Some(value) } } property("remove") = Prop.forAll { (map: ListMap[Int,Int], key: Int) => - { Prop.throws((map - key)(key), classOf[Exception]) } && + { Prop.throws(classOf[Exception])((map - key)(key)) } && { !(map - key).contains(key) } && { (map - key).get(key).isEmpty } } property("empty") = Prop.forAll { (key: Int) => - { Prop.throws(ListMap.empty(key), classOf[Exception]) } + { Prop.throws(classOf[Exception])(ListMap.empty(key)) } { !ListMap.empty.contains(key) } && { ListMap.empty.get(key).isEmpty } } diff --git a/launch/src/test/scala/PreTest.scala b/launch/src/test/scala/PreTest.scala index ddbcb6e24..baf486a91 100644 --- a/launch/src/test/scala/PreTest.scala +++ b/launch/src/test/scala/PreTest.scala @@ -10,12 +10,12 @@ object PreTest extends Properties("Pre") property("isEmpty") = Prop.forAll( (s: String) => (s.isEmpty == isEmpty(s)) ) property("isNonEmpty") = Prop.forAll( (s: String) => (isEmpty(s) != isNonEmpty(s)) ) property("assert true") = { assert(true); true } - property("assert false") = Prop.throws(assert(false), classOf[AssertionError]) + property("assert false") = Prop.throws(classOf[AssertionError])(assert(false)) property("assert true with message") = Prop.forAll { (s: String) => assert(true, s); true } - property("assert false with message") = Prop.forAll( (s: String) => Prop.throws(assert(false, s), classOf[AssertionError] ) ) - property("require false") = Prop.forAll( (s: String) => Prop.throws(require(false, s), classOf[IllegalArgumentException]) ) + property("assert false with message") = Prop.forAll( (s: String) => Prop.throws(classOf[AssertionError] )(assert(false, s)) ) + property("require false") = Prop.forAll( (s: String) => Prop.throws(classOf[IllegalArgumentException])(require(false, s)) ) property("require true") = Prop.forAll { (s: String) => require(true, s); true } - property("error") = Prop.forAll( (s: String) => Prop.throws(error(s), classOf[BootException]) ) + property("error") = Prop.forAll( (s: String) => Prop.throws(classOf[BootException])(error(s)) ) property("toBoolean") = Prop.forAll( (s: String) => trap(toBoolean(s)) == trap(java.lang.Boolean.parseBoolean(s)) ) property("toArray") = Prop.forAll( (list: List[Int]) => arrEquals(list.toArray, toArray(list)) ) property("toArray") = Prop.forAll( (list: List[String]) => objArrEquals(list.toArray, toArray(list)) ) diff --git a/main/actions/src/test/scala/sbt/compiler/EvalTest.scala b/main/actions/src/test/scala/sbt/compiler/EvalTest.scala index 1cff2f635..62ed31ccf 100644 --- a/main/actions/src/test/scala/sbt/compiler/EvalTest.scala +++ b/main/actions/src/test/scala/sbt/compiler/EvalTest.scala @@ -11,7 +11,7 @@ object EvalTest extends Properties("eval") private[this] val reporter = new StoreReporter import reporter.{ERROR,Info,Severity} private[this] val eval = new Eval(_ => reporter, None) - + property("inferred integer") = forAll{ (i: Int) => val result = eval.eval(i.toString) (label("Value", value(result)) |: (value(result) == i)) && @@ -25,11 +25,11 @@ object EvalTest extends Properties("eval") (label("Type", result.tpe) |: (result.tpe == IntType)) && (label("Files", result.generated) |: (result.generated.isEmpty)) } - + property("type mismatch") = forAll{ (i: Int, l: Int) => val line = math.abs(l) val src = "mismatch" - throws(eval.eval(i.toString, tpeName =Some(BooleanType), line = line, srcName = src), classOf[RuntimeException]) && + throws(classOf[RuntimeException])(eval.eval(i.toString, tpeName =Some(BooleanType), line = line, srcName = src)) && hasErrors(line+1, src) } diff --git a/main/src/test/scala/TestBuild.scala b/main/src/test/scala/TestBuild.scala index cd852086d..ac67e98a8 100644 --- a/main/src/test/scala/TestBuild.scala +++ b/main/src/test/scala/TestBuild.scala @@ -22,7 +22,7 @@ object TestBuild val MaxIDSize = 8 val MaxDeps = 8 val KeysPerEnv = 10 - + val MaxTasksGen = chooseShrinkable(1, MaxTasks) val MaxProjectsGen = chooseShrinkable(1, MaxProjects) val MaxConfigsGen = chooseShrinkable(1, MaxConfigs) @@ -53,7 +53,7 @@ object TestBuild (Scope.display(scope, ""), showKeys(map)) scopeStrings.toSeq.sorted.map(t => t._1 + t._2).mkString("\n\t") } - val extra: BuildUtil[Proj] = + val extra: BuildUtil[Proj] = { val getp = (build: URI, project: String) => env.buildMap(build).projectMap(project) new BuildUtil(keyIndex, data, env.root.uri, env.rootProject, getp, _.configurations.map(c => ConfigKey(c.name)), Relation.empty) @@ -148,7 +148,7 @@ object TestBuild } final class Taskk(val key: AttributeKey[String], val delegates: Seq[Taskk]) { - override def toString = key.label + " (delegates: " + delegates.map(_.key.label).mkString(", ") + ")" + override def toString = key.label + " (delegates: " + delegates.map(_.key.label).mkString(", ") + ")" } def mapBy[K, T](s: Seq[T])(f: T => K): Map[K, T] = s map { t => (f(t), t) } toMap; @@ -214,7 +214,7 @@ object TestBuild implicit def envGen(implicit bGen: Gen[Build], tasks: Gen[Seq[Taskk]]): Gen[Env] = for(i <- MaxBuildsGen; bs <- listOfN(i, bGen); ts <- tasks) yield new Env(bs, ts) implicit def buildGen(implicit uGen: Gen[URI], pGen: URI => Gen[Seq[Proj]]): Gen[Build] = for(u <- uGen; ps <- pGen(u)) yield new Build(u, ps) - + def nGen[T](igen: Gen[Int])(implicit g: Gen[T]): Gen[List[T]] = igen flatMap { ig => listOfN(ig, g) } implicit def genProjects(build: URI)(implicit genID: Gen[String], maxDeps: Gen[Int], count: Gen[Int], confs: Gen[Seq[Config]]): Gen[Seq[Proj]] = @@ -262,8 +262,8 @@ object TestBuild val next = for(depCount <- maxDeps; d <- pick(depCount min xs.size, xs) ) yield (x, d.toList) genAcyclic(maxDeps, xs, next :: acc) } - def sequence[T](gs: Seq[Gen[T]]): Gen[Seq[T]] = Gen { prms => - Some(gs map { g => g(prms) getOrElse error("failed generator") }) + def sequence[T](gs: Seq[Gen[T]]): Gen[Seq[T]] = Gen.parameterized { prms => + wrap( gs map { g => g(prms) getOrElse error("failed generator") } ) } type Inputs[A,T] = (T, Seq[T], Seq[A] => A) } diff --git a/project/Util.scala b/project/Util.scala index 4ffe70876..cedfe1e40 100644 --- a/project/Util.scala +++ b/project/Util.scala @@ -37,7 +37,7 @@ object Util def minProject(path: File, nameString: String) = Project(normalize(nameString), path) settings( commonSettings(nameString) ++ publishPomSettings : _* ) def baseProject(path: File, nameString: String) = minProject(path, nameString) settings( base : _*) def testedBaseProject(path: File, nameString: String) = baseProject(path, nameString) settings(testDependencies) - + lazy val javaOnly = Seq[Setting[_]](/*crossPaths := false, */compileOrder := CompileOrder.JavaThenScala, unmanagedSourceDirectories in Compile <<= Seq(javaSource in Compile).join) lazy val base: Seq[Setting[_]] = Seq(projectComponent) ++ baseScalacOptions ++ Licensed.settings lazy val baseScalacOptions = Seq( @@ -47,10 +47,10 @@ object Util case _ => Seq("-feature", "-language:implicitConversions", "-language:postfixOps", "-language:higherKinds", "-language:existentials") } ) - + def testDependencies = libraryDependencies <++= includeTestDependencies { incl => if(incl) Seq( - "org.scalacheck" %% "scalacheck" % "1.10.0" % "test", + "org.scalacheck" %% "scalacheck" % "1.11.0" % "test", "org.specs2" %% "specs2" % "1.12.3" % "test", "junit" % "junit" % "4.11" % "test" ) @@ -59,7 +59,7 @@ object Util lazy val minimalSettings: Seq[Setting[_]] = Defaults.paths ++ Seq[Setting[_]](crossTarget := target.value, name <<= thisProject(_.id)) - def projectComponent = projectID <<= (projectID, componentID) { (pid, cid) => + def projectComponent = projectID <<= (projectID, componentID) { (pid, cid) => cid match { case Some(id) => pid extra("e:component" -> id); case None => pid } } @@ -148,7 +148,7 @@ object Util val init = keywords.map(tn => '"' + tn + '"').mkString("Set(", ", ", ")") val ObjectName = "ScalaKeywords" val PackageName = "sbt" - val keywordsSrc = + val keywordsSrc = """package %s object %s { val values = %s @@ -188,7 +188,7 @@ object Licensed lazy val seeRegex = """\(see (.*?)\)""".r def licensePath(base: File, str: String): File = { val path = base / str; if(path.exists) path else error("Referenced license '" + str + "' not found at " + path) } def seePaths(base: File, noticeString: String): Seq[File] = seeRegex.findAllIn(noticeString).matchData.map(d => licensePath(base, d.group(1))).toList - + def settings: Seq[Setting[_]] = Seq( notice <<= baseDirectory(_ / "NOTICE"), unmanagedResources in Compile <++= (notice, extractLicenses) map { _ +: _ }, diff --git a/util/collection/src/test/scala/DagSpecification.scala b/util/collection/src/test/scala/DagSpecification.scala index 7cf19f2df..77ff80120 100644 --- a/util/collection/src/test/scala/DagSpecification.scala +++ b/util/collection/src/test/scala/DagSpecification.scala @@ -18,7 +18,7 @@ object DagSpecification extends Properties("Dag") private def dagGen(nodeCount: Int): Gen[TestDag] = { val nodes = new HashSet[TestDag] - def nonterminalGen(p: Gen.Params): Gen[TestDag] = + def nonterminalGen(p: Gen.Parameters): Gen[TestDag] = { for(i <- 0 until nodeCount; nextDeps <- Gen.someOf(nodes).apply(p)) nodes += new TestDag(i, nextDeps) @@ -27,7 +27,7 @@ object DagSpecification extends Properties("Dag") } Gen.parameterized(nonterminalGen) } - + private def isSet[T](c: Seq[T]) = Set(c: _*).size == c.size private def dependenciesPrecedeNodes(sort: List[TestDag]) = { diff --git a/util/process/src/test/scala/ProcessSpecification.scala b/util/process/src/test/scala/ProcessSpecification.scala index f48a8282c..6298ce544 100644 --- a/util/process/src/test/scala/ProcessSpecification.scala +++ b/util/process/src/test/scala/ProcessSpecification.scala @@ -8,7 +8,12 @@ import Process._ object ProcessSpecification extends Properties("Process I/O") { - implicit val exitCodeArb: Arbitrary[Array[Byte]] = Arbitrary(Gen.choose(0, 10) flatMap { size => Gen.resize(size, Arbitrary.arbArray[Byte].arbitrary) }) + implicit val exitCodeArb: Arbitrary[Array[Byte]] = Arbitrary( + for(size <- Gen.choose(0, 10); + l <- Gen.listOfN[Byte](size, Arbitrary.arbByte.arbitrary)) + yield + l.toArray + ) /*property("Correct exit code") = forAll( (exitCode: Byte) => checkExit(exitCode)) property("#&& correct") = forAll( (exitCodes: Array[Byte]) => checkBinary(exitCodes)(_ #&& _)(_ && _)) @@ -99,7 +104,7 @@ object ProcessSpecification extends Properties("Process I/O") val process = f(a, b) ( process ! ) == 0 && sameFiles(a, b) } - private def sameFiles(a: File, b: File) = + private def sameFiles(a: File, b: File) = IO.readBytes(a) sameElements IO.readBytes(b) private def withTempFiles[T](f: (File, File) => T): T = @@ -112,7 +117,7 @@ object ProcessSpecification extends Properties("Process I/O") temporaryFile1.delete() temporaryFile2.delete() } - } + } private def unsigned(b: Int): Int = ((b: Int) +256) % 256 private def unsigned(b: Byte): Int = unsigned(b: Int) private def process(command: String) =