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

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

Issue 2796953002: Add --build-summary-only-unlinked flag, which makes the output summary be an unlinked summary inste… (Closed)
Patch Set: Created 3 years, 8 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.driver; 5 library analyzer_cli.test.driver;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'package:analyzer/error/error.dart'; 10 import 'package:analyzer/error/error.dart';
11 import 'package:analyzer/source/analysis_options_provider.dart'; 11 import 'package:analyzer/source/analysis_options_provider.dart';
12 import 'package:analyzer/source/error_processor.dart'; 12 import 'package:analyzer/source/error_processor.dart';
13 import 'package:analyzer/src/error/codes.dart'; 13 import 'package:analyzer/src/error/codes.dart';
14 import 'package:analyzer/src/generated/engine.dart'; 14 import 'package:analyzer/src/generated/engine.dart';
15 import 'package:analyzer/src/generated/source.dart'; 15 import 'package:analyzer/src/generated/source.dart';
16 import 'package:analyzer/src/services/lint.dart'; 16 import 'package:analyzer/src/services/lint.dart';
17 import 'package:analyzer/src/summary/idl.dart';
17 import 'package:analyzer_cli/src/ansi.dart' as ansi; 18 import 'package:analyzer_cli/src/ansi.dart' as ansi;
18 import 'package:analyzer_cli/src/driver.dart'; 19 import 'package:analyzer_cli/src/driver.dart';
19 import 'package:analyzer_cli/src/options.dart'; 20 import 'package:analyzer_cli/src/options.dart';
20 import 'package:cli_util/cli_util.dart' show getSdkDir; 21 import 'package:cli_util/cli_util.dart' show getSdkDir;
21 import 'package:path/path.dart' as path; 22 import 'package:path/path.dart' as path;
22 import 'package:test/test.dart'; 23 import 'package:test/test.dart';
23 import 'package:yaml/src/yaml_node.dart'; 24 import 'package:yaml/src/yaml_node.dart';
24 25
25 import 'utils.dart'; 26 import 'utils.dart';
26 27
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 expect(exitCode, isNot(0)); 406 expect(exitCode, isNot(0));
406 }); 407 });
407 408
408 test( 409 test(
409 'Succeeds if there are errors, when --build-suppress-exit-code is gi ven', 410 'Succeeds if there are errors, when --build-suppress-exit-code is gi ven',
410 () async { 411 () async {
411 await doDrive(path.join('data', 'file_with_error.dart'), 412 await doDrive(path.join('data', 'file_with_error.dart'),
412 additionalArgs: ['--build-suppress-exit-code']); 413 additionalArgs: ['--build-suppress-exit-code']);
413 expect(exitCode, 0); 414 expect(exitCode, 0);
414 }); 415 });
416
417 test('Linked summary', () async {
418 await withTempDirAsync((tempDir) async {
419 var outputPath = path.join(tempDir, 'test_file.dart.sum');
420 await doDrive(path.join('data', 'test_file.dart'), additionalArgs: [
421 '--build-summary-only',
422 '--build-summary-output=$outputPath'
423 ]);
424 var output = new File(outputPath);
425 expect(output.existsSync(), isTrue);
426 PackageBundle bundle =
427 new PackageBundle.fromBuffer(await output.readAsBytes());
428 var testFileUri = 'file:///test_file.dart';
429 expect(bundle.unlinkedUnitUris, equals([testFileUri]));
430 expect(bundle.linkedLibraryUris, equals([testFileUri]));
431 expect(exitCode, 0);
432 });
433 });
434
435 test('Unlinked summary only', () async {
436 await withTempDirAsync((tempDir) async {
437 var outputPath = path.join(tempDir, 'test_file.dart.sum');
438 await doDrive(path.join('data', 'test_file.dart'), additionalArgs: [
439 '--build-summary-only',
440 '--build-summary-only-unlinked',
441 '--build-summary-output=$outputPath'
442 ]);
443 var output = new File(outputPath);
444 expect(output.existsSync(), isTrue);
445 PackageBundle bundle =
446 new PackageBundle.fromBuffer(await output.readAsBytes());
447 var testFileUri = 'file:///test_file.dart';
448 expect(bundle.unlinkedUnits.length, 1);
449 expect(bundle.unlinkedUnitUris, equals([testFileUri]));
450 expect(bundle.linkedLibraryUris, isEmpty);
451 expect(exitCode, 0);
452 });
453 });
415 }); 454 });
416 } 455 }
417 456
418 createTests('old', AnalysisEngine.ANALYSIS_OPTIONS_FILE); 457 createTests('old', AnalysisEngine.ANALYSIS_OPTIONS_FILE);
419 createTests('new', AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE); 458 createTests('new', AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE);
420 459
421 //TODO(pq): fix to be bot-friendly (sdk#25258). 460 //TODO(pq): fix to be bot-friendly (sdk#25258).
422 // group('in temp directory', () { 461 // group('in temp directory', () {
423 // Directory savedCurrentDirectory; 462 // Directory savedCurrentDirectory;
424 // Directory tempDir; 463 // Directory tempDir;
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 606
568 class TestSource implements Source { 607 class TestSource implements Source {
569 TestSource(); 608 TestSource();
570 609
571 @override 610 @override
572 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation); 611 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
573 } 612 }
574 613
575 /// Normalize text with bullets. 614 /// Normalize text with bullets.
576 String _bulletToDash(item) => '$item'.replaceAll('•', '-'); 615 String _bulletToDash(item) => '$item'.replaceAll('•', '-');
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698