From 326e2573711c204c2ddf4a65d70325df22eca8ff Mon Sep 17 00:00:00 2001 From: Gilles Dubochet Date: Tue, 24 Nov 2009 19:57:32 +0000 Subject: Disabled docgenerator test, which isn't compati... Disabled docgenerator test, which isn't compatible with Scaladoc 2. --- test/disabled/run/docgenerator.check | 177 +++++++++++++++++++++ test/disabled/run/docgenerator.scala | 295 +++++++++++++++++++++++++++++++++++ 2 files changed, 472 insertions(+) create mode 100644 test/disabled/run/docgenerator.check create mode 100644 test/disabled/run/docgenerator.scala (limited to 'test/disabled/run') diff --git a/test/disabled/run/docgenerator.check b/test/disabled/run/docgenerator.check new file mode 100644 index 0000000000..dbb7eeed28 --- /dev/null +++ b/test/disabled/run/docgenerator.check @@ -0,0 +1,177 @@ + + + List of all classes and objects + + +
Classes
+
Objects
+ + + + Scala 2 + + + + + + + + + + + + + + + List of all classes and objects + + +
Classes
+
Objects
+ + + + Scala 2 + + + + + + + + + + + + + + + List of all classes and objects + + +
Classes
+
Objects
+ + + + Scala 2 + + + + + + + + + + + + + + + List of all classes and objects + + +
Classes
+
Objects
+ + + + Scala 2 + + + + + + + + + + + + + + + List of all classes and objects + + +
Classes
+
Objects
+ + + + Scala 2 + + + + + + + + + + + + diff --git a/test/disabled/run/docgenerator.scala b/test/disabled/run/docgenerator.scala new file mode 100644 index 0000000000..59f90ba415 --- /dev/null +++ b/test/disabled/run/docgenerator.scala @@ -0,0 +1,295 @@ +object Test { + import java.io.{File, FileReader, FileWriter} + + /** Tests the generation of the HTML documentation for some Scala + * code samples (see value 'code' below) with different scaladoc + * options (currently -access:). + * + * @author Stephane Micheloud + */ + def main(args: Array[String]) { + // overwrites value of UrlContext.generator in file DocUtil.scala + System.setProperty("doc.generator", "scaladoc") + var dirname = System.getProperty("scalatest.output") + if (dirname eq null) dirname = System.getProperty("java.io.tmpdir") + val tmpDir = new File(dirname) + tmpDir.mkdirs() + test1(tmpDir) + test2(tmpDir) + } + + private def test1(tmpDir: File) { + def testOptions(inFile: File, outDirName: String, opts: String*) { + val outDir = createDir(tmpDir, outDirName) + val args = Array.concat(Array("-d", outDir.getPath, inFile.getPath), opts.toArray:Array[String]) + if (MainDoc.main0(args)) { + for (name <- List("all-classes.html", "index.html")) { + val outFile = new File(outDir, name) + val n = outFile.length.toInt + val in = new FileReader(outFile) + val cbuf = new Array[Char](n) + in.read(cbuf, 0, n) + println(new String(cbuf)) + } + println + } + } + val inFile = { + val f = new File(tmpDir.getPath, "docgenerator1.scala") + val writer = new FileWriter(f) + writer.write(code1, 0, code1.length) + writer.close + f + } + testOptions(inFile, "test1", "") // none (default is -access:protected) + testOptions(inFile, "test2", "-access:public") + testOptions(inFile, "test3", "-access:protected") + testOptions(inFile, "test4", "-access:private") + } + + private def test2(tmpDir: File) { + val code =""" +package annots + +@deprecated("msg") +object Foo { val x = 0 } + +@deprecated("msg") +class Bar { val x = 1 } + +object Foo1 { + @deprecated("msg") + object Foo11 { val x = 3 } +} + +class Bar1 { + @deprecated("msg") + object Foo11 { val x = 2 } +} + +class Bar2 { + def bar { + @deprecated("msg") + object Foo21 { val x = 4 } + () + } +} + +object Foo2 { + def foo { + @deprecated("msg") + object Foo21 { val x = 5 } + () + } +} +""" + val inFile = { + val f = new File(tmpDir.getPath, "docgenerator2.scala") + val writer = new FileWriter(f) + writer.write(code, 0, code.length) + writer.close + f + } + val outDir = createDir(tmpDir, "annots1") + val args = Array.concat(Array("-d", outDir.getPath, inFile.getPath)) + if (MainDoc.main0(args)) { + for (name <- List("all-classes.html", "index.html")) { + val outFile = new File(outDir, name) + val n = outFile.length.toInt + val in = new FileReader(outFile) + val cbuf = new Array[Char](n) + in.read(cbuf, 0, n) + println(new String(cbuf)) + } + println + } + } + + object MainDoc { + import scala.tools.nsc._ + import scala.tools.nsc.doc.DefaultDocDriver + import scala.tools.nsc.reporters.ConsoleReporter + def error(msg: String) { Console.err.println(msg) } + var reporter: ConsoleReporter = _ + def process(args: Array[String]) { + val docSettings = new scala.tools.nsc.doc.Settings(error) + // when running that compiler, give it a scala-library to the classpath + docSettings.classpath.value = System.getProperty("java.class.path") + reporter = new ConsoleReporter(docSettings) + val command = new CompilerCommand(args.toList, docSettings, error, false) + try { + object compiler extends Global(command.settings, reporter) { + override protected def computeInternalPhases() : Unit = { + phasesSet += syntaxAnalyzer + phasesSet += analyzer.namerFactory + phasesSet += analyzer.typerFactory + } + override def onlyPresentation = true + } + if (reporter.hasErrors) { + reporter.flush() + return + } + val run = new compiler.Run + run compile command.files + object generator extends DefaultDocDriver { + lazy val global: compiler.type = compiler + lazy val settings = docSettings + } + generator process run.units + reporter.printSummary() + } catch { + case ex @ FatalError(msg) => + if (command.settings.debug.value) + ex.printStackTrace(); + reporter.error(null, "fatal error: " + msg) + } + } + def main(args: Array[String]) { + process(args) + exit(if (reporter.hasErrors) 1 else 0) + } + // main returning a status (no exit code) + def main0(args: Array[String]): Boolean = { + process(args) + !reporter.hasErrors + } + } + + private def createDir(parent: File, dirname: String): File = { + val outDir = new File(parent, dirname) + outDir.mkdir + outDir + } + + private val code1 = """ +package examples + +abstract class C0 { + def foo_public + protected def foo_protected + private def foo_private {} + class C1_Public { + val x_public = () + protected val x_protected = () + private val x_private = () + } + protected class C1_Protected { + val x_public = () + protected val x_protected = () + private val x_private = () + } + private class C1_Private { + val x_public = () + protected val x_protected = () + private val x_private = () + } +} + +protected abstract class C0_Protected { + def foo_public + protected def foo_protected + private def foo_private {} + class C1_Public { + val x_public = () + protected val x_protected = () + private val x_private = () + } + protected class C1_Protected { + val x_public = () + protected val x_protected = () + private val x_private = () + } + private class C1_Private { + val x_public = () + protected val x_protected = () + private val x_private = () + } +} + +private abstract class C0_Private { + def foo_public + protected def foo_protected + private def foo_private {} + class C1_Public { + val x_public = () + protected val x_protected = () + private val x_private = () + } + protected class C1_Protected { + val x_public = () + protected val x_protected = () + private val x_private = () + } + private class C1_Private { + val x_public = () + protected val x_protected = () + private val x_private = () + } +} + + +object obj0 { + def bar_public {} + protected def bar_protected {} + private def bar_private {} + object obj1_Public { + val x_public = () + protected val x_protected = () + private val x_private = () + } + protected object obj1_Protected { + val x_public = () + protected val x_protected = () + private val x_private = () + } + private object obj1_Private { + val x_public = () + protected val x_protected = () + private val x_private = () + } +} + +protected object obj0_Protected { + def bar_public {} + protected def bar_protected {} + private def bar_private {} + object obj1_Public { + val x_public = () + protected val x_protected = () + private val x_private = () + } + protected object obj1_Protected { + val x_public = () + protected val x_protected = () + private val x_private = () + } + private object obj1_Private { + val x_public = () + protected val x_protected = () + private val x_private = () + } +} + +private object obj0_Private { + def bar_public {} + protected def bar_protected {} + private def bar_private {} + object obj1_Public { + val x_public = () + protected val x_protected = () + private val x_private = () + } + protected object obj1_Protected { + val x_public = () + protected val x_protected = () + private val x_private = () + } + private object obj1_Private { + val x_public = () + protected val x_protected = () + private val x_private = () + } +} +""" +} -- cgit v1.2.3