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

Unified Diff: pkg/dev_compiler/test/options/options_test.dart

Issue 2598593003: support --options flag and other analysis options flags in DDC (Closed)
Patch Set: merge Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/dev_compiler/test/options/analysis_options_2.yaml ('k') | pkg/dev_compiler/web/web_command.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/dev_compiler/test/options/options_test.dart
diff --git a/pkg/dev_compiler/test/options/options_test.dart b/pkg/dev_compiler/test/options/options_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..5fff692a8a1ed697b45147cf77b24a7f586dfd25
--- /dev/null
+++ b/pkg/dev_compiler/test/options/options_test.dart
@@ -0,0 +1,82 @@
+// 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.
+
+import 'dart:io';
+import 'package:analyzer/analyzer.dart';
+import 'package:analyzer/src/command_line/arguments.dart';
+import 'package:analyzer/src/summary/summary_sdk.dart';
+import 'package:path/path.dart' as path;
+import 'package:test/test.dart';
+
+import '../../lib/src/analyzer/context.dart';
+import '../../lib/src/compiler/command.dart';
+import '../../lib/src/compiler/compiler.dart';
+import '../testing.dart' show repoDirectory, testDirectory;
+
+/// The `test/options` directory.
+final optionsDir = path.join(testDirectory, 'options');
+
+/// Summary file for testing.
+final sdkSummaryFile = path.join(repoDirectory, 'lib', 'sdk', 'ddc_sdk.sum');
+
+final sdkSummaryArgs = ['--$sdkSummaryPathOption', sdkSummaryFile];
+
+main() {
+ test('basic', () {
+ var options = new AnalyzerOptions.basic();
+ var compiler = new ModuleCompiler(options, analysisRoot: optionsDir);
+ var processors = compiler.context.analysisOptions.errorProcessors;
+ expect(processors, hasLength(1));
+ expect(processors[0].code, CompileTimeErrorCode.UNDEFINED_CLASS.name);
+ });
+
+ test('basic sdk summary', () {
+ expect(new File(sdkSummaryFile).existsSync(), isTrue);
+ var options = new AnalyzerOptions.basic(dartSdkSummaryPath: sdkSummaryFile);
+ var compiler = new ModuleCompiler(options, analysisRoot: optionsDir);
+ var context = compiler.context;
+ var sdk = context.sourceFactory.dartSdk;
+ expect(sdk, new isInstanceOf<SummaryBasedDartSdk>());
+ var processors = context.analysisOptions.errorProcessors;
+ expect(processors, hasLength(1));
+ expect(processors[0].code, CompileTimeErrorCode.UNDEFINED_CLASS.name);
+ });
+
+ test('fromArgs', () {
+ var args = <String>[];
+ //TODO(danrubel) remove sdkSummaryArgs once all SDKs have summary file
+ args.addAll(sdkSummaryArgs);
+ var argResults = ddcArgParser().parse(args);
+ var options = new AnalyzerOptions.fromArguments(argResults);
+ var compiler = new ModuleCompiler(options, analysisRoot: optionsDir);
+ var processors = compiler.context.analysisOptions.errorProcessors;
+ expect(processors, hasLength(1));
+ expect(processors[0].code, CompileTimeErrorCode.UNDEFINED_CLASS.name);
+ });
+
+ test('fromArgs options file 2', () {
+ var optionsFile2 = path.join(optionsDir, 'analysis_options_2.yaml');
+ expect(new File(optionsFile2).existsSync(), isTrue);
+ var args = <String>['--$analysisOptionsFileOption', optionsFile2];
+ //TODO(danrubel) remove sdkSummaryArgs once all SDKs have summary file
+ args.addAll(sdkSummaryArgs);
+ var argResults = ddcArgParser().parse(args);
+ var options = new AnalyzerOptions.fromArguments(argResults);
+ var compiler = new ModuleCompiler(options, analysisRoot: optionsDir);
+ var processors = compiler.context.analysisOptions.errorProcessors;
+ expect(processors, hasLength(1));
+ expect(processors[0].code, CompileTimeErrorCode.DUPLICATE_DEFINITION.name);
+ });
+
+ test('fromArgs options flag', () {
+ var args = <String>['--$enableStrictCallChecksFlag'];
+ //TODO(danrubel) remove sdkSummaryArgs once all SDKs have summary file
+ args.addAll(sdkSummaryArgs);
+ var argResults = ddcArgParser().parse(args);
+ var options = new AnalyzerOptions.fromArguments(argResults);
+ var compiler = new ModuleCompiler(options, analysisRoot: optionsDir);
+ var analysisOptions = compiler.context.analysisOptions;
+ expect(analysisOptions.enableStrictCallChecks, isTrue);
+ });
+}
« no previous file with comments | « pkg/dev_compiler/test/options/analysis_options_2.yaml ('k') | pkg/dev_compiler/web/web_command.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698