summaryrefslogtreecommitdiff
path: root/scalalib/test
diff options
context:
space:
mode:
Diffstat (limited to 'scalalib/test')
-rw-r--r--scalalib/test/resources/gen-idea-extended-hello-world/build.sc44
-rw-r--r--scalalib/test/resources/gen-idea-extended-hello-world/idea/compiler.xml8
-rw-r--r--scalalib/test/resources/gen-idea-extended-hello-world/idea/libraries/scala-library-2.12.4.jar.xml18
-rw-r--r--scalalib/test/resources/gen-idea-extended-hello-world/idea/misc.xml5
-rw-r--r--scalalib/test/resources/gen-idea-extended-hello-world/idea/modules.xml9
-rw-r--r--scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/helloworld.iml26
-rw-r--r--scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/helloworld.test.iml18
-rw-r--r--scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/mill-build.iml12
-rw-r--r--scalalib/test/src/GenIdeaExtendedTests.scala41
9 files changed, 181 insertions, 0 deletions
diff --git a/scalalib/test/resources/gen-idea-extended-hello-world/build.sc b/scalalib/test/resources/gen-idea-extended-hello-world/build.sc
new file mode 100644
index 00000000..4d1affbb
--- /dev/null
+++ b/scalalib/test/resources/gen-idea-extended-hello-world/build.sc
@@ -0,0 +1,44 @@
+import mill.scalalib
+import mill.define.Command
+import mill.scalalib.GenIdeaModule._
+
+trait HelloWorldModule extends scalalib.ScalaModule {
+ def scalaVersion = "2.12.4"
+ object test extends super.Tests {
+ def testFrameworks = Seq("utest.runner.Framework")
+ }
+
+ def ideaJavaModuleFacets(ideaConfigVersion: Int): Command[Seq[JavaFacet]] = T.command {
+ ideaConfigVersion match {
+ case 4 =>
+ Seq(
+ JavaFacet("AspectJ", "AspectJ",
+ Element("configuration", childs = Seq(
+ Element("projectLibrary", childs = Seq(
+ Element("option", Map("name" -> "name", "value" -> "/tmp"))
+ ))
+ ))
+ )
+ )
+ }
+ }
+
+ override def ideaConfigFiles(ideaConfigVersion: Int): Command[Seq[IdeaConfigFile]] = T.command {
+ ideaConfigVersion match {
+ case 4 =>
+ Seq(
+ IdeaConfigFile(
+ name = "compiler.xml",
+ component = "AjcSettings",
+ config = Seq(Element("option", Map("name" -> "ajcPath", "value" -> "/tmp/aspectjtools.jar")))),
+ IdeaConfigFile(
+ name = "compiler.xml",
+ component = "CompilerConfiguration",
+ config = Seq(Element("option", Map("name" -> "DEFAULT_COMPILER", "value" -> "ajc")))
+ )
+ )
+ }
+ }
+}
+
+object HelloWorld extends HelloWorldModule
diff --git a/scalalib/test/resources/gen-idea-extended-hello-world/idea/compiler.xml b/scalalib/test/resources/gen-idea-extended-hello-world/idea/compiler.xml
new file mode 100644
index 00000000..3622ff42
--- /dev/null
+++ b/scalalib/test/resources/gen-idea-extended-hello-world/idea/compiler.xml
@@ -0,0 +1,8 @@
+<project version="4">
+ <component name="CompilerConfiguration">
+ <option name="DEFAULT_COMPILER" value="ajc"/>
+ </component>
+ <component name="AjcSettings">
+ <option name="ajcPath" value="/tmp/aspectjtools.jar"/>
+ </component>
+</project> \ No newline at end of file
diff --git a/scalalib/test/resources/gen-idea-extended-hello-world/idea/libraries/scala-library-2.12.4.jar.xml b/scalalib/test/resources/gen-idea-extended-hello-world/idea/libraries/scala-library-2.12.4.jar.xml
new file mode 100644
index 00000000..5f7c5056
--- /dev/null
+++ b/scalalib/test/resources/gen-idea-extended-hello-world/idea/libraries/scala-library-2.12.4.jar.xml
@@ -0,0 +1,18 @@
+<component name="libraryTable">
+ <library name="scala-library-2.12.4.jar" type="Scala">
+ <properties>
+ <compiler-classpath>
+ <root url="file://COURSIER_HOME/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-xml_2.12/1.0.6/scala-xml_2.12-1.0.6.jar"/>
+ <root url="file://COURSIER_HOME/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.12.4/scala-compiler-2.12.4.jar"/>
+ <root url="file://COURSIER_HOME/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.4/scala-library-2.12.4.jar"/>
+ <root url="file://COURSIER_HOME/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.12.4/scala-reflect-2.12.4.jar"/>
+ </compiler-classpath>
+ </properties>
+ <CLASSES>
+ <root url="jar://COURSIER_HOME/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.4/scala-library-2.12.4.jar!/"/>
+ </CLASSES>
+ <SOURCES>
+ <root url="jar://COURSIER_HOME/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.12.4/scala-library-2.12.4-sources.jar!/"/>
+ </SOURCES>
+ </library>
+</component>
diff --git a/scalalib/test/resources/gen-idea-extended-hello-world/idea/misc.xml b/scalalib/test/resources/gen-idea-extended-hello-world/idea/misc.xml
new file mode 100644
index 00000000..f4f144ce
--- /dev/null
+++ b/scalalib/test/resources/gen-idea-extended-hello-world/idea/misc.xml
@@ -0,0 +1,5 @@
+<project version="4">
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8 (1)" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/target/idea_output"/>
+ </component>
+</project>
diff --git a/scalalib/test/resources/gen-idea-extended-hello-world/idea/modules.xml b/scalalib/test/resources/gen-idea-extended-hello-world/idea/modules.xml
new file mode 100644
index 00000000..193fa62d
--- /dev/null
+++ b/scalalib/test/resources/gen-idea-extended-hello-world/idea/modules.xml
@@ -0,0 +1,9 @@
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea_modules/mill-build.iml" filepath="$PROJECT_DIR$/.idea_modules/mill-build.iml"/>
+ <module fileurl="file://$PROJECT_DIR$/.idea_modules/helloworld.iml" filepath="$PROJECT_DIR$/.idea_modules/helloworld.iml"/>
+ <module fileurl="file://$PROJECT_DIR$/.idea_modules/helloworld.test.iml" filepath="$PROJECT_DIR$/.idea_modules/helloworld.test.iml"/>
+ </modules>
+ </component>
+</project>
diff --git a/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/helloworld.iml b/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/helloworld.iml
new file mode 100644
index 00000000..94810f20
--- /dev/null
+++ b/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/helloworld.iml
@@ -0,0 +1,26 @@
+<module type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager">
+ <output url="file://$MODULE_DIR$/../out/HelloWorld/compile/dest/classes"/>
+ <exclude-output/>
+ <content url="file://$MODULE_DIR$/../out/HelloWorld/generatedSources/dest"/>
+ <content url="file://$MODULE_DIR$/../HelloWorld">
+ <sourceFolder url="file://$MODULE_DIR$/../HelloWorld/src" isTestSource="false"/>
+ <sourceFolder url="file://$MODULE_DIR$/../HelloWorld/resources" type="java-resource"/>
+ <excludeFolder url="file://$MODULE_DIR$/../HelloWorld/target"/>
+ </content>
+ <orderEntry type="inheritedJdk"/>
+ <orderEntry type="sourceFolder" forTests="false"/>
+ <orderEntry type="library" name="scala-sdk-2.12.4" level="application"/>
+ <orderEntry type="library" name="scala-library-2.12.4-sources.jar" level="project"/>
+ <orderEntry type="library" name="scala-library-2.12.4.jar" level="project"/>
+ </component>
+ <component name="FacetManager">
+ <facet type="AspectJ" name="AspectJ">
+ <configuration>
+ <projectLibrary>
+ <option name="name" value="/tmp"/>
+ </projectLibrary>
+ </configuration>
+ </facet>
+ </component>
+</module> \ No newline at end of file
diff --git a/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/helloworld.test.iml b/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/helloworld.test.iml
new file mode 100644
index 00000000..26fac21d
--- /dev/null
+++ b/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/helloworld.test.iml
@@ -0,0 +1,18 @@
+<module type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager">
+ <output-test url="file://$MODULE_DIR$/../out/HelloWorld/test/compile/dest/classes"/>
+ <exclude-output/>
+ <content url="file://$MODULE_DIR$/../out/HelloWorld/test/generatedSources/dest"/>
+ <content url="file://$MODULE_DIR$/../HelloWorld/test">
+ <sourceFolder url="file://$MODULE_DIR$/../HelloWorld/test/src" isTestSource="true"/>
+ <sourceFolder url="file://$MODULE_DIR$/../HelloWorld/test/resources" type="java-test-resource"/>
+ <excludeFolder url="file://$MODULE_DIR$/../HelloWorld/test/target"/>
+ </content>
+ <orderEntry type="inheritedJdk"/>
+ <orderEntry type="sourceFolder" forTests="false"/>
+ <orderEntry type="library" name="scala-sdk-2.12.4" level="application"/>
+ <orderEntry type="library" name="scala-library-2.12.4-sources.jar" level="project"/>
+ <orderEntry type="library" name="scala-library-2.12.4.jar" level="project"/>
+ <orderEntry type="module" module-name="helloworld" exported=""/>
+ </component>
+</module>
diff --git a/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/mill-build.iml b/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/mill-build.iml
new file mode 100644
index 00000000..46fd8c3b
--- /dev/null
+++ b/scalalib/test/resources/gen-idea-extended-hello-world/idea_modules/mill-build.iml
@@ -0,0 +1,12 @@
+<module type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager">
+ <output url="file://$MODULE_DIR$/../out"/>
+ <content url="file://$MODULE_DIR$/..">
+ <excludeFolder url="file://$MODULE_DIR$/../project"/>
+ <excludeFolder url="file://$MODULE_DIR$/../target"/>
+ </content>
+ <exclude-output/>
+ <orderEntry type="inheritedJdk"/>
+ <orderEntry type="sourceFolder" forTests="false"/>
+ </component>
+</module> \ No newline at end of file
diff --git a/scalalib/test/src/GenIdeaExtendedTests.scala b/scalalib/test/src/GenIdeaExtendedTests.scala
new file mode 100644
index 00000000..0a4de2e7
--- /dev/null
+++ b/scalalib/test/src/GenIdeaExtendedTests.scala
@@ -0,0 +1,41 @@
+package mill.scalalib
+
+import mill.util.ScriptTestSuite
+import os.Path
+import utest._
+
+object GenIdeaExtendedTests extends ScriptTestSuite(false) {
+
+ override def workspaceSlug: String = "gen-idea-extended-hello-world"
+
+ override def scriptSourcePath: Path = os.pwd / 'scalalib / 'test / 'resources / workspaceSlug
+
+ def tests: Tests = Tests {
+ 'genIdeaTests - {
+ initWorkspace()
+ eval("mill.scalalib.GenIdea/idea")
+
+ Seq(
+ s"$workspaceSlug/idea_modules/helloworld.iml" -> workspacePath / ".idea_modules" /"helloworld.iml",
+ s"$workspaceSlug/idea_modules/helloworld.test.iml" -> workspacePath / ".idea_modules" /"helloworld.test.iml",
+ s"$workspaceSlug/idea/libraries/scala-library-2.12.4.jar.xml" ->
+ workspacePath / ".idea" / "libraries" / "scala-library-2.12.4.jar.xml",
+
+ s"$workspaceSlug/idea/modules.xml" -> workspacePath / ".idea" / "modules.xml",
+ s"$workspaceSlug/idea/misc.xml" -> workspacePath / ".idea" / "misc.xml",
+ s"$workspaceSlug/idea/compiler.xml" -> workspacePath / ".idea" / "compiler.xml"
+
+ ).foreach { case (resource, generated) =>
+ val resourceString = scala.io.Source.fromResource(resource).getLines().mkString("\n")
+ val generatedString = normaliseLibraryPaths(os.read(generated))
+
+ assert(resourceString == generatedString)
+ }
+ }
+ }
+
+ private def normaliseLibraryPaths(in: String): String = {
+ in.replaceAll(coursier.paths.CoursierPaths.cacheDirectory().toString, "COURSIER_HOME")
+ }
+
+}