aboutsummaryrefslogtreecommitdiff
path: root/sbt-bridge
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2016-12-01 23:54:39 +0100
committerGuillaume Martres <smarter@ubuntu.com>2016-12-02 00:58:34 +0100
commit9411539eac8aaa8f052b7e6701d5d1d2b833d409 (patch)
treeed3176c9d3db3b21209866b2372cfadb2ae6b06e /sbt-bridge
parent3d0accd7e172303671be23a2be1d827fc9b4dc6e (diff)
downloaddotty-9411539eac8aaa8f052b7e6701d5d1d2b833d409.tar.gz
dotty-9411539eac8aaa8f052b7e6701d5d1d2b833d409.tar.bz2
dotty-9411539eac8aaa8f052b7e6701d5d1d2b833d409.zip
Fix #1741: sbt.ExtractAPI: extract annotations
This is necessary for correct incremental recompilation but is also used by sbt to find tests to run (for junit they should be annotated @org.junit.Test). I added an sbt scripted test to verify that JUnit now works, to run it: $ sbt > scripted discovery/test-discovery
Diffstat (limited to 'sbt-bridge')
-rw-r--r--sbt-bridge/sbt-test/discovery/test-discovery/build.sbt1
-rw-r--r--sbt-bridge/sbt-test/discovery/test-discovery/changes/A2.scala3
-rw-r--r--sbt-bridge/sbt-test/discovery/test-discovery/project/DottyInjectedPlugin.scala17
-rw-r--r--sbt-bridge/sbt-test/discovery/test-discovery/src/main/scala/A.scala3
-rw-r--r--sbt-bridge/sbt-test/discovery/test-discovery/src/test/scala/TestA.scala8
-rw-r--r--sbt-bridge/sbt-test/discovery/test-discovery/test8
6 files changed, 40 insertions, 0 deletions
diff --git a/sbt-bridge/sbt-test/discovery/test-discovery/build.sbt b/sbt-bridge/sbt-test/discovery/test-discovery/build.sbt
new file mode 100644
index 000000000..68b89ac35
--- /dev/null
+++ b/sbt-bridge/sbt-test/discovery/test-discovery/build.sbt
@@ -0,0 +1 @@
+libraryDependencies += "com.novocode" % "junit-interface" % "0.11" % "test"
diff --git a/sbt-bridge/sbt-test/discovery/test-discovery/changes/A2.scala b/sbt-bridge/sbt-test/discovery/test-discovery/changes/A2.scala
new file mode 100644
index 000000000..696daab5e
--- /dev/null
+++ b/sbt-bridge/sbt-test/discovery/test-discovery/changes/A2.scala
@@ -0,0 +1,3 @@
+object A {
+ def three: Int = 3 // Ah!
+}
diff --git a/sbt-bridge/sbt-test/discovery/test-discovery/project/DottyInjectedPlugin.scala b/sbt-bridge/sbt-test/discovery/test-discovery/project/DottyInjectedPlugin.scala
new file mode 100644
index 000000000..ec22870f4
--- /dev/null
+++ b/sbt-bridge/sbt-test/discovery/test-discovery/project/DottyInjectedPlugin.scala
@@ -0,0 +1,17 @@
+import sbt._
+import Keys._
+
+object DottyInjectedPlugin extends AutoPlugin {
+ override def requires = plugins.JvmPlugin
+ override def trigger = allRequirements
+
+ override val projectSettings = Seq(
+ scalaVersion := "0.1-SNAPSHOT",
+ scalaOrganization := "ch.epfl.lamp",
+ scalacOptions += "-language:Scala2",
+ scalaBinaryVersion := "2.11",
+ autoScalaLibrary := false,
+ libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"),
+ scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-sbt-bridge" % "0.1.1-SNAPSHOT" % "component").sources()
+ )
+}
diff --git a/sbt-bridge/sbt-test/discovery/test-discovery/src/main/scala/A.scala b/sbt-bridge/sbt-test/discovery/test-discovery/src/main/scala/A.scala
new file mode 100644
index 000000000..81f77071e
--- /dev/null
+++ b/sbt-bridge/sbt-test/discovery/test-discovery/src/main/scala/A.scala
@@ -0,0 +1,3 @@
+object A {
+ def three: Int = 4 // Hmm
+}
diff --git a/sbt-bridge/sbt-test/discovery/test-discovery/src/test/scala/TestA.scala b/sbt-bridge/sbt-test/discovery/test-discovery/src/test/scala/TestA.scala
new file mode 100644
index 000000000..1d4f479d8
--- /dev/null
+++ b/sbt-bridge/sbt-test/discovery/test-discovery/src/test/scala/TestA.scala
@@ -0,0 +1,8 @@
+import org.junit.Test
+import org.junit.Assert.assertEquals
+
+class TestA {
+ @Test def testThree = {
+ assertEquals(A.three, 3)
+ }
+}
diff --git a/sbt-bridge/sbt-test/discovery/test-discovery/test b/sbt-bridge/sbt-test/discovery/test-discovery/test
new file mode 100644
index 000000000..2e035dee8
--- /dev/null
+++ b/sbt-bridge/sbt-test/discovery/test-discovery/test
@@ -0,0 +1,8 @@
+> compile
+# Intentionally failing test
+-> test
+# Fix the bug!
+$ copy-file changes/A2.scala src/main/scala/A.scala
+> compile
+# The test should pass now
+> test