aboutsummaryrefslogblamecommitdiff
path: root/compiler/test/dotty/tools/dotc/EntryPointsTest.scala.disabled
blob: 98e6248184c6047228261c2b20609352523482e2 (plain) (tree)
1
2
3
4
5
6
7
8
9
10

             
            


                         
                                                


                                            








                                                                                     
                       
                       
                                                                                 
                                                                   
 
                           










                                                                   















                                                                   
                                                                      












                                                                 
package dotty
package tools
package dotc

import org.junit.Test
import org.junit.Assert._
import interfaces.{CompilerCallback, SourceFile}
import reporting._
import reporting.diagnostic.MessageContainer
import core.Contexts._
import java.io.File
import scala.collection.mutable.ListBuffer

/** Test the compiler entry points that depend on dotty
 *
 *  This file also serve as an example for using [[dotty.tools.dotc.Driver#process]].
 *
 *  @see [[InterfaceEntryPointTest]]
 */
class EntryPointsTest {
  private val sources =
    List("../tests/pos/HelloWorld.scala").map(p => new java.io.File(p).getPath())
  private val args = sources ++ List("-d", "../out/", "-usejavacp")

  @Test def runCompiler = {
    val reporter = new CustomReporter
    val callback = new CustomCompilerCallback

    Main.process(args.toArray, reporter, callback)

    assertEquals("Number of errors", false, reporter.hasErrors)
    assertEquals("Number of warnings", false, reporter.hasWarnings)
    assertEquals("Compiled sources", sources, callback.paths)
  }

  @Test def runCompilerWithContext = {
    val reporter = new CustomReporter
    val callback = new CustomCompilerCallback
    val context = (new ContextBase).initialCtx.fresh
      .setReporter(reporter)
      .setCompilerCallback(callback)

    Main.process(args.toArray, context)

    assertEquals("Number of errors", false, reporter.hasErrors)
    assertEquals("Number of warnings", false, reporter.hasWarnings)
    assertEquals("Compiled sources", sources, callback.paths)
  }

  private class CustomReporter extends Reporter
      with UniqueMessagePositions
      with HideNonSensicalMessages {
    def doReport(m: MessageContainer)(implicit ctx: Context): Unit = {
    }
  }

  private class CustomCompilerCallback extends CompilerCallback {
    private val pathsBuffer = new ListBuffer[String]
    def paths = pathsBuffer.toList

    override def onSourceCompiled(source: SourceFile): Unit = {
      if (source.jfile.isPresent)
        pathsBuffer += source.jfile.get.getPath
    }
  }
}