summaryrefslogtreecommitdiff
path: root/scalalib/src/test/scala/mill/scalalib/GenIdeaTests.scala
diff options
context:
space:
mode:
Diffstat (limited to 'scalalib/src/test/scala/mill/scalalib/GenIdeaTests.scala')
-rw-r--r--scalalib/src/test/scala/mill/scalalib/GenIdeaTests.scala78
1 files changed, 78 insertions, 0 deletions
diff --git a/scalalib/src/test/scala/mill/scalalib/GenIdeaTests.scala b/scalalib/src/test/scala/mill/scalalib/GenIdeaTests.scala
new file mode 100644
index 00000000..36945f65
--- /dev/null
+++ b/scalalib/src/test/scala/mill/scalalib/GenIdeaTests.scala
@@ -0,0 +1,78 @@
+package mill.scalalib
+
+import ammonite.ops._
+import mill._
+
+import mill.util.{TestEvaluator, TestUtil}
+import utest._
+
+object GenIdeaTests extends TestSuite {
+
+ val basePath = pwd / 'target / 'workspace / "gen-idea"
+ val outPath = basePath / 'out
+ val workingSrcPath = basePath / 'src
+
+ trait HelloWorldModule extends scalalib.ScalaModule {
+ def scalaVersion = "2.12.4"
+ def basePath = HelloWorldTests.workingSrcPath
+ }
+
+ object HelloWorld extends TestUtil.BaseModule with HelloWorldModule
+
+ val helloWorldEvaluator = new TestEvaluator(
+ HelloWorld,
+ outPath,
+ workingSrcPath
+ )
+
+ def tests: Tests = Tests {
+ 'genIdeaTests - {
+ helloWorldEvaluator(HelloWorld.scalaVersion)
+ val x = GenIdea.xmlFileLayout(helloWorldEvaluator.evaluator, HelloWorld)
+ val pp = new scala.xml.PrettyPrinter(999, 4)
+
+ for((relPath, xml) <- GenIdea.xmlFileLayout(helloWorldEvaluator.evaluator, HelloWorld)){
+ write.over(basePath/ "generated"/ relPath, pp.format(xml))
+ }
+
+ Seq(
+ "gen-idea/idea_modules/iml" ->
+ basePath / "generated" / ".idea_modules" /".iml",
+ "gen-idea/idea_modules/root.iml" ->
+ basePath / "generated" / ".idea_modules" /"root.iml",
+ "gen-idea/idea/libraries/scala-reflect_2.12.4_scala-reflect-2.12.4-sources.jar.xml" ->
+ basePath / "generated" / ".idea" / "libraries" / "scala-reflect_2.12.4_scala-reflect-2.12.4-sources.jar.xml",
+ "gen-idea/idea/libraries/scala-reflect_2.12.4_scala-reflect-2.12.4.jar.xml" ->
+ basePath / "generated" / ".idea" / "libraries" / "scala-reflect_2.12.4_scala-reflect-2.12.4.jar.xml",
+ "gen-idea/idea/libraries/scala-library_2.12.4_scala-library-2.12.4.jar.xml" ->
+ basePath / "generated" / ".idea" / "libraries" / "scala-library_2.12.4_scala-library-2.12.4.jar.xml",
+ "gen-idea/idea/libraries/modules_scala-xml_2.12_1.0.6_scala-xml_2.12-1.0.6.jar.xml" ->
+ basePath / "generated" / ".idea" / "libraries" / "modules_scala-xml_2.12_1.0.6_scala-xml_2.12-1.0.6.jar.xml",
+ "gen-idea/idea/libraries/modules_scala-xml_2.12_1.0.6_scala-xml_2.12-1.0.6-sources.jar.xml" ->
+ basePath / "generated" / ".idea" / "libraries" / "modules_scala-xml_2.12_1.0.6_scala-xml_2.12-1.0.6-sources.jar.xml",
+ "gen-idea/idea/libraries/scala-compiler_2.12.4_scala-compiler-2.12.4-sources.jar.xml" ->
+ basePath / "generated" / ".idea" / "libraries" / "scala-compiler_2.12.4_scala-compiler-2.12.4-sources.jar.xml",
+ "gen-idea/idea/libraries/scala-library_2.12.4_scala-library-2.12.4-sources.jar.xml" ->
+ basePath / "generated" / ".idea" / "libraries" / "scala-library_2.12.4_scala-library-2.12.4-sources.jar.xml",
+ "gen-idea/idea/libraries/scala-compiler_2.12.4_scala-compiler-2.12.4.jar.xml" ->
+ basePath / "generated" / ".idea" / "libraries" / "scala-compiler_2.12.4_scala-compiler-2.12.4.jar.xml",
+ "gen-idea/idea/modules.xml" ->
+ basePath / "generated" / ".idea" / "modules.xml",
+ "gen-idea/idea/misc.xml" ->
+ basePath / "generated" / ".idea" / "misc.xml",
+ ).foreach { case (resource, generated) =>
+ println("checking "+resource)
+ val resourceString = scala.io.Source.fromResource(resource).getLines().mkString("\n")
+ val generatedString = normaliseLibraryPaths(read! generated)
+
+ assert(resourceString == generatedString)
+ }
+ }
+ }
+
+
+ private val libPathRegex = """([\w/]+)/.coursier""".r
+ private def normaliseLibraryPaths(in: String): String = {
+ libPathRegex.replaceAllIn(in, "COURSIER_HOME")
+ }
+}