| Index: pkg/analyzer/test/src/command_line/arguments_test.dart
|
| diff --git a/pkg/analyzer/test/src/command_line/arguments_test.dart b/pkg/analyzer/test/src/command_line/arguments_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3e1e9405c291a35f11a590a08b3120434dbbb063
|
| --- /dev/null
|
| +++ b/pkg/analyzer/test/src/command_line/arguments_test.dart
|
| @@ -0,0 +1,208 @@
|
| +// Copyright (c) 2016, 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.
|
| +
|
| +library analyzer.test.src.context.context_builder_test;
|
| +
|
| +import 'package:analyzer/file_system/memory_file_system.dart';
|
| +import 'package:analyzer/src/command_line/arguments.dart';
|
| +import 'package:analyzer/src/context/builder.dart';
|
| +import 'package:analyzer/src/dart/sdk/sdk.dart';
|
| +import 'package:analyzer/src/generated/engine.dart';
|
| +import 'package:analyzer/src/generated/sdk.dart';
|
| +import 'package:args/args.dart';
|
| +import 'package:test/test.dart';
|
| +import 'package:test_reflective_loader/test_reflective_loader.dart';
|
| +
|
| +main() {
|
| + defineReflectiveSuite(() {
|
| + defineReflectiveTests(ArgumentsTest);
|
| + });
|
| +}
|
| +
|
| +@reflectiveTest
|
| +class ArgumentsTest {
|
| + void test_createContextBuilderOptions_all() {
|
| + String dartSdkSummaryPath = 'a';
|
| + String defaultAnalysisOptionsFilePath = 'b';
|
| + String defaultPackageFilePath = 'c';
|
| + String defaultPackagesDirectoryPath = 'd';
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + ArgParser parser = new ArgParser();
|
| + defineAnalysisArguments(parser);
|
| + List<String> args = [
|
| + '--dart-sdk-summary=$dartSdkSummaryPath',
|
| + '-Dfoo=1',
|
| + '-Dbar=2',
|
| + '--enable-strict-call-checks',
|
| + '--initializing-formal-access',
|
| + '--no-implicit-casts',
|
| + '--no-implicit-dynamic',
|
| + '--options=$defaultAnalysisOptionsFilePath',
|
| + '--packages=$defaultPackageFilePath',
|
| + '--package-root=$defaultPackagesDirectoryPath',
|
| + '--strong',
|
| + '--supermixin',
|
| + ];
|
| + ArgResults result = parse(provider, parser, args);
|
| + ContextBuilderOptions options = createContextBuilderOptions(result);
|
| + expect(options, isNotNull);
|
| + expect(options.dartSdkSummaryPath, dartSdkSummaryPath);
|
| + Map<String, String> declaredVariables = options.declaredVariables;
|
| + expect(declaredVariables, hasLength(2));
|
| + expect(declaredVariables['foo'], '1');
|
| + expect(declaredVariables['bar'], '2');
|
| + expect(
|
| + options.defaultAnalysisOptionsFilePath, defaultAnalysisOptionsFilePath);
|
| + expect(options.defaultPackageFilePath, defaultPackageFilePath);
|
| + expect(options.defaultPackagesDirectoryPath, defaultPackagesDirectoryPath);
|
| + AnalysisOptionsImpl defaultOptions = options.defaultOptions;
|
| + expect(defaultOptions, isNotNull);
|
| + expect(defaultOptions.enableInitializingFormalAccess, true);
|
| + expect(defaultOptions.enableStrictCallChecks, true);
|
| + expect(defaultOptions.strongMode, true);
|
| + expect(defaultOptions.implicitCasts, false);
|
| + expect(defaultOptions.implicitDynamic, false);
|
| + expect(options.pubSummaryManager, isNull);
|
| + }
|
| +
|
| + void test_createContextBuilderOptions_none() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + ArgParser parser = new ArgParser();
|
| + defineAnalysisArguments(parser);
|
| + List<String> args = [];
|
| + ArgResults result = parse(provider, parser, args);
|
| + ContextBuilderOptions options = createContextBuilderOptions(result);
|
| + expect(options, isNotNull);
|
| + expect(options.dartSdkSummaryPath, isNull);
|
| + expect(options.declaredVariables, isEmpty);
|
| + expect(options.defaultAnalysisOptionsFilePath, isNull);
|
| + expect(options.defaultPackageFilePath, isNull);
|
| + expect(options.defaultPackagesDirectoryPath, isNull);
|
| + AnalysisOptionsImpl defaultOptions = options.defaultOptions;
|
| + expect(defaultOptions, isNotNull);
|
| + expect(defaultOptions.enableInitializingFormalAccess, false);
|
| + expect(defaultOptions.enableStrictCallChecks, false);
|
| + expect(defaultOptions.strongMode, false);
|
| + expect(defaultOptions.implicitCasts, true);
|
| + expect(defaultOptions.implicitDynamic, true);
|
| + expect(options.pubSummaryManager, isNull);
|
| + }
|
| +
|
| + void test_createDartSdkManager_noPath_noSummaries() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + ArgParser parser = new ArgParser();
|
| + defineAnalysisArguments(parser);
|
| + List<String> args = [];
|
| + ArgResults result = parse(provider, parser, args);
|
| + DartSdkManager manager = createDartSdkManager(provider, false, result);
|
| + expect(manager, isNotNull);
|
| + expect(manager.defaultSdkDirectory,
|
| + FolderBasedDartSdk.defaultSdkDirectory(provider));
|
| + expect(manager.canUseSummaries, false);
|
| + }
|
| +
|
| + void test_createDartSdkManager_noPath_summaries() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + ArgParser parser = new ArgParser();
|
| + defineAnalysisArguments(parser);
|
| + List<String> args = [];
|
| + ArgResults result = parse(provider, parser, args);
|
| + DartSdkManager manager = createDartSdkManager(provider, true, result);
|
| + expect(manager, isNotNull);
|
| + expect(manager.defaultSdkDirectory,
|
| + FolderBasedDartSdk.defaultSdkDirectory(provider));
|
| + expect(manager.canUseSummaries, true);
|
| + }
|
| +
|
| + void test_createDartSdkManager_path_noSummaries() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + ArgParser parser = new ArgParser();
|
| + defineAnalysisArguments(parser);
|
| + List<String> args = ['--dart-sdk=x'];
|
| + ArgResults result = parse(provider, parser, args);
|
| + DartSdkManager manager = createDartSdkManager(provider, false, result);
|
| + expect(manager, isNotNull);
|
| + expect(manager.defaultSdkDirectory, 'x');
|
| + expect(manager.canUseSummaries, false);
|
| + }
|
| +
|
| + void test_createDartSdkManager_path_summaries() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + ArgParser parser = new ArgParser();
|
| + defineAnalysisArguments(parser);
|
| + List<String> args = ['--dart-sdk=y'];
|
| + ArgResults result = parse(provider, parser, args);
|
| + DartSdkManager manager = createDartSdkManager(provider, true, result);
|
| + expect(manager, isNotNull);
|
| + expect(manager.defaultSdkDirectory, 'y');
|
| + expect(manager.canUseSummaries, true);
|
| + }
|
| +
|
| + void test_defineAnalysisArguments() {
|
| + ArgParser parser = new ArgParser();
|
| + defineAnalysisArguments(parser);
|
| + expect(parser.options, hasLength(12));
|
| + }
|
| +
|
| + void test_filterUnknownArguments() {
|
| + List<String> args = ['--a', '--b', '--c', 'foo', 'bar'];
|
| + ArgParser parser = new ArgParser();
|
| + parser.addFlag('a');
|
| + parser.addFlag('c');
|
| + List<String> result = filterUnknownArguments(args, parser);
|
| + expect(result, orderedEquals(['--a', '--c', 'foo', 'bar']));
|
| + }
|
| +
|
| + void test_parse_noReplacement_noIgnored() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + ArgParser parser = new ArgParser();
|
| + parser.addFlag('xx');
|
| + parser.addOption('yy');
|
| + List<String> args = ['--xx', '--yy=abc', 'foo', 'bar'];
|
| + ArgResults result = parse(provider, parser, args);
|
| + expect(result, isNotNull);
|
| + expect(result['xx'], true);
|
| + expect(result['yy'], 'abc');
|
| + expect(result.rest, orderedEquals(['foo', 'bar']));
|
| + }
|
| +
|
| + void test_preprocessArgs_noReplacement() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + List<String> result = preprocessArgs(provider, ['--xx' '--yy' 'baz']);
|
| + expect(result, orderedEquals(['--xx' '--yy' 'baz']));
|
| + }
|
| +
|
| + void test_preprocessArgs_replacement_exists() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + String filePath = provider.convertPath('/args.txt');
|
| + provider.newFile(
|
| + filePath,
|
| + '''
|
| +-a
|
| +--xx
|
| +
|
| +foo
|
| +bar
|
| +''');
|
| + List<String> result =
|
| + preprocessArgs(provider, ['--preserved', '@$filePath']);
|
| + expect(result, orderedEquals(['--preserved', '-a', '--xx', 'foo', 'bar']));
|
| + }
|
| +
|
| + void test_preprocessArgs_replacement_nonexistent() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + String filePath = provider.convertPath('/args.txt');
|
| + List<String> args = ['ignored', '@$filePath'];
|
| + List<String> result = preprocessArgs(provider, args);
|
| + expect(result, orderedEquals(args));
|
| + }
|
| +
|
| + void test_preprocessArgs_replacement_notLast() {
|
| + MemoryResourceProvider provider = new MemoryResourceProvider();
|
| + String filePath = provider.convertPath('/args.txt');
|
| + List<String> args = ['a', '@$filePath', 'b'];
|
| + List<String> result = preprocessArgs(provider, args);
|
| + expect(result, orderedEquals(args));
|
| + }
|
| +}
|
|
|