diff --git a/.gitignore b/.gitignore index 02fd5276..f5d8ccad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,9 @@ -*.class *.log -.idea -.idea_modules - -# sbt specific -dist/* +# SBT specific target/ -lib_managed/ -src_managed/ project/boot/ project/plugins/project/ -credentials.sbt -*.icode # Eclipse specific .classpath @@ -20,5 +11,10 @@ credentials.sbt .settings/ # Scala-IDE specific -.scala_dependencies +.cache-main +.cache-tests + +# IntelliJ IDEA specific +.idea +.idea_modules *.iml \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 8e7befbe..a68139ac 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,11 @@ language: scala + scala: - - 2.11.4 + - 2.10.6 + - 2.11.8 + script: - - "sbt clean test" + - sbt ++$TRAVIS_SCALA_VERSION test + jdk: - oraclejdk7 \ No newline at end of file diff --git a/project/EnvSupport.scala b/project/EnvSupport.scala deleted file mode 100644 index a0c27d54..00000000 --- a/project/EnvSupport.scala +++ /dev/null @@ -1,49 +0,0 @@ - -/** @author Stephen Samuel */ -object EnvSupport { - - // code credit: http://stackoverflow.com/a/19040660/2048448 - def setEnv(k: String, v: String): Unit = { - try { - val processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment") - val theEnvironmentField = processEnvironmentClass.getDeclaredField("theEnvironment") - theEnvironmentField.setAccessible(true) - - val variableClass = Class.forName("java.lang.ProcessEnvironment$Variable") - val convertToVariable = variableClass.getMethod("valueOf", classOf[java.lang.String]) - convertToVariable.setAccessible(true) - - val valueClass = Class.forName("java.lang.ProcessEnvironment$Value") - val convertToValue = valueClass.getMethod("valueOf", classOf[java.lang.String]) - convertToValue.setAccessible(true) - - val sampleVariable = convertToVariable.invoke(null, "") - val sampleValue = convertToValue.invoke(null, "") - val env = theEnvironmentField.get(null).asInstanceOf[java.util.Map[sampleVariable.type, sampleValue.type]] - - val variable = convertToVariable.invoke(null, k).asInstanceOf[sampleVariable.type] - val value = convertToValue.invoke(null, v).asInstanceOf[sampleValue.type] - env.put(variable, value) - - val theCaseInsensitiveEnvironmentField = processEnvironmentClass.getDeclaredField("theCaseInsensitiveEnvironment") - theCaseInsensitiveEnvironmentField.setAccessible(true) - val cienv = theCaseInsensitiveEnvironmentField.get(null).asInstanceOf[java.util.Map[String, String]] - cienv.put(k, v) - - } - catch { - case e: NoSuchFieldException => - val classes = classOf[java.util.Collections].getDeclaredClasses - val env = System.getenv() - classes foreach (cl => { - if ("java.util.Collections$UnmodifiableMap" == cl.getName) { - val field = cl.getDeclaredField("m") - field.setAccessible(true) - val map = field.get(env).asInstanceOf[java.util.Map[String, String]] - map.put(k, v) - } - }) - case e : ClassNotFoundException => - } - } -} diff --git a/project/Scoverage.scala b/project/Scoverage.scala index 998d3eb9..8eb0a7ff 100644 --- a/project/Scoverage.scala +++ b/project/Scoverage.scala @@ -11,16 +11,15 @@ import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._ object Scoverage extends Build { val Org = "org.scoverage" - val Scala = "2.11.7" val MockitoVersion = "1.9.5" - val ScalatestVersion = "3.0.0-M15" + val ScalatestVersion = "3.0.0" lazy val LocalTest = config("local") extend Test val appSettings = Seq( organization := Org, - scalaVersion := Scala, - crossScalaVersions := Seq("2.10.6", "2.11.7"), + scalaVersion := "2.11.8", + crossScalaVersions := Seq("2.10.6", "2.11.8"), fork in Test := false, publishMavenStyle := true, publishArtifact in Test := false, @@ -70,7 +69,6 @@ object Scoverage extends Build { .settings(name := "scalac-scoverage") .settings(appSettings: _*) .settings(publishArtifact := false) - .settings(javaOptions += "-XX:MaxMetaspaceSize=2048m") .aggregate(plugin, runtime.jvm, runtime.js) lazy val runtime = CrossProject("scalac-scoverage-runtime", file("scalac-scoverage-runtime"), CrossType.Full) @@ -80,8 +78,7 @@ object Scoverage extends Build { libraryDependencies ++= Seq( "org.mockito" % "mockito-all" % MockitoVersion % "test", "org.scalatest" %% "scalatest" % ScalatestVersion % "test" - ), - javaOptions += "-XX:MaxMetaspaceSize=2048m" + ) ) .jsSettings( libraryDependencies += "org.scalatest" %%% "scalatest" % ScalatestVersion, @@ -95,7 +92,6 @@ object Scoverage extends Build { .dependsOn(`scalac-scoverage-runtimeJVM` % "test") .settings(name := "scalac-scoverage-plugin") .settings(appSettings: _*) - .settings(javaOptions += "-XX:MaxMetaspaceSize=2048m") .settings(libraryDependencies ++= Seq( "org.mockito" % "mockito-all" % MockitoVersion % "test", "org.scalatest" %% "scalatest" % ScalatestVersion % "test", @@ -107,10 +103,8 @@ object Scoverage extends Build { )).settings(libraryDependencies ++= { CrossVersion.partialVersion(scalaVersion.value) match { case Some((2, scalaMajor)) if scalaMajor == 11 => - EnvSupport.setEnv("CrossBuildScalaVersion", "2.11.7") Seq("org.scala-lang.modules" %% "scala-xml" % "1.0.4") case _ => - EnvSupport.setEnv("CrossBuildScalaVersion", "2.10.6") Nil } }) diff --git a/project/build.properties b/project/build.properties index 43b8278c..35c88bab 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=0.13.11 +sbt.version=0.13.12 diff --git a/project/scales-build.iml b/project/scales-build.iml deleted file mode 100644 index d49584d0..00000000 --- a/project/scales-build.iml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/CoberturaXmlWriterTest.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/CoberturaXmlWriterTest.scala index 098c5f4a..9887c76f 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/CoberturaXmlWriterTest.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/CoberturaXmlWriterTest.scala @@ -101,8 +101,8 @@ class CoberturaXmlWriterTest extends FunSuite with BeforeAndAfter with OneInstan val xml = XML.loadFile(fileIn(dir)) - assert(xml \\ "coverage" \@ "line-rate" === "0.33", "line-rate") - assert(xml \\ "coverage" \@ "branch-rate" === "0.50", "branch-rate") + assert((xml \\ "coverage" \ "@line-rate").text === "0.33", "line-rate") + assert((xml \\ "coverage" \ "@branch-rate").text === "0.50", "branch-rate") } } diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala index ae0013c3..f653b835 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala @@ -3,7 +3,7 @@ package scoverage import java.io.{File, FileWriter} import java.util.UUID -import org.scalatest.mock.MockitoSugar +import org.scalatest.mockito.MockitoSugar import org.scalatest.{FreeSpec, Matchers, OneInstancePerTest} /** @author Stephen Samuel */ diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/PluginASTSupportTest.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/PluginASTSupportTest.scala index d3a62d40..1e6df3d1 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/PluginASTSupportTest.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/PluginASTSupportTest.scala @@ -1,6 +1,6 @@ package scoverage -import org.scalatest.mock.MockitoSugar +import org.scalatest.mockito.MockitoSugar import org.scalatest._ /** @author Stephen Samuel */ @@ -98,7 +98,7 @@ class PluginASTSupportTest compiler.compileCodeSnippet( """object Foo { | final val foo = 1L |} - |@SerialVersionUID(value = Foo.foo) + |@SerialVersionUID(Foo.foo) |class Bar |""".stripMargin) assert(!compiler.reporter.hasErrors) diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/PluginCoverageTest.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/PluginCoverageTest.scala index 86876115..22e572cc 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/PluginCoverageTest.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/PluginCoverageTest.scala @@ -1,6 +1,6 @@ package scoverage -import org.scalatest.mock.MockitoSugar +import org.scalatest.mockito.MockitoSugar import org.scalatest.{BeforeAndAfterEachTestData, FunSuite, OneInstancePerTest} /** @author Stephen Samuel */ @@ -27,7 +27,19 @@ class PluginCoverageTest test("scoverage should skip macros") { val compiler = ScoverageCompiler.default - val code = """ + val code = if (ScoverageCompiler.ShortScalaVersion == "2.10") + """ + import scala.language.experimental.macros + import scala.reflect.macros.Context + object Impl { + def poly[T: c.WeakTypeTag](c: Context) = c.literal(c.weakTypeOf[T].toString) + } + + object Macros { + def poly[T] = macro Impl.poly[T] + }""" + else + """ import scala.language.experimental.macros import scala.reflect.macros.Context class Impl(val c: Context) { diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/RegexCoverageFilterTest.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/RegexCoverageFilterTest.scala index f7911187..ea935082 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/RegexCoverageFilterTest.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/RegexCoverageFilterTest.scala @@ -1,7 +1,7 @@ package scoverage import org.mockito.Mockito -import org.scalatest.mock.MockitoSugar +import org.scalatest.mockito.MockitoSugar import org.scalatest.{FreeSpec, Matchers} import scala.reflect.internal.util._ diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala index 4addc306..96573a8a 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala @@ -11,7 +11,7 @@ import scala.tools.nsc.transform.{Transform, TypingTransformers} /** @author Stephen Samuel */ object ScoverageCompiler { - val ScalaVersion = "2.11.7" + val ScalaVersion = scala.util.Properties.versionNumberString val ShortScalaVersion = ScalaVersion.dropRight(2) def classPath = getScalaJars.map(_.getAbsolutePath) :+ sbtCompileDir.getAbsolutePath :+ runtimeClasses.getAbsolutePath @@ -45,13 +45,13 @@ object ScoverageCompiler { } private def sbtCompileDir: File = { - val dir = new File("./scalac-scoverage-plugin/target/scala-" + ShortScalaVersion + "/classes") + val dir = new File(s"./scalac-scoverage-plugin/target/scala-$ShortScalaVersion/classes") if (!dir.exists) throw new FileNotFoundException(s"Could not locate SBT compile directory for plugin files [$dir]") dir } - private def runtimeClasses: File = new File("./scalac-scoverage-runtime/jvm/target/scala-2.11/classes") + private def runtimeClasses: File = new File(s"./scalac-scoverage-runtime/jvm/target/scala-$ShortScalaVersion/classes") private def findScalaJar(artifactId: String): File = findIvyJar("org.scala-lang", artifactId, ScalaVersion) diff --git a/scalac-scoverage-plugin/src/test/scala/scoverage/SerializerTest.scala b/scalac-scoverage-plugin/src/test/scala/scoverage/SerializerTest.scala index 9982945e..14e1abaf 100644 --- a/scalac-scoverage-plugin/src/test/scala/scoverage/SerializerTest.scala +++ b/scalac-scoverage-plugin/src/test/scala/scoverage/SerializerTest.scala @@ -3,7 +3,7 @@ package scoverage import java.io.StringWriter import org.scalatest.{OneInstancePerTest, FunSuite} -import org.scalatest.mock.MockitoSugar +import org.scalatest.mockito.MockitoSugar import scala.xml.Utility