Skip to content

Commit d541452

Browse files
authored
Merge pull request #2194 from dotty-staging/topic/hydra-part-2
Killing partest part 2 - Enter the Vulpix
2 parents 741ee16 + f6d519a commit d541452

34 files changed

+912
-1131
lines changed

.drone.yml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,7 @@ pipeline:
4040

4141
matrix:
4242
TEST:
43-
- ;set testOptions in LocalProject("dotty-compiler") += Tests.Argument(TestFrameworks.JUnit, "--exclude-categories=dotty.tools.dotc.ParallelTesting") ;test ;dotty-bin-tests/test
44-
- ;set testOptions in LocalProject("dotty-compiler-bootstrapped") += Tests.Argument(TestFrameworks.JUnit, "--exclude-categories=dotty.tools.dotc.ParallelTesting") ;publishLocal ;dotty-bootstrapped/test
45-
- ;set testOptions in LocalProject("dotty-compiler") += Tests.Argument(TestFrameworks.JUnit, "--exclude-categories=dotty.tools.dotc.ParallelTesting") ;partest-only-no-bootstrap --show-diff --verbose
46-
- ;set testOptions in LocalProject("dotty-compiler-bootstrapped") += Tests.Argument(TestFrameworks.JUnit, "--exclude-categories=dotty.tools.dotc.ParallelTesting") ;partest-only --show-diff --verbose
47-
- ;dotty-compiler/testOnly dotty.tools.dotc.CompilationTests
48-
- ;publishLocal ;dotty-bootstrapped/testOnly dotty.tools.dotc.CompilationTests
43+
- test
44+
- ;publishLocal ;dotty-bootstrapped/test
45+
- legacyTests
46+
- dotty-bin-tests/test

.drone.yml.sig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
eyJhbGciOiJIUzI1NiJ9.IyBBZnRlciB1cGRhdGluZyB0aGlzIGZpbGUsIHlvdSBuZWVkIHRvIHJlLXNpZ24gaXQ6CiMKIyAtIEluc3RhbGwgW2Ryb25lLWNsaV0oaHR0cDovL3JlYWRtZS5kcm9uZS5pby91c2FnZS9nZXR0aW5nLXN0YXJ0ZWQtY2xpLykKIyAtIENvcHkgeW91ciB0b2tlbiBmcm9tICBodHRwOi8vZG90dHktY2kuZXBmbC5jaC9hY2NvdW50IChDbGljayBTSE9XIFRPS0VOKQojIC0gKGV4cG9ydCBEUk9ORV9UT0tFTj15b3VyLXRva2VuOyBleHBvcnQgRFJPTkVfU0VSVkVSPWh0dHA6Ly9kb3R0eS1jaS5lcGZsLmNoOyBkcm9uZSBzaWduIGxhbXBlcGZsL2RvdHR5KQoKcGlwZWxpbmU6CiAgdGVzdDoKICAgIGltYWdlOiBsYW1wZXBmbC9kb3R0eTpsYXRlc3QKICAgIHB1bGw6IHRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIGxuIC1zIC92YXIvY2FjaGUvZHJvbmUvc2NhbGEtc2NhbGEgc2NhbGEtc2NhbGEKICAgICAgLSBsbiAtcyAvdmFyL2NhY2hlL2Ryb25lL2l2eTIgIiRIT01FLy5pdnkyIgogICAgICAtIC4vc2NyaXB0cy91cGRhdGUtc2NhbGEtbGlicmFyeQogICAgICAtIHNidCAtSi1YbXg0MDk2bSAtSi1YWDpSZXNlcnZlZENvZGVDYWNoZVNpemU9NTEybSAtSi1YWDpNYXhNZXRhc3BhY2VTaXplPTEwMjRtIC1EZG90dHkuZHJvbmUubWVtPTQwOTZtICIke1RFU1R9IgogICAgd2hlbjoKICAgICAgYnJhbmNoOgogICAgICAgIGV4Y2x1ZGU6IGdoLXBhZ2VzCgogIGRvY3VtZW50YXRpb246CiAgICBpbWFnZTogbGFtcGVwZmwvZG90dHk6bGF0ZXN0CiAgICBwdWxsOiB0cnVlCiAgICBjb21tYW5kczoKICAgICAgLSAuL3Byb2plY3Qvc2NyaXB0cy9nZW5Eb2NzICIke1RFU1R9IiAkQk9UX1BBU1MKICAgIHdoZW46CiAgICAgIGJyYW5jaDogbWFzdGVyCgogIGdpdHRlcjoKICAgIGltYWdlOiBwbHVnaW5zL2dpdHRlcgogICAgd2hlbjoKICAgICAgYnJhbmNoOiBtYXN0ZXIKICAgICAgc3RhdHVzOiBjaGFuZ2VkCgogIHNsYWNrOgogICAgaW1hZ2U6IHBsdWdpbnMvc2xhY2sKICAgIGNoYW5uZWw6IGRvdHR5CiAgICB3aGVuOgogICAgICBicmFuY2g6IG1hc3RlcgogICAgICBzdGF0dXM6IGNoYW5nZWQKCm1hdHJpeDoKICBURVNUOgogICAgLSA7c2V0IHRlc3RPcHRpb25zIGluIExvY2FsUHJvamVjdCgiZG90dHktY29tcGlsZXIiKSArPSBUZXN0cy5Bcmd1bWVudChUZXN0RnJhbWV3b3Jrcy5KVW5pdCwgIi0tZXhjbHVkZS1jYXRlZ29yaWVzPWRvdHR5LnRvb2xzLmRvdGMuUGFyYWxsZWxUZXN0aW5nIikgO3Rlc3QgO2RvdHR5LWJpbi10ZXN0cy90ZXN0CiAgICAtIDtzZXQgdGVzdE9wdGlvbnMgaW4gTG9jYWxQcm9qZWN0KCJkb3R0eS1jb21waWxlci1ib290c3RyYXBwZWQiKSArPSBUZXN0cy5Bcmd1bWVudChUZXN0RnJhbWV3b3Jrcy5KVW5pdCwgIi0tZXhjbHVkZS1jYXRlZ29yaWVzPWRvdHR5LnRvb2xzLmRvdGMuUGFyYWxsZWxUZXN0aW5nIikgO3B1Ymxpc2hMb2NhbCA7ZG90dHktYm9vdHN0cmFwcGVkL3Rlc3QKICAgIC0gO3NldCB0ZXN0T3B0aW9ucyBpbiBMb2NhbFByb2plY3QoImRvdHR5LWNvbXBpbGVyIikgKz0gVGVzdHMuQXJndW1lbnQoVGVzdEZyYW1ld29ya3MuSlVuaXQsICItLWV4Y2x1ZGUtY2F0ZWdvcmllcz1kb3R0eS50b29scy5kb3RjLlBhcmFsbGVsVGVzdGluZyIpIDtwYXJ0ZXN0LW9ubHktbm8tYm9vdHN0cmFwIC0tc2hvdy1kaWZmIC0tdmVyYm9zZQogICAgLSA7c2V0IHRlc3RPcHRpb25zIGluIExvY2FsUHJvamVjdCgiZG90dHktY29tcGlsZXItYm9vdHN0cmFwcGVkIikgKz0gVGVzdHMuQXJndW1lbnQoVGVzdEZyYW1ld29ya3MuSlVuaXQsICItLWV4Y2x1ZGUtY2F0ZWdvcmllcz1kb3R0eS50b29scy5kb3RjLlBhcmFsbGVsVGVzdGluZyIpIDtwYXJ0ZXN0LW9ubHkgLS1zaG93LWRpZmYgLS12ZXJib3NlCiAgICAtIDtkb3R0eS1jb21waWxlci90ZXN0T25seSBkb3R0eS50b29scy5kb3RjLkNvbXBpbGF0aW9uVGVzdHMKICAgIC0gO3B1Ymxpc2hMb2NhbCA7ZG90dHktYm9vdHN0cmFwcGVkL3Rlc3RPbmx5IGRvdHR5LnRvb2xzLmRvdGMuQ29tcGlsYXRpb25UZXN0cwo.z4tT2XteNQ9O0oTt_l26-K2mhgBHKyWQf6k_IRdZvgQ
1+
eyJhbGciOiJIUzI1NiJ9.IyBBZnRlciB1cGRhdGluZyB0aGlzIGZpbGUsIHlvdSBuZWVkIHRvIHJlLXNpZ24gaXQ6CiMKIyAtIEluc3RhbGwgW2Ryb25lLWNsaV0oaHR0cDovL3JlYWRtZS5kcm9uZS5pby91c2FnZS9nZXR0aW5nLXN0YXJ0ZWQtY2xpLykKIyAtIENvcHkgeW91ciB0b2tlbiBmcm9tICBodHRwOi8vZG90dHktY2kuZXBmbC5jaC9hY2NvdW50IChDbGljayBTSE9XIFRPS0VOKQojIC0gKGV4cG9ydCBEUk9ORV9UT0tFTj15b3VyLXRva2VuOyBleHBvcnQgRFJPTkVfU0VSVkVSPWh0dHA6Ly9kb3R0eS1jaS5lcGZsLmNoOyBkcm9uZSBzaWduIGxhbXBlcGZsL2RvdHR5KQoKcGlwZWxpbmU6CiAgdGVzdDoKICAgIGltYWdlOiBsYW1wZXBmbC9kb3R0eTpsYXRlc3QKICAgIHB1bGw6IHRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIGxuIC1zIC92YXIvY2FjaGUvZHJvbmUvc2NhbGEtc2NhbGEgc2NhbGEtc2NhbGEKICAgICAgLSBsbiAtcyAvdmFyL2NhY2hlL2Ryb25lL2l2eTIgIiRIT01FLy5pdnkyIgogICAgICAtIC4vc2NyaXB0cy91cGRhdGUtc2NhbGEtbGlicmFyeQogICAgICAtIHNidCAtSi1YbXg0MDk2bSAtSi1YWDpSZXNlcnZlZENvZGVDYWNoZVNpemU9NTEybSAtSi1YWDpNYXhNZXRhc3BhY2VTaXplPTEwMjRtIC1EZG90dHkuZHJvbmUubWVtPTQwOTZtICIke1RFU1R9IgogICAgd2hlbjoKICAgICAgYnJhbmNoOgogICAgICAgIGV4Y2x1ZGU6IGdoLXBhZ2VzCgogIGRvY3VtZW50YXRpb246CiAgICBpbWFnZTogbGFtcGVwZmwvZG90dHk6bGF0ZXN0CiAgICBwdWxsOiB0cnVlCiAgICBjb21tYW5kczoKICAgICAgLSAuL3Byb2plY3Qvc2NyaXB0cy9nZW5Eb2NzICIke1RFU1R9IiAkQk9UX1BBU1MKICAgIHdoZW46CiAgICAgIGJyYW5jaDogbWFzdGVyCgogIGdpdHRlcjoKICAgIGltYWdlOiBwbHVnaW5zL2dpdHRlcgogICAgd2hlbjoKICAgICAgYnJhbmNoOiBtYXN0ZXIKICAgICAgc3RhdHVzOiBjaGFuZ2VkCgogIHNsYWNrOgogICAgaW1hZ2U6IHBsdWdpbnMvc2xhY2sKICAgIGNoYW5uZWw6IGRvdHR5CiAgICB3aGVuOgogICAgICBicmFuY2g6IG1hc3RlcgogICAgICBzdGF0dXM6IGNoYW5nZWQKCm1hdHJpeDoKICBURVNUOgogICAgLSB0ZXN0CiAgICAtIDtwdWJsaXNoTG9jYWwgO2RvdHR5LWJvb3RzdHJhcHBlZC90ZXN0CiAgICAtIGxlZ2FjeVRlc3RzCiAgICAtIGRvdHR5LWJpbi10ZXN0cy90ZXN0Cg.7jaA1Gh5FpzKvXQsaf2_of5tUEMBcR_3Mzo0wL8pE3E

compiler/foo

Whitespace-only changes.

compiler/test/dotc/comptest.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package dotc
22

3-
import dotty.tools.dotc.ParallelTesting
3+
import dotty.tools.vulpix.ParallelTesting
4+
5+
import scala.concurrent.duration._
46

57
object comptest extends ParallelTesting {
68

9+
def maxDuration = 3.seconds
10+
def numberOfSlaves = 5
11+
def safeMode = false
712
def isInteractive = true
813
def testFilter = None
914

compiler/test/dotc/tests.scala

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,23 @@ package dotc
33
import dotty.Jars
44
import dotty.tools.dotc.CompilerTest
55
import dotty.tools.StdLibSources
6+
import org.junit.experimental.categories.Category
67
import org.junit.{Before, Test}
78
import org.junit.Assert._
89

910
import java.io.{ File => JFile }
1011
import scala.reflect.io.Directory
1112
import scala.io.Source
1213

13-
// tests that match regex '(pos|dotc|run|java|compileStdLib)\.*' would be executed as benchmarks.
14+
/** WARNING
15+
* =======
16+
* These are legacy, do not add tests here, see `CompilationTests.scala`
17+
*/
18+
@Category(Array(classOf[java.lang.Exception]))
1419
class tests extends CompilerTest {
1520

16-
def isRunByJenkins: Boolean = sys.props.isDefinedAt("dotty.jenkins.build")
21+
// tests that match regex '(pos|dotc|run|java|compileStdLib)\.*' would be
22+
// executed as benchmarks.
1723

1824
val defaultOutputDir = "../out/"
1925

@@ -62,7 +68,7 @@ class tests extends CompilerTest {
6268
}
6369

6470
implicit val defaultOptions: List[String] = noCheckOptions ++ {
65-
if (isRunByJenkins) List("-Ycheck:tailrec,resolveSuper,mixin,restoreScopes,labelDef") // should be Ycheck:all, but #725
71+
if (dotty.Properties.isRunByDrone) List("-Ycheck:tailrec,resolveSuper,mixin,restoreScopes,labelDef") // should be Ycheck:all, but #725
6672
else List("-Ycheck:tailrec,resolveSuper,mixin,restoreScopes,labelDef")
6773
} ++ checkOptions ++ classPath
6874

@@ -204,8 +210,8 @@ class tests extends CompilerTest {
204210
private val stdlibFiles: List[String] = StdLibSources.whitelisted
205211

206212
@Test def compileStdLib =
207-
if (!generatePartestFiles)
208-
compileList("compileStdLib", stdlibFiles, "-migration" :: "-Yno-inline" :: scala2mode)
213+
compileList("compileStdLib", stdlibFiles, "-migration" :: "-Yno-inline" :: scala2mode)
214+
209215
@Test def compileMixed = compileLine(
210216
"""../tests/pos/B.scala
211217
|../scala-scala/src/library/scala/collection/immutable/Seq.scala
@@ -221,7 +227,7 @@ class tests extends CompilerTest {
221227
|../scala-scala/src/library/scala/collection/parallel/mutable/ParSet.scala
222228
|../scala-scala/src/library/scala/collection/mutable/SetLike.scala""".stripMargin)(scala2mode ++ defaultOptions)
223229

224-
@Test def dotty = {
230+
@Test def dottyBooted = {
225231
dottyBootedLib
226232
dottyDependsOnBootedLib
227233
}

compiler/test/dotty/Jars.scala

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,42 @@ package dotty
22

33
/** Jars used when compiling test, normally set from the sbt build */
44
object Jars {
5+
/** Dotty library Jar */
56
val dottyLib: String = sys.env.get("DOTTY_LIB")
6-
.getOrElse(sys.props("dotty.tests.classes.library"))
7+
.getOrElse(Properties.dottyLib)
78

9+
/** Dotty Compiler Jar */
810
val dottyCompiler: String = sys.env.get("DOTTY_COMPILER")
9-
.getOrElse(sys.props("dotty.tests.classes.compiler"))
11+
.getOrElse(Properties.dottyCompiler)
1012

13+
/** Dotty Interfaces Jar */
1114
val dottyInterfaces: String = sys.env.get("DOTTY_INTERFACE")
12-
.getOrElse(sys.props("dotty.tests.classes.interfaces"))
15+
.getOrElse(Properties.dottyInterfaces)
1316

14-
val dottyExtras: List[String] = Option(sys.env.get("DOTTY_EXTRAS")
15-
.getOrElse(sys.props("dotty.tests.extraclasspath")))
16-
.map(_.split(":").toList).getOrElse(Nil)
17+
/** Dotty extras classpath from env or properties */
18+
val dottyExtras: List[String] = sys.env.get("DOTTY_EXTRAS")
19+
.map(_.split(":").toList).getOrElse(Properties.dottyExtras)
1720

21+
/** Dotty REPL dependencies */
1822
val dottyReplDeps: List[String] = dottyLib :: dottyExtras
1923

24+
/** Dotty test dependencies */
2025
val dottyTestDeps: List[String] =
2126
dottyLib :: dottyCompiler :: dottyInterfaces :: dottyExtras
27+
28+
/** Gets the scala 2.* library at runtime, note that doing this is unsafe
29+
* unless you know that the library will be on the classpath of the running
30+
* application. It is currently safe to call this function if the tests are
31+
* run by sbt.
32+
*/
33+
def scalaLibraryFromRuntime: String = findJarFromRuntime("scala-library-2.")
34+
35+
private def findJarFromRuntime(partialName: String) = {
36+
val urls = ClassLoader.getSystemClassLoader.asInstanceOf[java.net.URLClassLoader].getURLs.map(_.getFile.toString)
37+
urls.find(_.contains(partialName)).getOrElse {
38+
throw new java.io.FileNotFoundException(
39+
s"""Unable to locate $partialName on classpath:\n${urls.toList.mkString("\n")}"""
40+
)
41+
}
42+
}
2243
}

compiler/test/dotty/Properties.scala

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package dotty
2+
3+
/** Runtime properties from defines or environmnent */
4+
object Properties {
5+
6+
/** If property is unset or "TRUE" we consider it `true` */
7+
private[this] def propIsNullOrTrue(prop: String): Boolean = {
8+
val prop = System.getProperty("dotty.tests.interactive")
9+
prop == null || prop == "TRUE"
10+
}
11+
12+
/** Are we running on the Drone CI? */
13+
val isRunByDrone: Boolean = sys.env.isDefinedAt("DRONE")
14+
15+
/** Tests should run interactive? */
16+
val testsInteractive: Boolean = propIsNullOrTrue("dotty.tests.interactive")
17+
18+
/** Filter out tests not matching the regex supplied by "dotty.tests.filter"
19+
* define
20+
*/
21+
val testsFilter: Option[String] = sys.props.get("dotty.tests.filter")
22+
23+
/** When set, the run tests are only compiled - not run, a warning will be
24+
* issued
25+
*/
26+
val testsNoRun: Boolean = sys.props.get("dotty.tests.norun").isDefined
27+
28+
/** Should Unit tests run in safe mode?
29+
*
30+
* For run tests this means that we respawn child JVM processes after each
31+
* test, so that they are never reused.
32+
*/
33+
val testsSafeMode: Boolean = sys.props.isDefinedAt("dotty.tests.safemode")
34+
35+
/** Dotty compiler path provided through define */
36+
def dottyCompiler: String = sys.props("dotty.tests.classes.compiler")
37+
38+
/** Dotty classpath extras provided through define */
39+
def dottyExtras: List[String] =
40+
Option(sys.props("dotty.tests.extraclasspath"))
41+
.map(_.split(":").toList)
42+
.getOrElse(Nil)
43+
44+
/** Dotty interfaces path provided through define */
45+
def dottyInterfaces: String = sys.props("dotty.tests.classes.interfaces")
46+
47+
/** Dotty library path provided through define */
48+
def dottyLib: String = sys.props("dotty.tests.classes.library")
49+
}

compiler/test/dotty/partest/DPConfig.scala

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)