aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-03-10 15:03:48 +0100
committerFelix Mulder <felix.mulder@gmail.com>2016-04-07 08:40:27 +0200
commit6c8265c6cc3555e00f82cf4909fea5e95d1a2f94 (patch)
treee7a3ca8df25cb84181fff6c53c212eee43093153 /test
parentc66998bc56ba73b5b2cbbf6b10f4d5b83017db13 (diff)
downloaddotty-6c8265c6cc3555e00f82cf4909fea5e95d1a2f94.tar.gz
dotty-6c8265c6cc3555e00f82cf4909fea5e95d1a2f94.tar.bz2
dotty-6c8265c6cc3555e00f82cf4909fea5e95d1a2f94.zip
Add docstring support for types, vals, vars and defs
Diffstat (limited to 'test')
-rw-r--r--test/test/DottyDocTests.scala141
1 files changed, 137 insertions, 4 deletions
diff --git a/test/test/DottyDocTests.scala b/test/test/DottyDocTests.scala
index 5161f98b8..a950095bc 100644
--- a/test/test/DottyDocTests.scala
+++ b/test/test/DottyDocTests.scala
@@ -42,11 +42,14 @@ trait DottyDocTest extends DottyTest { self =>
assert(false, s"""No docstring found, expected: "$expected"""")
}
- def run(): Unit = {
+ def run(): Unit = try {
val c = compiler(assertion)
c.rootContext(ctx)
c.newRun.compile(source)
println(s"${self.getClass.getSimpleName.split("\\$").last} passed")
+ } catch { case e: Throwable =>
+ Console.err.println(s"${self.getClass.getSimpleName.split("\\$").last} failed")
+ throw e
}
}
@@ -54,6 +57,7 @@ trait DottyDocTest extends DottyTest { self =>
object DottyDocTests extends DottyTest {
private[this] val tests = Seq(
NoComment,
+
SingleClassInPackage,
MultipleOpenedOnSingleClassInPackage,
MultipleClassesInPackage,
@@ -67,13 +71,18 @@ object DottyDocTests extends DottyTest {
ObjectsNestedClass,
PackageObject,
MultipleDocStringsBeforeEntity,
- MultipleDocStringsBeforeAndAfter
+ MultipleDocStringsBeforeAndAfter,
+
+ ValuesWithDocString,
+ VarsWithDocString,
+ DefsWithDocString,
+ TypesWithDocString
)
def main(args: Array[String]): Unit = {
- println("------------ Testing DottyDoc ------------")
+ println(s"-------------- Testing DottyDoc (${tests.length} tests) --------------")
tests.foreach(_.run)
- println("--------- DottyDoc tests passed! ----------")
+ println("--------------- DottyDoc tests passed! -------------------")
}
}
@@ -371,3 +380,127 @@ case object MultipleDocStringsBeforeAndAfter extends DottyDocTest {
}
}
+
+case object ValuesWithDocString extends DottyDocTest {
+ override val source =
+ """
+ |object Object {
+ | /** val1 */
+ | val val1 = 1
+ |
+ | /** val2 */
+ | val val2: Int = 2
+ | /** bogus docstring */
+ |
+ | /** bogus docstring */
+ | /** val3 */
+ | val val3: List[Int] = 1 :: 2 :: 3 :: Nil
+ |}
+ """.stripMargin
+
+ import dotty.tools.dotc.ast.untpd._
+ override def assertion = {
+ case PackageDef(_, Seq(o: ModuleDef)) =>
+ o.impl.body match {
+ case (v1: MemberDef) :: (v2: MemberDef) :: (v3: MemberDef) :: Nil => {
+ checkDocString(v1.rawComment, "/** val1 */")
+ checkDocString(v2.rawComment, "/** val2 */")
+ checkDocString(v3.rawComment, "/** val3 */")
+ }
+ case _ => assert(false, "Incorrect structure inside object")
+ }
+ }
+}
+
+case object VarsWithDocString extends DottyDocTest {
+ override val source =
+ """
+ |object Object {
+ | /** var1 */
+ | var var1 = 1
+ |
+ | /** var2 */
+ | var var2: Int = 2
+ | /** bogus docstring */
+ |
+ | /** bogus docstring */
+ | /** var3 */
+ | var var3: List[Int] = 1 :: 2 :: 3 :: Nil
+ |}
+ """.stripMargin
+
+ import dotty.tools.dotc.ast.untpd._
+ override def assertion = {
+ case PackageDef(_, Seq(o: ModuleDef)) =>
+ o.impl.body match {
+ case (v1: MemberDef) :: (v2: MemberDef) :: (v3: MemberDef) :: Nil => {
+ checkDocString(v1.rawComment, "/** var1 */")
+ checkDocString(v2.rawComment, "/** var2 */")
+ checkDocString(v3.rawComment, "/** var3 */")
+ }
+ case _ => assert(false, "Incorrect structure inside object")
+ }
+ }
+}
+
+case object DefsWithDocString extends DottyDocTest {
+ override val source =
+ """
+ |object Object {
+ | /** def1 */
+ | def def1 = 1
+ |
+ | /** def2 */
+ | def def2: Int = 2
+ | /** bogus docstring */
+ |
+ | /** bogus docstring */
+ | /** def3 */
+ | def def3: List[Int] = 1 :: 2 :: 3 :: Nil
+ |}
+ """.stripMargin
+
+ import dotty.tools.dotc.ast.untpd._
+ override def assertion = {
+ case PackageDef(_, Seq(o: ModuleDef)) =>
+ o.impl.body match {
+ case (v1: MemberDef) :: (v2: MemberDef) :: (v3: MemberDef) :: Nil => {
+ checkDocString(v1.rawComment, "/** def1 */")
+ checkDocString(v2.rawComment, "/** def2 */")
+ checkDocString(v3.rawComment, "/** def3 */")
+ }
+ case _ => assert(false, "Incorrect structure inside object")
+ }
+ }
+}
+
+case object TypesWithDocString extends DottyDocTest {
+ override val source =
+ """
+ |object Object {
+ | /** type1 */
+ | type T1 = Int
+ |
+ | /** type2 */
+ | type T2 = String
+ | /** bogus docstring */
+ |
+ | /** bogus docstring */
+ | /** type3 */
+ | type T3 = T2
+ |}
+ """.stripMargin
+
+ import dotty.tools.dotc.ast.untpd._
+ override def assertion = {
+ case PackageDef(_, Seq(o: ModuleDef)) =>
+ o.impl.body match {
+ case (v1: MemberDef) :: (v2: MemberDef) :: (v3: MemberDef) :: Nil => {
+ checkDocString(v1.rawComment, "/** type1 */")
+ checkDocString(v2.rawComment, "/** type2 */")
+ checkDocString(v3.rawComment, "/** type3 */")
+ }
+ case _ => assert(false, "Incorrect structure inside object")
+ }
+ }
+}