Add testcase for scala bootstrap

Before the previous commit, this failed with:
[error] (*:update) java.lang.IllegalArgumentException: a module is not
authorized to depend on itself: org.foo#scala-library;2.99.0
This commit is contained in:
Guillaume Martres 2017-01-08 22:24:36 +01:00
parent 0d0476eaa9
commit 89d5e96ed0
10 changed files with 180 additions and 0 deletions

View File

@ -0,0 +1,43 @@
organization := "org.dummy"
scalaOrganization := "org.foo"
scalaVersion := "2.99.0"
resolvers += Resolver.file("buggy", (baseDirectory in LocalRootProject).value / "repo")(
Patterns(
ivyPatterns = Seq("[organization]/[module]/[revision]/ivy.xml"),
artifactPatterns = Seq("[organization]/[module]/[revision]/dummy.jar"),
isMavenCompatible = false,
descriptorOptional = true,
skipConsistencyCheck = true
)
)
libraryDependencies += "org.scala-lang.modules" % "scala-parser-combinators_2.11" % "1.0.5"
// Adapted from the scala-organization test
val checkDependencies = taskKey[Unit]("Checks that dependencies are correct.")
checkDependencies := {
val expected: Set[ModuleID] = Set(
"org.foo" % "scala-library" % "2.99.0",
"org.foo" % "scala-compiler" % "2.99.0",
"org.scala-lang" % "scala-library" % "2.11.8",
"org.scala-lang" % "scala-compiler" % "2.11.8",
"org.scala-lang" % "scala-reflect" % "2.11.8",
"org.scala-lang.modules" % "scala-parser-combinators_2.11" % "1.0.5",
"org.scala-lang.modules" % "scala-xml_2.11" % "1.0.4",
"org.scala-lang.modules" % "scala-parser-combinators_2.11" % "1.0.4"
)
val resolved: Set[ModuleID] =
(for {
c <- update.value.configurations
m <- c.modules
if !m.evicted
} yield m.module.copy(extraAttributes = Map.empty)).toSet
assert(resolved == expected)
}

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="org.foo" module="scala-compiler" revision="2.99.0" status="integration" publication="20170108221942">
<license name="BSD New" url="https://github.com/lampepfl/dotty/blob/master/LICENSE.md"/>
<description homepage="https://github.com/lampepfl/dotty">
scala-compiler
</description>
</info>
<configurations>
<conf name="compile" visibility="public" description=""/>
<conf name="runtime" visibility="public" description="" extends="compile"/>
<conf name="test" visibility="public" description="" extends="runtime"/>
<conf name="provided" visibility="public" description=""/>
<conf name="optional" visibility="public" description=""/>
<conf extends="runtime" description="Default" visibility="public" name="default"/>
<conf name="sources" visibility="public" description=""/>
<conf name="docs" visibility="public" description=""/>
<conf name="pom" visibility="public" description=""/>
</configurations>
<publications>
<artifact name="scala-compiler" type="pom" ext="pom" conf="pom"/>
<artifact name="scala-compiler" type="jar" ext="jar" conf="compile"/>
<artifact name="scala-compiler" type="src" ext="jar" conf="sources" e:classifier="sources"/>
<artifact name="scala-compiler" type="doc" ext="jar" conf="docs" e:classifier="javadoc"/>
</publications>
<dependencies>
<dependency org="org.scala-lang" name="scala-compiler" rev="2.11.8" conf="compile->default(compile)"/>
</dependencies>
</ivy-module>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="org.foo" module="scala-library" revision="2.99.0" status="integration" publication="20170108222108">
<license name="BSD New" url="https://github.com/lampepfl/dotty/blob/master/LICENSE.md"/>
<description homepage="https://github.com/lampepfl/dotty">
scala-library
</description>
</info>
<configurations>
<conf name="compile" visibility="public" description=""/>
<conf name="runtime" visibility="public" description="" extends="compile"/>
<conf name="test" visibility="public" description="" extends="runtime"/>
<conf name="provided" visibility="public" description=""/>
<conf name="optional" visibility="public" description=""/>
<conf extends="runtime" description="Default" visibility="public" name="default"/>
<conf name="sources" visibility="public" description=""/>
<conf name="docs" visibility="public" description=""/>
<conf name="pom" visibility="public" description=""/>
</configurations>
<publications>
<artifact name="scala-library" type="pom" ext="pom" conf="pom"/>
<artifact name="scala-library" type="jar" ext="jar" conf="compile"/>
<artifact name="scala-library" type="src" ext="jar" conf="sources" e:classifier="sources"/>
<artifact name="scala-library" type="doc" ext="jar" conf="docs" e:classifier="javadoc"/>
</publications>
<dependencies>
<dependency org="org.scala-lang" name="scala-library" rev="2.11.8" conf="compile->default(compile)"/>
</dependencies>
</ivy-module>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="org.foo" module="scala-reflect" revision="2.99.0" status="integration" publication="20170108214513">
<license name="BSD New" url="https://github.com/lampepfl/dotty/blob/master/LICENSE.md"/>
<description homepage="https://github.com/lampepfl/dotty">
scala-reflect
</description>
</info>
<configurations>
<conf name="compile" visibility="public" description=""/>
<conf name="runtime" visibility="public" description="" extends="compile"/>
<conf name="test" visibility="public" description="" extends="runtime"/>
<conf name="provided" visibility="public" description=""/>
<conf name="optional" visibility="public" description=""/>
<conf extends="runtime" description="Default" visibility="public" name="default"/>
<conf name="sources" visibility="public" description=""/>
<conf name="docs" visibility="public" description=""/>
<conf name="pom" visibility="public" description=""/>
</configurations>
<publications>
<artifact name="scala-reflect" type="pom" ext="pom" conf="pom"/>
<artifact name="scala-reflect" type="jar" ext="jar" conf="compile"/>
<artifact name="scala-reflect" type="src" ext="jar" conf="sources" e:classifier="sources"/>
<artifact name="scala-reflect" type="doc" ext="jar" conf="docs" e:classifier="javadoc"/>
</publications>
<dependencies>
<dependency org="org.scala-lang" name="scala-reflect" rev="2.11.8" conf="compile->default(compile)"/>
</dependencies>
</ivy-module>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
<info organisation="org.foo" module="scalap" revision="2.99.0" status="integration" publication="20170108222105">
<license name="BSD New" url="https://github.com/lampepfl/dotty/blob/master/LICENSE.md"/>
<description homepage="https://github.com/lampepfl/dotty">
scalap
</description>
</info>
<configurations>
<conf name="compile" visibility="public" description=""/>
<conf name="runtime" visibility="public" description="" extends="compile"/>
<conf name="test" visibility="public" description="" extends="runtime"/>
<conf name="provided" visibility="public" description=""/>
<conf name="optional" visibility="public" description=""/>
<conf name="sources" visibility="public" description=""/>
<conf name="docs" visibility="public" description=""/>
<conf name="pom" visibility="public" description=""/>
</configurations>
<publications>
<artifact name="scalap" type="pom" ext="pom" conf="pom"/>
<artifact name="scalap" type="jar" ext="jar" conf="compile"/>
<artifact name="scalap" type="src" ext="jar" conf="sources" e:classifier="sources"/>
<artifact name="scalap" type="doc" ext="jar" conf="docs" e:classifier="javadoc"/>
</publications>
<dependencies>
<dependency org="org.scala-lang" name="scalap" rev="2.11.8" conf="compile->default(compile)"/>
</dependencies>
</ivy-module>

View File

@ -0,0 +1 @@
> checkDependencies