Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(583)

Side by Side Diff: compiler/java/com/google/dart/runner/TestRunner.java

Issue 8223005: remove TestRunner and revector callers to DartRunner (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Get rid of TestRunner Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 package com.google.dart.runner;
6
7 import com.google.dart.compiler.CommandLineOptions;
8 import com.google.dart.compiler.CommandLineOptions.TestRunnerOptions;
9 import com.google.dart.compiler.DartCompiler;
10 import com.google.dart.compiler.LibrarySource;
11 import com.google.dart.compiler.UnitTestBatchRunner;
12 import com.google.dart.compiler.UnitTestBatchRunner.Invocation;
13
14 import org.kohsuke.args4j.CmdLineException;
15 import org.kohsuke.args4j.CmdLineParser;
16
17 import java.io.ByteArrayOutputStream;
18 import java.io.OutputStream;
19 import java.io.PrintStream;
20 import java.util.ArrayList;
21 import java.util.List;
22
23 /**
24 * Runs dart programs.<br/>
25 * The command-line interface is similar to the VM's command line interface.
26 * </br>
27 */
28 public class TestRunner {
29
30 public static void main(String[] args) {
31
32 try {
33 boolean runBatch = false;
34 TestRunnerOptions options = processCommandLineOptions(args);
35 if (options.shouldBatch()) {
36 runBatch = true;
37 if (args.length > 1) {
38 System.err.println("(Extra arguments specified with -batch ignored.)") ;
39 }
40 }
41 if (runBatch) {
42 UnitTestBatchRunner.runAsBatch(args, new Invocation() {
43 @Override
44 public boolean invoke(String[] args) throws Throwable {
45 try {
46 throwingMain(args, System.out, System.err);
47 } catch (RunnerError e) {
48 System.out.println(e.getLocalizedMessage());
49 return false;
50 }
51 return true;
52 }
53 });
54 } else {
55 throwingMain(args, System.out, System.err);
56 }
57 } catch (RunnerError e) {
58 System.err.println(e.getLocalizedMessage());
59 System.exit(1);
60 } catch (Throwable e) {
61 e.printStackTrace();
62 DartCompiler.crash();
63 }
64 }
65
66 private static void printUsageAndThrow(CmdLineParser cmdLineParser, String rea son) throws RunnerError {
67 StringBuilder usage = new StringBuilder();
68 usage.append(reason);
69 usage.append("\n");
70 usage.append("Usage: ");
71 usage.append(System.getProperty("com.google.dart.runner.progname",
72 TestRunner.class.getSimpleName()));
73 usage.append(" [<options>] <dart-script-file> [<script-arguments>]\n");
74 usage.append("\n");
75
76 OutputStream s = new ByteArrayOutputStream();
77 if (cmdLineParser == null) {
78 cmdLineParser = new CmdLineParser(new TestRunnerOptions());
79 }
80 cmdLineParser.printUsage(s);
81 usage.append(s);
82 throw new RunnerError(usage.toString());
83 }
84
85 private static TestRunnerOptions processCommandLineOptions(String[] args) thro ws RunnerError {
86 CmdLineParser cmdLineParser = null;
87 TestRunnerOptions parsedOptions = null;
88 try {
89 parsedOptions = new TestRunnerOptions();
90 cmdLineParser = CommandLineOptions.parse(args, parsedOptions);
91 if (args.length == 0 || parsedOptions.showHelp()) {
92 printUsageAndThrow(cmdLineParser, "");
93 System.exit(1);
94 }
95 } catch (CmdLineException e) {
96 printUsageAndThrow(cmdLineParser, e.getLocalizedMessage());
97 System.exit(1);
98 }
99
100 assert parsedOptions != null;
101 return parsedOptions;
102 }
103 public static void throwingMain(String[] args, PrintStream stdout, PrintStream stderr)
104 throws RunnerError {
105 TestRunnerOptions options = processCommandLineOptions(args);
106 List<LibrarySource> imports = new ArrayList<LibrarySource>();
107 DartRunner.throwingMain(options, args, imports, stdout, stderr);
108 }
109 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698