| Index: dart/compiler/javatests/com/google/dart/compiler/parser/DartParserRunner.java
|
| diff --git a/dart/compiler/javatests/com/google/dart/compiler/parser/DartParserRunner.java b/dart/compiler/javatests/com/google/dart/compiler/parser/DartParserRunner.java
|
| deleted file mode 100644
|
| index 7c49eb957393ac10fb890db8427e7387f7fd4e1d..0000000000000000000000000000000000000000
|
| --- a/dart/compiler/javatests/com/google/dart/compiler/parser/DartParserRunner.java
|
| +++ /dev/null
|
| @@ -1,209 +0,0 @@
|
| -// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -package com.google.dart.compiler.parser;
|
| -
|
| -import com.google.common.collect.Sets;
|
| -import com.google.dart.compiler.DartCompilationError;
|
| -import com.google.dart.compiler.DartCompilerListener;
|
| -import com.google.dart.compiler.DartSource;
|
| -import com.google.dart.compiler.DartSourceTest;
|
| -import com.google.dart.compiler.ErrorSeverity;
|
| -import com.google.dart.compiler.ast.DartUnit;
|
| -
|
| -import junit.framework.TestCase;
|
| -
|
| -import java.io.BufferedReader;
|
| -import java.io.FileReader;
|
| -import java.io.IOException;
|
| -import java.util.ArrayList;
|
| -import java.util.List;
|
| -import java.util.concurrent.atomic.AtomicReference;
|
| -
|
| -public class DartParserRunner implements DartCompilerListener, Runnable {
|
| -
|
| - public static final int DEFAULT_TIMEOUT_IN_MILISECONDS = 10 * 1000;
|
| -
|
| - public static void main(String[] args) {
|
| - for (String fileName : args) {
|
| - String source = readSource(fileName);
|
| - if (source == null) {
|
| - System.err.println("Unable to read " + fileName);
|
| - continue;
|
| - }
|
| - System.out.println("Parsing " + fileName);
|
| - DartParserRunner parser = DartParserRunner.parse(fileName, source, Integer.MAX_VALUE, true);
|
| - for (DartCompilationError error : parser.getErrors()) {
|
| - System.err.println(error.toString());
|
| - }
|
| - }
|
| - }
|
| -
|
| - /*
|
| - * Parses @sourceCode ensuring explicit failure in case of non-termination.
|
| - */
|
| - public static DartParserRunner parse(String name, String sourceCode) {
|
| - return DartParserRunner.parse(name, sourceCode, false);
|
| - }
|
| -
|
| - /*
|
| - * Parses @sourceCode ensuring explicit failure in case of non-termination.
|
| - */
|
| - public static DartParserRunner parse(String name, String sourceCode, int timeoutInMs,
|
| - boolean wantWarnings) {
|
| - return DartParserRunner.parse(name, sourceCode, false, timeoutInMs, wantWarnings);
|
| - }
|
| -
|
| - /*
|
| - * Parses @sourceCode ensuring explicit failure in case of non-termination.
|
| - */
|
| - public static DartParserRunner parse(String name, String sourceCode, boolean apiParsing) {
|
| - return parse(name, sourceCode, apiParsing, 0, false);
|
| - }
|
| -
|
| - /*
|
| - * Parses @sourceCode ensuring explicit failure in case of non-termination.
|
| - */
|
| - public static DartParserRunner parse(String name, String sourceCode, boolean apiParsing,
|
| - int timeoutInMs, boolean wantWarnings) {
|
| - DartParserRunner parser = null;
|
| - try {
|
| - parser = new DartParserRunner(name, sourceCode, apiParsing);
|
| - if (timeoutInMs != 0) {
|
| - parser.setTimeout(timeoutInMs);
|
| - }
|
| - parser.setWantWarnings(wantWarnings);
|
| - parser.doWork();
|
| - TestCase.assertFalse("Dart parser failed to terminate.", parser.isAlive());
|
| - Throwable t = parser.workerException.get();
|
| - if (t != null) {
|
| - throw new AssertionError(t);
|
| - }
|
| - } catch(Exception e) {
|
| - throw new Error(e.toString());
|
| - }
|
| - return parser;
|
| - }
|
| -
|
| - /**
|
| - * Reads a text file and returns the contents as a String.
|
| - *
|
| - * @param file
|
| - * @return file contents as a String
|
| - */
|
| - private static String readSource(String file) {
|
| - StringBuilder buf = new StringBuilder();
|
| - BufferedReader reader = null;
|
| - try {
|
| - reader = new BufferedReader(new FileReader(file));
|
| - String line;
|
| - while ((line = reader.readLine()) != null) {
|
| - buf.append(line).append("\n");
|
| - }
|
| - return buf.toString();
|
| - } catch (IOException e) {
|
| - return null;
|
| - } finally {
|
| - if (reader != null) {
|
| - try {
|
| - reader.close();
|
| - } catch (IOException e) {
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - private boolean apiParsing;
|
| - private DartUnit dartUnit;
|
| - private List<DartCompilationError> errors = new ArrayList<DartCompilationError>();
|
| - private String name;
|
| -
|
| - private Thread parserWorker;
|
| -
|
| - private String sourceCode;
|
| -
|
| - private int timeoutInMillis = DEFAULT_TIMEOUT_IN_MILISECONDS;
|
| -
|
| - private AtomicReference<Throwable> workerException = new AtomicReference<Throwable>();
|
| -
|
| - private boolean wantWarnings;
|
| -
|
| - private DartParserRunner(String name, String sourceCode) {
|
| - this(name, sourceCode, false);
|
| - }
|
| -
|
| - private DartParserRunner(String name, String sourceCode, boolean apiParsing) {
|
| - this.name = name;
|
| - this.sourceCode = sourceCode;
|
| - this.parserWorker = new Thread(this);
|
| - this.apiParsing = apiParsing;
|
| - }
|
| -
|
| - public DartUnit getDartUnit() {
|
| - return dartUnit;
|
| - }
|
| -
|
| - @Override
|
| - public void onError(DartCompilationError event) {
|
| - if (event.getErrorCode().getErrorSeverity() == ErrorSeverity.WARNING && !wantWarnings) {
|
| - return;
|
| - }
|
| - errors.add(event);
|
| - }
|
| -
|
| - public int getErrorCount() {
|
| - return errors.size();
|
| - }
|
| -
|
| - public List<DartCompilationError> getErrors() {
|
| - return errors;
|
| - }
|
| -
|
| - public boolean hasErrors() {
|
| - return getErrors().size() > 0;
|
| - }
|
| -
|
| - @Override
|
| - public void run() {
|
| - try {
|
| - DartSourceTest dartSrc = new DartSourceTest(name, sourceCode, null);
|
| - dartUnit = (new DartParser(
|
| - dartSrc,
|
| - sourceCode,
|
| - apiParsing,
|
| - Sets.<String>newHashSet(),
|
| - this,
|
| - null)).parseUnit();
|
| - } catch (Throwable t) {
|
| - workerException.set(t);
|
| - }
|
| - }
|
| -
|
| - public DartParserRunner setTimeout(int timeoutInMillis) {
|
| - this.timeoutInMillis = timeoutInMillis;
|
| - return this;
|
| - }
|
| -
|
| - public DartParserRunner setWantWarnings(boolean wantWarnings) {
|
| - this.wantWarnings = wantWarnings;
|
| - return this;
|
| - }
|
| -
|
| - private void doWork() throws InterruptedException {
|
| - parserWorker.start();
|
| - parserWorker.join(timeoutInMillis);
|
| - }
|
| -
|
| - private boolean isAlive() {
|
| - return parserWorker.isAlive();
|
| - }
|
| -
|
| - @Override
|
| - public void unitAboutToCompile(DartSource source, boolean diet) {
|
| - }
|
| -
|
| - @Override
|
| - public void unitCompiled(DartUnit unit) {
|
| - }
|
| -}
|
|
|