From 10f908010ebd74307bb7c9a80ceab3726db332f0 Mon Sep 17 00:00:00 2001 From: Stefan Zeiger Date: Thu, 3 Dec 2015 11:16:56 -0800 Subject: [PATCH 1/2] Build for Scala 2.11.7, 2.12.0-M1, 2.12.0-M2 and 2.12.0-M3 To be tagged as release 1.0.11. --- build.sbt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/build.sbt b/build.sbt index 0c4e7d0..a8d4083 100644 --- a/build.sbt +++ b/build.sbt @@ -4,21 +4,23 @@ scalaModuleSettings name := "scala-partest" -version := "1.0.11-SNAPSHOT" +version := "1.0.12-SNAPSHOT" scalaVersion := crossScalaVersions.value.head crossScalaVersions := { val java = System.getProperty("java.version") if (java.startsWith("1.6.")) - Seq("2.11.6", "2.12.0-M1") + Seq("2.11.7", "2.12.0-M1") else if (java.startsWith("1.8.")) - Seq("2.12.0-M2") + Seq("2.12.0-M2", "2.12.0-M3") else sys.error(s"don't know what Scala versions to build on $java") } -scalaXmlVersion := "1.0.4" +scalaXmlVersion := { + if(scalaVersion.value == "2.12.0-M3") "1.0.5" else "1.0.4" +} scalaCheckVersion := "1.11.6" From 1c78ce6752078cdf4410c9236ad1a15c44a2f8c4 Mon Sep 17 00:00:00 2001 From: Stefan Zeiger Date: Thu, 3 Dec 2015 15:19:49 -0800 Subject: [PATCH 2/2] Locate partest-javaagent in classpath MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It used to be searched in ./build but that doesn’t work for the sbt build, where it is actually under ./build-sbt. The correct path is already on the partest classpath, so we can simply pull it from there with `findArtifact` instead of using `findJar`. Some other obsolete uses of `findJar` along with `buildPackLibDir` are also removed. --- .../scala/scala/tools/partest/nest/FileManager.scala | 10 ++++++---- .../scala/scala/tools/partest/nest/PathSettings.scala | 7 ------- src/main/scala/scala/tools/partest/nest/Runner.scala | 2 +- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/main/scala/scala/tools/partest/nest/FileManager.scala b/src/main/scala/scala/tools/partest/nest/FileManager.scala index 40e62ed..b9c3306 100644 --- a/src/main/scala/scala/tools/partest/nest/FileManager.scala +++ b/src/main/scala/scala/tools/partest/nest/FileManager.scala @@ -111,6 +111,7 @@ class FileManager(val testClassLoader: URLClassLoader) { lazy val libraryUnderTest: Path = findArtifact("library") lazy val reflectUnderTest: Path = findArtifact("reflect") lazy val compilerUnderTest: Path = findArtifact("compiler") + lazy val agentLib: Path = findArtifact("javaagent") lazy val testClassPath = testClassLoader.getURLs().map(url => Path(new File(url.toURI))).toList @@ -126,13 +127,14 @@ class FileManager(val testClassLoader: URLClassLoader) { else "installed" } - // find library/reflect/compiler jar or subdir under build/$stage/classes/ + // find library/reflect/compiler/javaagent jar or subdir under build/$stage/classes/ private def findArtifact(name: String): Path = { val canaryClass = name match { - case "library" => Class.forName("scala.Unit", false, testClassLoader) - case "reflect" => Class.forName("scala.reflect.api.Symbols", false, testClassLoader) - case "compiler" => Class.forName("scala.tools.nsc.Main", false, testClassLoader) + case "library" => Class.forName("scala.Unit", false, testClassLoader) + case "reflect" => Class.forName("scala.reflect.api.Symbols", false, testClassLoader) + case "compiler" => Class.forName("scala.tools.nsc.Main", false, testClassLoader) + case "javaagent" => Class.forName("scala.tools.partest.javaagent.ProfilingAgent", false, testClassLoader) } val path = Path(canaryClass.getProtectionDomain.getCodeSource.getLocation.getPath) diff --git a/src/main/scala/scala/tools/partest/nest/PathSettings.scala b/src/main/scala/scala/tools/partest/nest/PathSettings.scala index 76702fa..cd30972 100644 --- a/src/main/scala/scala/tools/partest/nest/PathSettings.scala +++ b/src/main/scala/scala/tools/partest/nest/PathSettings.scala @@ -42,9 +42,6 @@ object PathSettings { // Directory /test/files or .../scaladoc def srcDir = Directory(testRoot / testSourcePath toCanonical) - // Directory /build/pack/lib - private def buildPackLibDir = Directory(buildDir / "pack" / "lib") - // Directory /test/files/lib private def srcLibDir = Directory(srcDir / "lib") @@ -60,8 +57,4 @@ object PathSettings { def srcSpecLib = findJar("instrumented", Directory(srcDir / "speclib")) def srcCodeLib = findJar("code", Directory(srcDir / "codelib"), Directory(testRoot / "files" / "codelib") /* work with --srcpath pending */) - def agentLib = findJar("scala-partest-javaagent", buildPackLibDir) - def scalaCheck = findJar("scalacheck", buildPackLibDir, srcLibDir) - def testInterface = findJar("test-interface", buildPackLibDir, srcLibDir) - def diffUtils = findJar("diffutils", buildPackLibDir) } diff --git a/src/main/scala/scala/tools/partest/nest/Runner.scala b/src/main/scala/scala/tools/partest/nest/Runner.scala index 1dec027..3468bf4 100644 --- a/src/main/scala/scala/tools/partest/nest/Runner.scala +++ b/src/main/scala/scala/tools/partest/nest/Runner.scala @@ -551,7 +551,7 @@ class Runner(val testFile: File, val suiteRunner: SuiteRunner) { case _ => Nil } def extraJavaOptions = kind match { - case "instrumented" => ("-javaagent:"+PathSettings.agentLib.fold(sys.error, identity)).split(' ') + case "instrumented" => ("-javaagent:"+agentLib).split(' ') case _ => Array.empty[String] }