From 57f4ca4dfb5cf3853af4c3bb0f8caacddd182a9c Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Thu, 13 Aug 2020 00:14:54 -0700 Subject: Deprecate support for Scala 2.11 (#1842) * Deprecate support for Scala 2.11 Printed as warning in transform, can be suppressed via CLI * Place version deprecation message in object Refactor CheckScalaVersion to place the deprecation message inside the companion object. This lets the object be reused in other places, like in tests. Signed-off-by: Schuyler Eldridge * Check Scala 2.11 deprecation messages in tests Fix FirrtlMainSpec to check that the Scala 2.11 deprecation message added by the CheckScalaVersion transform shows up on stdout, but only if tests are running under 2.11. Signed-off-by: Schuyler Eldridge Co-authored-by: Schuyler Eldridge Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>--- .../scala/firrtlTests/LoweringCompilersSpec.scala | 1 + .../scala/firrtlTests/stage/FirrtlMainSpec.scala | 32 ++++++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) (limited to 'src/test') diff --git a/src/test/scala/firrtlTests/LoweringCompilersSpec.scala b/src/test/scala/firrtlTests/LoweringCompilersSpec.scala index e1de7e34..f0f2042e 100644 --- a/src/test/scala/firrtlTests/LoweringCompilersSpec.scala +++ b/src/test/scala/firrtlTests/LoweringCompilersSpec.scala @@ -36,6 +36,7 @@ class LoweringCompilersSpec extends AnyFlatSpec with Matchers { def legacyTransforms(a: CoreTransform): Seq[Transform] = a match { case _: ChirrtlToHighFirrtl => Seq( + new firrtl.stage.transforms.CheckScalaVersion, firrtl.passes.CheckChirrtl, firrtl.passes.CInferTypes, firrtl.passes.CInferMDir, diff --git a/src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala b/src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala index 1b4a1375..7d57f7ed 100644 --- a/src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala +++ b/src/test/scala/firrtlTests/stage/FirrtlMainSpec.scala @@ -8,9 +8,10 @@ import org.scalatest.matchers.should.Matchers import java.io.{File, PrintWriter} -import firrtl.FileUtils +import firrtl.{BuildInfo, FileUtils} -import firrtl.stage.FirrtlMain +import firrtl.stage.{FirrtlMain, SuppressScalaVersionWarning} +import firrtl.stage.transforms.CheckScalaVersion import firrtl.util.BackendCompilationUtilities import org.scalatest.featurespec.AnyFeatureSpec import org.scalatest.matchers.should.Matchers @@ -159,6 +160,16 @@ class FirrtlMainSpec extends AnyFeatureSpec with GivenWhenThen with Matchers wit |""".stripMargin } + /** This returns a string containing the default standard out string based on the Scala version. E.g., if there are + * version-specific deprecation warnings, those are available here and can be passed to tests that should have them. + */ + val defaultStdOut: Option[String] = BuildInfo.scalaVersion.split("\\.").toList match { + case "2" :: v :: _ :: Nil if v.toInt <= 11 => + Some(CheckScalaVersion.deprecationMessage("2.11", s"--${SuppressScalaVersionWarning.longOption}")) + case x => + None + } + info("As a FIRRTL command line user") info("I want to compile some FIRRTL") Feature("FirrtlMain command line interface") { @@ -192,32 +203,43 @@ class FirrtlMainSpec extends AnyFeatureSpec with GivenWhenThen with Matchers wit FirrtlMainTest(args = Array("-X", "none", "-E", "chirrtl"), files = Seq("Top.fir")), FirrtlMainTest(args = Array("-X", "high", "-E", "high"), + stdout = defaultStdOut, files = Seq("Top.hi.fir")), FirrtlMainTest(args = Array("-X", "middle", "-E", "middle", "-foaf", "Top"), + stdout = defaultStdOut, files = Seq("Top.mid.fir", "Top.anno.json")), FirrtlMainTest(args = Array("-X", "low", "-E", "low", "-foaf", "annotations.anno.json"), + stdout = defaultStdOut, files = Seq("Top.lo.fir", "annotations.anno.json")), FirrtlMainTest(args = Array("-X", "verilog", "-E", "verilog", "-foaf", "foo.anno"), + stdout = defaultStdOut, files = Seq("Top.v", "foo.anno.anno.json")), FirrtlMainTest(args = Array("-X", "sverilog", "-E", "sverilog", "-foaf", "foo.json"), + stdout = defaultStdOut, files = Seq("Top.sv", "foo.json.anno.json")), /* Test all one file per module emitters */ FirrtlMainTest(args = Array("-X", "none", "-e", "chirrtl"), files = Seq("Top.fir", "Child.fir")), FirrtlMainTest(args = Array("-X", "high", "-e", "high"), + stdout = defaultStdOut, files = Seq("Top.hi.fir", "Child.hi.fir")), FirrtlMainTest(args = Array("-X", "middle", "-e", "middle"), + stdout = defaultStdOut, files = Seq("Top.mid.fir", "Child.mid.fir")), FirrtlMainTest(args = Array("-X", "low", "-e", "low"), + stdout = defaultStdOut, files = Seq("Top.lo.fir", "Child.lo.fir")), FirrtlMainTest(args = Array("-X", "verilog", "-e", "verilog"), + stdout = defaultStdOut, files = Seq("Top.v", "Child.v")), FirrtlMainTest(args = Array("-X", "sverilog", "-e", "sverilog"), + stdout = defaultStdOut, files = Seq("Top.sv", "Child.sv")), /* Test mixing of -E with -e */ FirrtlMainTest(args = Array("-X", "middle", "-E", "high", "-e", "middle"), + stdout = defaultStdOut, files = Seq("Top.hi.fir", "Top.mid.fir", "Child.mid.fir"), notFiles = Seq("Child.hi.fir")), @@ -225,14 +247,19 @@ class FirrtlMainSpec extends AnyFeatureSpec with GivenWhenThen with Matchers wit FirrtlMainTest(args = Array("-X", "none", "-E", "chirrtl", "-o", "foo"), files = Seq("foo.fir")), FirrtlMainTest(args = Array("-X", "high", "-E", "high", "-o", "foo"), + stdout = defaultStdOut, files = Seq("foo.hi.fir")), FirrtlMainTest(args = Array("-X", "middle", "-E", "middle", "-o", "foo.middle"), + stdout = defaultStdOut, files = Seq("foo.middle.mid.fir")), FirrtlMainTest(args = Array("-X", "low", "-E", "low", "-o", "foo.lo.fir"), + stdout = defaultStdOut, files = Seq("foo.lo.fir")), FirrtlMainTest(args = Array("-X", "verilog", "-E", "verilog", "-o", "foo.sv"), + stdout = defaultStdOut, files = Seq("foo.sv.v")), FirrtlMainTest(args = Array("-X", "sverilog", "-E", "sverilog", "-o", "Foo"), + stdout = defaultStdOut, files = Seq("Foo.sv")) ) .foreach(runStageExpectFiles) @@ -373,4 +400,5 @@ class FirrtlMainSpec extends AnyFeatureSpec with GivenWhenThen with Matchers wit ) .foreach(runStageExpectFiles) } + } -- cgit v1.2.3