aboutsummaryrefslogtreecommitdiff
path: root/doc-tool/test
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-12-22 16:55:45 +0100
committerFelix Mulder <felix.mulder@gmail.com>2017-01-31 14:28:08 +0100
commit35c1793ee11ff394738d3f57968b972be3066c9d (patch)
tree90aea8736eb3d8e4d29814e695c3b3ecf7c484ed /doc-tool/test
parentdf1353adff441fc64e07be959159f31d68f6d155 (diff)
downloaddotty-35c1793ee11ff394738d3f57968b972be3066c9d.tar.gz
dotty-35c1793ee11ff394738d3f57968b972be3066c9d.tar.bz2
dotty-35c1793ee11ff394738d3f57968b972be3066c9d.zip
Add test programs to generate docs
Diffstat (limited to 'doc-tool/test')
-rw-r--r--doc-tool/test/GenDocs.scala59
-rw-r--r--doc-tool/test/WhitelistedStdLib.scala19
2 files changed, 76 insertions, 2 deletions
diff --git a/doc-tool/test/GenDocs.scala b/doc-tool/test/GenDocs.scala
new file mode 100644
index 000000000..770904016
--- /dev/null
+++ b/doc-tool/test/GenDocs.scala
@@ -0,0 +1,59 @@
+package dotty.tools
+package dottydoc
+
+object Files {
+ type JFile = java.io.File
+
+ implicit class ToUrl(val f: JFile) extends AnyVal {
+ def getUrl = f.toURI.toURL
+ }
+}
+
+trait LocalResources extends api.scala.Dottydoc {
+ import Files._
+
+ val template = new JFile(
+ sys.env.get("DOC_TEMPLATE").getOrElse("../../dottydoc-client/resources/template.html")
+ )
+ val resources = new JFile(
+ sys.env.get("DOC_RESOURCES").getOrElse("../../dottydoc-client/resources/")
+ ).listFiles
+
+ assert(template.exists, "please specify a template.html file using DOC_TEMPLATE env var")
+ assert(resources.forall(_.exists), "please specify a resource dir using DOC_RESOURCES env var")
+
+ def index(files: Array[String]) = createIndex(
+ "-language:Scala2" +: "-classpath" +: "../library/target/scala-2.11/dotty-library_2.11-0.1-SNAPSHOT.jar:../interfaces/target/dotty-interfaces-0.1-SNAPSHOT.jar" +: files
+ )
+}
+
+object GenCollections extends LocalResources {
+ import Files._
+
+ val collections = TestWhitelistedCollections.files
+
+ override def main(args: Array[String]): Unit = buildDocs(
+ "../local/docs",
+ template.getUrl,
+ resources.map(_.getUrl).toList,
+ index(collections.toArray)
+ )
+}
+
+object GenDottyDocs extends LocalResources {
+ import Files._
+
+ def getFiles(file: JFile): Array[JFile] =
+ if (file.isDirectory) file.listFiles.flatMap(getFiles)
+ else if (file.getAbsolutePath.endsWith(".scala")) Array(file)
+ else Array()
+
+ val dottyFiles = new JFile("../compiler/src/dotty").listFiles.flatMap(getFiles).map(_.getAbsolutePath)
+
+ override def main(args: Array[String]): Unit = buildDocs(
+ "../local/docs",
+ template.getUrl,
+ resources.map(_.getUrl).toList,
+ index(dottyFiles)
+ )
+}
diff --git a/doc-tool/test/WhitelistedStdLib.scala b/doc-tool/test/WhitelistedStdLib.scala
index 90df859e0..634070e8e 100644
--- a/doc-tool/test/WhitelistedStdLib.scala
+++ b/doc-tool/test/WhitelistedStdLib.scala
@@ -9,7 +9,7 @@ class WhitelistedStdLib extends DottyTest {
StdLibSources.whitelisted.filterNot(_.endsWith("package.scala"))
@Test def arrayHasDocumentation =
- checkFiles(files) { packages =>
+ checkFiles(TestWhitelistedCollections.files) { packages =>
val array =
packages("scala")
.children.find(_.path.mkString(".") == "scala.Array")
@@ -19,7 +19,7 @@ class WhitelistedStdLib extends DottyTest {
}
@Test def traitImmutableHasDocumentation =
- checkFiles(files) { packages =>
+ checkFiles(TestWhitelistedCollections.files) { packages =>
val imm =
packages("scala")
.children.find(_.path.mkString(".") == "scala.Immutable")
@@ -33,3 +33,18 @@ class WhitelistedStdLib extends DottyTest {
"Imm did not have a comment with length > 0")
}
}
+
+object TestWhitelistedCollections {
+ val files: List[String] = {
+ val whitelist = "./test/dotc/scala-collections.whitelist"
+
+ scala.io.Source.fromFile(whitelist, "UTF8")
+ .getLines()
+ .map(_.trim) // allow identation
+ .filter(!_.startsWith("#")) // allow comment lines prefixed by #
+ .map(_.takeWhile(_ != '#').trim) // allow comments in the end of line
+ .filter(_.nonEmpty)
+ .filterNot(_.endsWith("package.scala"))
+ .toList
+ }
+}