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

Side by Side Diff: pkg/analyzer_cli/test/options_test.dart

Issue 1720963003: Initial hermetic package analyzer. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer_cli.test.options; 5 library analyzer_cli.test.options;
6 6
7 import 'dart:io';
8
9 import 'package:analyzer_cli/src/driver.dart';
7 import 'package:analyzer_cli/src/options.dart'; 10 import 'package:analyzer_cli/src/options.dart';
8 import 'package:args/args.dart'; 11 import 'package:args/args.dart';
12 import 'package:test_reflective_loader/test_reflective_loader.dart';
9 import 'package:unittest/unittest.dart'; 13 import 'package:unittest/unittest.dart';
10 14
11 main() { 15 main() {
12 group('CommandLineOptions', () { 16 group('CommandLineOptions', () {
13 group('parse', () { 17 group('parse', () {
14 test('defaults', () { 18 test('defaults', () {
15 CommandLineOptions options = 19 CommandLineOptions options =
16 CommandLineOptions.parse(['--dart-sdk', '.', 'foo.dart']); 20 CommandLineOptions.parse(['--dart-sdk', '.', 'foo.dart']);
17 expect(options, isNotNull); 21 expect(options, isNotNull);
18 expect(options.dartSdkPath, isNotNull); 22 expect(options.dartSdkPath, isNotNull);
19 expect(options.disableHints, isFalse); 23 expect(options.disableHints, isFalse);
20 expect(options.lints, isFalse); 24 expect(options.lints, isFalse);
21 expect(options.displayVersion, isFalse); 25 expect(options.displayVersion, isFalse);
22 expect(options.enableStrictCallChecks, isFalse); 26 expect(options.enableStrictCallChecks, isFalse);
23 expect(options.enableSuperMixins, isFalse); 27 expect(options.enableSuperMixins, isFalse);
24 expect(options.enableTypeChecks, isFalse); 28 expect(options.enableTypeChecks, isFalse);
25 expect(options.hintsAreFatal, isFalse); 29 expect(options.hintsAreFatal, isFalse);
26 expect(options.ignoreUnrecognizedFlags, isFalse); 30 expect(options.ignoreUnrecognizedFlags, isFalse);
27 expect(options.log, isFalse); 31 expect(options.log, isFalse);
28 expect(options.machineFormat, isFalse); 32 expect(options.machineFormat, isFalse);
33 expect(options.packageMode, isFalse);
29 expect(options.packageRootPath, isNull); 34 expect(options.packageRootPath, isNull);
35 expect(options.packageSummaryInputs, isEmpty);
30 expect(options.shouldBatch, isFalse); 36 expect(options.shouldBatch, isFalse);
31 expect(options.showPackageWarnings, isFalse); 37 expect(options.showPackageWarnings, isFalse);
32 expect(options.showSdkWarnings, isFalse); 38 expect(options.showSdkWarnings, isFalse);
33 expect(options.sourceFiles, equals(['foo.dart'])); 39 expect(options.sourceFiles, equals(['foo.dart']));
34 expect(options.warningsAreFatal, isFalse); 40 expect(options.warningsAreFatal, isFalse);
35 expect(options.strongMode, isFalse); 41 expect(options.strongMode, isFalse);
36 }); 42 });
37 43
38 test('batch', () { 44 test('batch', () {
39 CommandLineOptions options = 45 CommandLineOptions options =
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 new CommandLineParser(alwaysIgnoreUnrecognized: true); 164 new CommandLineParser(alwaysIgnoreUnrecognized: true);
159 parser.addOption('optionA'); 165 parser.addOption('optionA');
160 parser.addFlag('flagA'); 166 parser.addFlag('flagA');
161 ArgResults argResults = 167 ArgResults argResults =
162 parser.parse(['--optionA=1', '--optionB=2', '--flagA'], {}); 168 parser.parse(['--optionA=1', '--optionB=2', '--flagA'], {});
163 expect(argResults['optionA'], '1'); 169 expect(argResults['optionA'], '1');
164 expect(argResults['flagA'], isTrue); 170 expect(argResults['flagA'], isTrue);
165 }); 171 });
166 172
167 test('strong mode', () { 173 test('strong mode', () {
168 CommandLineOptions options = CommandLineOptions 174 CommandLineOptions options =
169 .parse(['--strong', 'foo.dart']); 175 CommandLineOptions.parse(['--strong', 'foo.dart']);
170 expect(options.strongMode, isTrue); 176 expect(options.strongMode, isTrue);
171 }); 177 });
172 178
173 test("can't specify package and package-root", () { 179 test("can't specify package and package-root", () {
174 var failureMessage; 180 var failureMessage;
175 CommandLineOptions.parse( 181 CommandLineOptions.parse(
176 ['--package-root', '.', '--packages', '.', 'foo.dart'], 182 ['--package-root', '.', '--packages', '.', 'foo.dart'],
177 (msg) => failureMessage = msg); 183 (msg) => failureMessage = msg);
178 expect(failureMessage, 184 expect(failureMessage,
179 equals("Cannot specify both '--package-root' and '--packages.")); 185 equals("Cannot specify both '--package-root' and '--packages."));
180 }); 186 });
181 187
182 test("bad SDK dir", () { 188 test("bad SDK dir", () {
183 var failureMessage; 189 var failureMessage;
184 CommandLineOptions.parse( 190 CommandLineOptions.parse(
185 ['--dart-sdk', '&&&&&', 'foo.dart'], (msg) => failureMessage = msg); 191 ['--dart-sdk', '&&&&&', 'foo.dart'], (msg) => failureMessage = msg);
186 expect(failureMessage, equals('Invalid Dart SDK path: &&&&&')); 192 expect(failureMessage, equals('Invalid Dart SDK path: &&&&&'));
187 }); 193 });
188 }); 194 });
189 }); 195 });
196 defineReflectiveTests(CommandLineOptionsTest);
190 } 197 }
198
199 @reflectiveTest
200 class AbstractStatusTest {
201 int lastExitHandlerCode;
202 StringBuffer outStringBuffer = new StringBuffer();
203 StringBuffer errorStringBuffer = new StringBuffer();
204
205 StringSink savedOutSink, savedErrorSink;
206 int savedExitCode;
207 ExitHandler savedExitHandler;
208
209 setUp() {
210 savedOutSink = outSink;
211 savedErrorSink = errorSink;
212 savedExitHandler = exitHandler;
213 savedExitCode = exitCode;
214 exitHandler = (int code) {
215 lastExitHandlerCode = code;
216 };
217 outSink = outStringBuffer;
218 errorSink = errorStringBuffer;
219 }
220
221 tearDown() {
222 outSink = savedOutSink;
223 errorSink = savedErrorSink;
224 exitCode = savedExitCode;
225 exitHandler = savedExitHandler;
226 }
227 }
228
229 @reflectiveTest
230 class CommandLineOptionsTest extends AbstractStatusTest {
231 CommandLineOptions options;
232
233 test_packageMode() {
234 _parse(['--package-mode', '/path/to/pkg']);
235 expect(options.packageMode, isTrue);
236 print(options.packageSummaryInputs);
237 }
238
239 test_packageSummaryInput() {
240 _parse([
241 '--package-mode',
242 '--package-summary-input=aaa,/path/to/aaa.sum',
243 '--package-summary-input=long.package.bbb,/path/to/bbb.sum',
244 '/path/to/pkg'
245 ]);
246 expect(options.packageMode, isTrue);
247 Map<String, String> map = options.packageSummaryInputs;
248 expect(map, hasLength(2));
249 expect(map, containsPair('aaa', '/path/to/aaa.sum'));
250 expect(map, containsPair('long.package.bbb', '/path/to/bbb.sum'));
251 }
252
253 test_packageSummaryInput_noComma() {
254 _parse([
255 '--package-mode',
256 '--package-summary-input=noCommaInMapping',
257 '/path/to/pkg'
258 ]);
259 expect(lastExitHandlerCode, 15);
260 expect(errorStringBuffer.toString(), contains('--package-summary-input'));
261 expect(errorStringBuffer.toString(), contains('noCommaInMapping'));
262 }
263
264 test_packageSummaryOutput() {
265 _parse([
266 '--package-mode',
267 '--package-summary-output=/path/to/output.sum',
268 '/path/to/pkg'
269 ]);
270 expect(options.packageMode, isTrue);
271 expect(options.packageSummaryOutput, '/path/to/output.sum');
272 }
273
274 void _parse(List<String> args) {
275 options = CommandLineOptions.parse(args);
276 }
277 }
OLDNEW
« pkg/analyzer_cli/lib/src/package_analyzer.dart ('K') | « pkg/analyzer_cli/pubspec.yaml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698